We try to answer two questions related to compiler optimizations: how can you help the compiler do a better job and when does it make sense to do the compiler optimizations manually.
All posts in Performance
Loop Optimizations: how does the compiler do it?
We investigate what are the techniques your compiler employs to make your loop run faster.
The quest for the fastest linked list
Linked lists are celebrity data structures of software development. They are celebrities because every engineer has had something to do with them in one part of their career. They are used in many places: from low-level memory management in operating systems up to data wrangling and data filtering in machine learning. They promise a lot:…
Performance Tuning Contest: July 2021 edition
Denis Bakhvalov from Easyperf.net and me are organizing a performance tuning contest. We give you a source code to optimize, and your task is to investigate it, find the performance bottlenecks, and fix them. In this edition, we are trying to speed up KALDI open source speech recognition toolkit. Click here if you wish to…
Debugging performance issues in kernel space: minor fault and major faults
In this post we talk about major and minor faults as performance issues that your program can experience, we explain what they are, how to detect them and how to fix them,
Hardware performance counters the easy way: quickstart likwid-perfctr
We talk about LIKWID and likwid-perfctr, a tool that you can use to get information from the hardware performance counters in a user-friendly way.
Debugging performance issues in kernel space: system calls
We talk about how to detect if your program is spending a lot of time in kernel mode (system mode) and investigate ways to speed them up.
Memory Access Pattern and Performance: the Example of Matrix Multiplication
We use matrix multiplication example to investigate loop interchange and loop tiling as techniques to speed up your program that works with matrices.
“Premature optimization is the root of all evil”. Or is it?
We investigate the topic of premature optimizations, or more specifically, in what cases you want to think early about performance.
Flexibility and Performance
In this post we talk about how to write code that is both flexible and fast!