The Curious Engineer

All blogs / Performance / optimization

Denis Bakhvalov

easyperf.net

Denis articles about performance analysis and more.

Performance / optimizationCPU / microarchitecture

Posts
83 from 20 Nov 2016 to 11 Nov 2024
Posting
now and then
Kind
personal blog
Feed
https://easyperf.net/feed.xml

2024 11

  1. Book Updates and Errata. Performance Analysis and Tuning on Modern CPUs (Second Edition)
  2. Thread Count Scaling Part 1. Introduction
  3. Thread Count Scaling Part 2. Blender and Clang
  4. Thread Count Scaling Part 3. Zstandard
  5. Thread Count Scaling Part 4. CloverLeaf and CPython
  6. Thread Count Scaling Part 5. Summary
  7. Memory Profiling Part 1. Introduction
  8. Memory Profiling Part 2. Memory Usage Case Study
  9. Memory Profiling Part 3. Memory Footprint with SDE
  10. Memory Profiling Part 4. Memory Footprint Case Study
  11. Memory Profiling Part 5. Data Locality and Reuse Distances | Easyperf

2022 4

  1. Four Cornerstones of CPU Performance. | Easyperf
  2. Performance Benefits of Using Huge Pages for Code. | Easyperf
  3. Performance analysis and tuning challenge #6. | Easyperf
  4. Visualizing Performance-Critical Dependency Chains. | Easyperf

2021 8

  1. Highlights from Twitter Spaces discussions 2021. | Easyperf
  2. Performance analysis and tuning challenge #5. | Easyperf
  3. Summary for performance challenge #4. Part 1. | Easyperf
  4. Summary for performance challenge #4. Part 2. | Easyperf
  5. Summary for performance challenge #4. Part 3. | Easyperf
  6. Summary for performance challenge #4. Part 4. | Easyperf
  7. Performance analysis and tuning challenge #4. | Easyperf
  8. Machine Programming. What if computers would program themselves? | Easyperf

2020 7

  1. Computing industry at the end of 2020 as I see it. | Easyperf
  2. Reflections on Writing a Book. Part 2. | Easyperf
  3. Reflections on Writing a Book. Part 1. | Easyperf
  4. Writing a Free Book From the Start. | Easyperf
  5. Draft of my perf book is ready! | Easyperf
  6. HW and SW rules of thumb. | Easyperf
  7. Guest post: COZ vs Sampling Profilers. | Easyperf

2019 22

  1. Benchmarking: compare measurements and check which is faster. | Easyperf
  2. Detect false sharing with Data Address Profiling. | Easyperf
  3. How sport helps me to recharge. | Easyperf
  4. Data-Driven tuning. Specialize indirect call. | Easyperf
  5. Data-Driven tuning. Specialize switch with one hot case. | Easyperf
  6. How to find expensive locks in multithreaded application. | Easyperf
  7. Performance analysis of multithreaded applications. | Easyperf
  8. Intel Processor Trace Part4. Better profiling experience. | Easyperf
  9. Intel Processor Trace Part3. Analyzing performance glitches. | Easyperf
  10. Intel Processor Trace Part2. Better debugging experience. | Easyperf
  11. Enhance performance analysis with Intel Processor Trace. | Easyperf
  12. How to get consistent results when benchmarking on Linux? | Easyperf
  13. Developing intuition when working with performance counters. | Easyperf
  14. Performance analysis and tuning challenge #3. | Easyperf
  15. Estimating branch probability using Intel LBR feature. | Easyperf
  16. Performance analysis and tuning challenge #2. | Easyperf
  17. Precise timing of machine code with Linux perf. | Easyperf
  18. Machine code layout optimizations. | Easyperf
  19. How to collect CPU performance counters on Windows? | Easyperf
  20. Performance optimization challenge #1. | Easyperf
  21. Top-Down performance analysis methodology. | Easyperf
  22. How good of a performance optimizer you are? Challenge! | Easyperf

2018 20

  1. Understanding IDQ_UOPS_NOT_DELIVERED performance counter. | Easyperf
  2. Using denormal values is slow. How to detect it? | Easyperf
  3. I am relocating to the US. | Easyperf
  4. Performance analysis vocabulary. | Easyperf
  5. Understanding performance events skid. | Easyperf
  6. Basics of profiling with perf. | Easyperf
  7. Improving performance by better code locality. | Easyperf
  8. Advanced profiling topics. PEBS and LBR. | Easyperf
  9. PMU counters and profiling basics. | Easyperf
  10. My learning resources in 2018 | Easyperf
  11. What optimizations you can expect from CPU? | Easyperf
  12. Tools for microarchitectural benchmarking. | Easyperf
  13. Understanding CPU port contention. | Easyperf
  14. Embo 2018 trip report. | Easyperf
  15. Store forwarding by example. | Easyperf
  16. MacroFusion in Intel CPUs. | Easyperf
  17. MicroFusion in Intel CPUs. | Easyperf
  18. Microbenchmarking fused instruction. | Easyperf
  19. Code alignment options in llvm. | Easyperf
  20. Code alignment issues. | Easyperf

2017 8

  1. Code::Dive 2017 trip report. | Easyperf
  2. Vectorization part7. Tips for writing vectorizable code. | Easyperf
  3. Vectorization part6. Multiversioning by trip counts. | Easyperf
  4. Vectorization part5. Multiversioning by data dependency. | Easyperf
  5. Vectorization part4. Vectorization Width. | Easyperf
  6. Vectorization part3. Compiler report. | Easyperf
  7. Vectorization part2. Warmup. | Easyperf
  8. Vectorization part1. Intro. | Easyperf

2016 3

  1. Small size optimization. | Easyperf
  2. Sentinels. | Easyperf
  3. Code::Dive 2016 trip report. | Easyperf