Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #892

P

Performance Matters

Personal blog · travisdowns.github.io/blogprogrammingsystems

Performance Matters is a personal blog at travisdowns.github.io about programming and systems. Since 2019, 73 different Hacker News readers have linked it 132 times, most often “A Concurrency Cost Hierarchy”. The last post was in 2021, but the archive is still widely read.

Visit the blog
132mentions?
4recommend?
73HN people?
2019–2026first – last linked?
Links on Hacker News per year · peak 40 in 2020

Rarely recommended · 4 of 40 sampled comments recommend it?

Why HN links it

HN readers link it for detailed measurements of CPU behaviour, including AVX-512 frequency licensing and downclocking, store forwarding and concurrency costs, citing it as evidence in arguments about Intel and AMD chips.

Recommended for · 4 comments
Called great for low-level software; a concurrency post called awesome; register-count work called great; one suggested read that "helps".

Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

A blog about low-level software and hardware performance.

Most-linked posts?

  1. A Concurrency Cost Hierarchy
    16 people · 29 mentions · first linked 2020-07-06
  2. Gathering Intel on Intel AVX-512 Transitions
    11 people · 12 mentions · first linked 2020-01-17
  3. Ice Lake AVX-512 Downclocking
    8 people · 12 mentions · first linked 2020-08-19
  4. Performance Speed Limits
    7 people · 10 mentions · first linked 2019-06-11
  5. AVX-512 Mask Registers, Again
    6 people · 9 mentions · first linked 2020-05-26
  6. Beating Up on Qsort (2019)
    6 people · 7 mentions · first linked 2019-05-23
  7. The Hunt for the Fastest Zero
    6 people · 6 mentions · first linked 2020-01-20
  8. Incrementing vectors
    5 people · 6 mentions · first linked 2019-08-26
  9. Hardware Store Elimination
    5 people · 6 mentions · first linked 2020-05-13
  10. Where do interrupts happen?
    4 people · 4 mentions · first linked 2019-08-20

