i remember when 1st zen Ryzen was a beast on this bench, then they updated it and the scores dropped a LOT... lets wait and see folks
No, what I meant is if the result is real, the developer should be informed, so the bug can be found and fixed.
To you both;
Several synthetic benchmarks changed after Zen launched, they changed because the developers decided to change the weighting of the benchmark scores. I would assume they run the same code across different CPUs (otherwise a direct comparison would be pointless), which would mean it can't be a software bug. I'm fairly sure they changed the weighting because these benchmarks made Zen/Zen 2 CPUs look way better than reflected in real world benchmarks.
This exposes one of the fundamental problems of synthetic benchmarking; there is really no fair way to do it, especially if you want to generate some kind of total score for the CPU. There will always be disagreements on how to weight different workloads to create a total score. In reality, synthetic benchmarks are only interesting for theoretical discussions, and
no one should base their purchasing decisions on them. What you should look for is real world benchmarks matching your needs, and if that can't be found, a weighted average of
real world benchmarks.
-----
Doing good benchmarking is actually fairly hard. Developers who try to optimize code face this challenge regularly, usually to see which code changes perform better, not to see which hardware is better. This usually means to isolate small changes, run them through millions of iterations to exaggerate a difference enough to make it measurable. Then combine a bunch of these small changes into something that may make a whole algorithm 20-50% faster, or a whole application.
I find it very fascinating to see how much it matters to write optimized code on newer architectures. I have some 3D math code that I've been using and improving for many years, and seen how my optimized implementations keep getting proportionally faster than their baseline counterparts on newer architectures, e.g. Sandy-Bridge -> Haswell -> Skylake. And it's obvious to me that the benefits of writing good code is growing, not shrinking, with faster and more superscalar architectures. So even though faster CPU front-ends helps extract more from existing code, increasingly superscalar architectures can extract
even more parallelization from better code. The other day I was comparing an optimization across a lot of code that got ~5-10% extra performance on Skylake. Then I tested it on Zen 3 and got similar improvements vs. unoptimized code, except in one edge case I got like 100% extra performance, and this from just a tiny change. Examples like this makes me more excited than ever to see what Golden Cove(Alder Lake) and Zen 4 brings to the table. We are nowhere near the end of what performance we can extract per thread, and the upcoming architectures in the next 10 years or so should bring exciting performance improvements.