Caporegime
I'm glad you brought this argument out. Dg has lost the plot.
CPU's do not work the way people think. The ZEN architecture will grab hundreds of opcodes and operands (instructions), figure out the dependency graph, do some branch prediction and then execute them out of order, several concurrently. You then stick the results all back together, maybe throwing away some of the incorrectly predicted branches. This is done to avoid the limitations of RAM and to increase parallelism without the coder needing to know the architecture in question. If you need to go back to RAM, it is REALLY slow, but again, executing tons of stuff allows this to proceed without the whole pipeline stalling for _ages_.
The above is the reason behind current CPUs having IPC's of non-integers, e.g. 3.2 for Zen 2 vs. 3.6 for Skylake in some workload [https://lemire.me/blog/2019/12/05/instructions-per-cycle-amd-versus-intel/]
So clocking the processor higher gives you linear scaling of processing, but improving your branch prediction and caching strategy can have much bigger impacts to your IPC.
TL;DR: Your processor isn't neat and tidy, it does things massively out of order and unpredictably. Clocking your processor higher nets you linear IPC scaling at best. Improving your deeply out-of-order execution strategy (read architecture), can net you non-linear IPC gains.
That article is a little odd, he's citing IPC comparison benchmarks that show a higher IPC on the Zen 2 architecture and then making the argument that his own little code that he wrote proves its not actually true, that in fact his benchmark code shows that Skylake actually has 50% higher IPC (2.1 vs 1.4)
Look, i don't pretend to understand any of this but much more often than not in any actual Desktop application workload Zen 2 is consistently 10 to 15% ahead clock for clock, i'm a little bit suspicious when someone comes along (academic or not) and says "look, despite the end result in the real world showing X result, if you use this software that i made here i can prove it all wrong"
Its a bit like Intel saying "ignore all of that software you actually use on your PC for your work and hobbies, instead here is this synthetic benchmarking tool, that we are not going to tell you we actually own the company who made it, and if you run that it shows that actually we are better"
Which is exactly what Intel have been doing since time immemorial but especially now, again.
He nor Intel today can ever explain away how it is the real world says one thing while they say another, he has been questioned about this in the comments and has basically ignored it.
Last edited: