For all the engineers who like to tinker with software performance, vectorization is the holy grail: if it vectorizes, this means that it runs faster. Unfortunately, many times this is not the case, and the results of forcing vectorization by any means can mean lower performance. This happens when vectorization hits the memory wall: although…
All posts in Low Level Performance
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.
Speeding up an Image Processing Algorithm
A post explaining how a few small changes in the right places can have a drastic effects on performance of an image processing algorithm named Canny.
2-minute read: Class Size, Member Layout and Speed
We are exploring how class size and layout of its data members affect your program’s speed
Crash course introduction to parallelism: SIMD Parallelism
This is the first article about hardware support for parallelization. We talk about SIMD, an extension almost every processor nowadays has that lets you speed up your program.
Making your program run faster in a multithreaded environment
We investigate the performance impact of multithreading.
Use explicit data prefetching to faster process your data structure
When processing (searching, inserting etc) your data structure, if you are accessing it in random-access fashion, the performance will suffer due to many data cache misses. Read on how to use the explicit data prefetching to speed up access to your data structure.
Make your programs run faster: avoid expensive instructions
We will talk about expensive instructions in modern CPUs and how to avoid them to speed up your program.
The price of dynamic memory: Memory Access
If your program uses dynamic memory, its speed will depend on allocation time but also on memory access time. Here we investigate how memory access time depends on the memory layout of your data structure. We also investigate ways to speed up your program by laying out your data structure optimally.
How branches influence the performance of your code and what can you do about it?
In this articles we investigate on how branches influence the performance of the code and what can we do to improve the speed of our branchfull code.