We continue the investigation from the previous post, trying to measure how the memory subsystem affects software performance. We write small programs (kernels) to quantify the effects of cache line, memory latency, TLB cache, cache conflicts, vectorization and branch prediction.
All posts tagged high-performance systems
The memory subsystem from the viewpoint of software: how memory subsystem affects software performance 1/3
In this post we investigate the memory subsystem of a desktop, server and embedded system from the software viewpoint. We use small kernels to illustrate various aspects of the memory subsystem and how it effects performance and runtime.
Crash course introduction to parallelism: the algorithms
When it comes to performance, there are two ways to go: one is to improve the usage of the existing hardware resources, the other is to use the new hardware resources. We already talked a lot about how to increase the performance of your program by better using the existing resources, for example, by decreasing…
Excessive copying in C++ and your program’s speed
We talk about C++ and its weakness for temporary objects and excessive copying. We also give some tips on how to avoid them and make your program faster.
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: Allocation
We talk about how to speed up your program if your program is taking time to allocate or release memory.
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.
Make your programs run faster: avoid function calls
Function calls are not cheap operations and for time critical code it is better to avoid them. This article explores techniques you can use to avoid function calls thus speeding up your code.
Link Time Optimizations: New Way to Do Compiler Optimizations
Traditional compilation-linking cycle generates binaries that work fine, but in case you need more speed, you need to learn about link time optimizations. Here we talk about what link time optimizations are, how to enable them and what improvements to expect.
Make your programs run faster by better using the data cache
We investigate how the data cache influences the performance of your program, talk about ways for you to write faster programs by better leveraging the data cache.