What Hacker News says?

  1. This is not true anymore: https://travisdowns.github.io/blog/2020/08/19/icl-avx512-fre...

    Comment linking /blog/2020/08/19/icl-avx512-freq.html

    on “AMD Zen 3/Ryzen 5000 announcement [video]”
  2. Submitted Your CPU may have slowed down on Wednesday as a story · 735 points

    HN discussion
  3. From the post about the original finding ( https://travisdowns.github.io/blog/2020/05/13/intel-zero-opt... ), it looks like Haswell did not have this optimization to begin with (find section Hardware Survey and look at the different architectures - specifically looking for divergence in performance at L3 and RAM between orange and blue dots).

    Comment linking /blog/2020/05/13/intel-zero-opt.html

    on “Your CPU may have slowed down on Wednesday”
  4. Submitted Clang Format Tanks Performance as a story · 306 points

    HN discussion
  5. shaklee3 · 2020-02-08Recommends
    For low-level software, these are great: https://eli.thegreenplace.net/ https://travisdowns.github.io/ https://preshing.com/

    Comment linking /

    on “Ask HN: What are good solo developer blogs that you enjoy reading?”
  6. Submitted Performance Speed Limits as a story · 256 points

    HN discussion
  7. Well, there was a real-time thing bought by Sun from Sweden but I'm still unclear as to how much of that has made it into the open-source part of the JDK. Time will tell! Joint Parallelism is a term that I invented, it means loosely defined: if two threads can read and write to the same memory at the same time without it causing too much loss... basically you need atomic concurrency which is only really efficient on…

    Comment linking /blog/2020/07/06/concurrency-costs.html

    on “Why asynchronous Rust doesn't work”
  8. Submitted Where do interrupts happen? as a story · 192 points

    HN discussion
  9. belter · 2022-02-20Recommends
    I think this one helps: https://travisdowns.github.io/blog/2020/07/06/concurrency-co...

    Comment linking /blog/2020/07/06/concurrency-costs.html

    on “Server-Sent Events: an alternative to WebSockets”
  10. Submitted A Concurrency Cost Hierarchy as a story · 147 points

    HN discussion
  11. >On Ice Lake Xeon the penalty for using the AVX-512 features on a single core is -100MHz. That is a penalty due to licensing [0], not thermal throttling. As I wrote elsewhere, I’ve seen my clockspeed get cut in half across all cores on a physical die when running AVX-heavy operations for a sustained period of time, due to thermal throttling. [0] https://travisdowns.github.io/blog/2020/08/19/icl-avx512-fre...

    Comment linking /blog/2020/08/19/icl-avx512-freq.html

    on “Vectorized and performance-portable Quicksort”
  12. Submitted The Hunt for the Fastest Zero as a story · 133 points

    HN discussion
  13. > Slow compiles are an issue with C++ templates. As far as I know Rust has the same problem although to lesser extent. Monomorphization works well with judicious use. C++ STL is not written like that, they depend on 11111 layers of inlining to work well. Rust libraries aren't much better in this regard. LTO removed some code bloat, but LTO itself takes more time. until thinLTO summary pass / equivalent pass in GCC W…

    Comment linking /blog/2020/01/20/zero.html

    on “Generics can make your Go code slower”
  14. Submitted Ice Lake AVX-512 Downclocking as a story · 126 points

    HN discussion
  15. No, actually grandparent is correct here - Skylake-X/Skylake-SP have never clocked down the first time they see an AVX-512 instruction. It actually is when the AVX instructions start to get dense enough to justify a voltage swing upwards. This actually exists in Haswell as well - certain AVX2 instructions are designated "heavy" and if you get enough of them you'll enter a voltage or frequency transition. On Skylake-…

    Comment linking /blog/2020/08/19/icl-avx512-freq.html

    on “Zen4's AVX512 Teardown”
  16. Submitted Gathering Intel on Intel AVX-512 Transitions as a story · 126 points

    HN discussion
  17. That was before Ice Lake, where it had a very decent performance (just downclocking 10%) and then on Rocket Lake it didn't even downclock [0]. But the thing that stuck in our collective mind was that "it's bad because it downclocks". And seeing the RKL numbers, which are new to me (I had only read de Ice Lake numbers back in 2020) it wasn't even 14nm's fault, just an implementation issue which Intel eventually worke…

    Comment linking /blog/2020/08/19/icl-avx512-freq.html

    on “Intel completely disables AVX-512 on Alder Lake after all”
  18. Submitted AVX-512 Mask Registers, Again as a story · 102 points

    HN discussion
  19. It’s not the instruction decoder that wastes die space. In fact, it’s less than 5% of the die (on Skylake).[0] [0]: https://pbs.twimg.com/media/EXFJLebXkAYkXTr?format=jpg&name=... In case that link dies, it’s from [1] which is linked from [2] [1]: https://mobile.twitter.com/GPUsAreMagic/status/1256866465577... [2]: https://travisdowns.github.io/blog/2020/05/26/kreg2.html

    Comment linking /blog/2020/05/26/kreg2.html

    on “Apple M1 vs. Ryzen 3900X vs. Intel I9 in Software Development”
  20. Submitted Incrementing vectors as a story · 98 points

    HN discussion
  21. The operations are somewhat different though. Store-to-load forwarding is more complicated and doesn't completely eliminate the operation, it just significantly reduces the cycle count when successful. Although apparently Zen 2 changed this and can pull off zero latency. ( https://www.agner.org/forum/viewtopic.php?t=41 ) Some general background: ( https://travisdowns.github.io/blog/2019/06/11/speed-limits.h... )

    Comment linking /blog/2019/06/11/speed-limits.html

    on “Nvidia Unveils Grace: A High-Performance Arm CPU for Use in Big AI Systems”
  22. Submitted Ice Lake Store Elimination as a story · 97 points

    HN discussion
  23. The only problem Java has is experienced C programmers don't build servers from scratch with it yet. Once they take that responsibility, the debate will be over because: "While I'm on the topic of concurrency I should mention my far too brief chat with Doug Lea. He commented that multi-threaded Java these days far outperforms C, due to the memory management and a garbage collector. If I recall correctly he said "onl…

    Comment linking /blog/2020/07/06/concurrency-costs.html

    on “Don’t call it a comeback: Java is still champ”
  24. Submitted What has your microcode done for you lately? as a story · 90 points

    HN discussion
  25. "While I'm on the topic of concurrency I should mention my far too brief chat with Doug Lea. He commented that multi-threaded Java these days far outperforms C, due to the memory management and a garbage collector. If I recall correctly he said "only 12 times faster than C means you haven't started optimizing"." - Martin Fowler https://martinfowler.com/bliki/OOPSLA2005.html "Many lock-free structures offer atomic-fr…

    Comment linking /blog/2020/07/06/concurrency-costs.html

    on “Chip design shifts as fundamental laws run out of steam”
  26. Submitted Beating Up on Qsort (2019) as a story · 81 points

    HN discussion
  27. You have to switch to a higher-voltage state to account for the voltage droop that you will cause when the AVX units fire off. https://travisdowns.github.io/blog/2020/01/17/avxfreq1.html (specifically: https://travisdowns.github.io/assets/avxfreq1/fig-volts256-1... ) > So one theory is that this type of transition represents the period between when the CPU has requested a higher voltage (because wider 256-bit instru…

    Comment linking /assets/avxfreq1/fig-volts256-1.svg

    on “AMD Threadripper 3970X under heavy AVX2 load: Defective by design?”
  28. Submitted Incrementing Vectors (2019) as a story · 48 points

    HN discussion
  29. Not increased number of execution units, but increased number of transistors, yeah. A normal multiply does 1 number at a time (32 bit for simplicity). AVX2 can do up to 8 multiplications at a time. That's a huge amount more transistors firing all at once and that causes the voltage to start to droop. AVX-512 takes that even further and now it's 16 multiplications per unit, oh and Intel moved from 1x256-bit unit per…

    Comment linking /assets/avxfreq1/fig-volts256-1.svg

    on “AMD Threadripper 3970X under heavy AVX2 load: Defective by design?”
  30. Submitted Hardware Store Elimination as a story · 45 points

    HN discussion

Search all of HN for travisdowns.github.io

Linked by the same people?