| 31. 8. 2024 | Speeding Up Convergence Loops. Or, on Vectorization and Precision Control – johnysswlab.com
|
| 28. 6. 2024 | Latency-Sensitive Application and the Memory Subsystem Part 2: Memory Management Mechanisms – johnysswlab.com
|
| 30. 4. 2024 | Latency-Sensitive Applications and the Memory Subsystem: Keeping the Data in the Cache – johnysswlab.com
|
| 31. 3. 2024 | The pros and cons of explicit software prefetching – johnysswlab.com
|
| 29. 2. 2024 | A story of a very large loop with a long instruction dependency chain – johnysswlab.com
|
| 31. 1. 2024 | On Avoiding Register Spills in Vectorized Code with Many Constants – johnysswlab.com
|
| 26. 12. 2023 | Unexpected Ways Memory Subsystem Interacts with Branch Prediction – johnysswlab.com
|
| 30. 11. 2023 | Multithreading and the Memory Subsystem – johnysswlab.com
|
| 29. 10. 2023 | Speeding Up Translation of Virtual To Physical Memory Addresses: TLB and Huge Pages – johnysswlab.com
|
| 30. 9. 2023 | Faster hash maps, binary trees etc. through data layout modification – johnysswlab.com
|
| 31. 8. 2023 | Performance Through Memory Layout – johnysswlab.com
|
| 31. 7. 2023 | Measuring Memory Subsystem Performance – johnysswlab.com
|
| 26. 6. 2023 | Hiding Memory Latency With In-Order CPU Cores OR How Compilers Optimize Your Code – johnysswlab.com
|
| 28. 5. 2023 | Software Performance and Class Layout – johnysswlab.com
|
| 14. 4. 2023 | Horrible Code, Clean Performance – johnysswlab.com
|
| 30. 3. 2023 | Decreasing the Number of Memory Accesses: The Compiler’s Secret Life 2/2 – johnysswlab.com
|
| 25. 2. 2023 | Decreasing the Number of Memory Accesses 1/2 – johnysswlab.com
|
| 30. 1. 2023 | Frugal Programming: Saving Memory Subsystem Bandwidth – johnysswlab.com
|
| 15. 12. 2022 | Loop Optimizations: interpreting the compiler optimization report – johnysswlab.com
|
| 12. 11. 2022 | For Software Performance, the Way Data is Accessed Matters! – johnysswlab.com
|
| 24. 10. 2022 | What is faster: vec.emplace_back(x) or vec[x] ? – johnysswlab.com
|
| 24. 10. 2022 | What is faster: vec.emplace_back(x) or vec[x] ? – johnysswlab.com
|
| 25. 9. 2022 | When an instruction depends on the previous instruction depends on the previous instructions… : long instruction dependency chains and performance – johnysswlab.com
|
| 25. 9. 2022 | When an instruction depends on the previous instruction depends on the previous instructions… : long instruction dependency chains and performance – johnysswlab.com
|
| 17. 8. 2022 | The memory subsystem from the viewpoint of software: how memory subsystem affects software performance 2/3 – johnysswlab.com
|
| 17. 8. 2022 | The memory subsystem from the viewpoint of software: how memory subsystem affects software performance 2/3 – johnysswlab.com
|
| 26. 7. 2022 | The memory subsystem from the viewpoint of software: how memory subsystem effects software performance 1/2 – johnysswlab.com
|
| 26. 7. 2022 | The memory subsystem from the viewpoint of software: how memory subsystem affects software performance 1/3 – johnysswlab.com
|
| 19. 6. 2022 | Instruction-level parallelism in practice: speeding up memory-bound programs with low ILP – johnysswlab.com
|
| 19. 6. 2022 | Instruction-level parallelism in practice: speeding up memory-bound programs with low ILP – johnysswlab.com
|
| 23. 5. 2022 | Memory consumption, dataset size and performance: how does it all relate? – johnysswlab.com
|
| 23. 5. 2022 | Memory consumption, dataset size and performance: how does it all relate? – johnysswlab.com
|
| 10. 4. 2022 | Crash course introduction to parallelism: Multithreading – johnysswlab.com
|
| 10. 4. 2022 | Crash course introduction to parallelism: Multithreading – johnysswlab.com
|
| 13. 3. 2022 | Vectorization, dependencies and outer loop vectorization: if you can’t beat them, join them – johnysswlab.com
|
| 13. 3. 2022 | Vectorization, dependencies and outer loop vectorization: if you can’t beat them, join them – johnysswlab.com
|
| 27. 2. 2022 | Making your program run faster: the key concepts of software performance – johnysswlab.com
|
| 27. 2. 2022 | Making your program run faster: the key concepts of software performance – johnysswlab.com
|
| 29. 1. 2022 | Why is quicksort faster than heapsort? And how to make them faster? – johnysswlab.com
|
| 29. 1. 2022 | Why is quicksort faster than heapsort? And how to make them faster? – johnysswlab.com
|
| 24. 12. 2021 | When vectorization hits the memory wall: investigating the AVX2 memory gather instruction – johnysswlab.com
|
| 30. 11. 2021 | What are premature optimizations? – johnysswlab.com
|
| 4. 11. 2021 | Why do programs get slower with time? – johnysswlab.com
|
| 9. 10. 2021 | Loop Optimizations: taking matters into your hands – johnysswlab.com
|
| 19. 9. 2021 | Loop Optimizations: how does the compiler do it? – johnysswlab.com
|
| 4. 8. 2021 | The quest for the fastest linked list – johnysswlab.com
|
| 18. 7. 2021 | Performance Tuning Contest: July 2021 edition – johnysswlab.com
|
| 7. 7. 2021 | Debugging performance issues in kernel space: minor fault and major faults – johnysswlab.com
|
| 18. 6. 2021 | Hardware performance counters the easy way: quickstart likwid-perfctr – johnysswlab.com
|
| 30. 5. 2021 | Debugging performance issues in kernel space: system calls – johnysswlab.com
|
| 20. 5. 2021 | Memory Access Pattern and Performance: the Example of Matrix Multiplication – johnysswlab.com
|
| 12. 4. 2021 | “Premature optimization is the root of all evil”. Or is it? – johnysswlab.com
|
| 25. 3. 2021 | Flexibility and Performance – johnysswlab.com
|
| 13. 3. 2021 | Speedscope: visualize what your program is doing and where it is spending time – johnysswlab.com
|
| 3. 3. 2021 | Speeding up an Image Processing Algorithm – johnysswlab.com
|
| 21. 2. 2021 | The true price of virtual functions in C++ – johnysswlab.com
|
| 13. 2. 2021 | 2-minute read: Class Size, Member Layout and Speed – johnysswlab.com
|
| 7. 2. 2021 | Performance Tuning Contest: February 2021 edition – johnysswlab.com
|
| 19. 1. 2021 | Crash course introduction to parallelism: SIMD Parallelism – johnysswlab.com
|
| 10. 1. 2021 | 2-minute read: How is Big O notation relevant on modern systems? – johnysswlab.com
|
| 4. 1. 2021 | Crash course introduction to parallelism: the algorithms – johnysswlab.com |