It turns out that the benchmarks for M1 vs latest generation Intel & AMD CPU's are indeed overblown, and it is an incremental improvement more than a great leap forward.
The source of the confusion has been the benchmarking software. To saturate one core on an Intel processor you need to run two threads, because that's the way they are designed. So the single thread benchmarks that have been used so far have been using 50% of the capacity of an Intel CPU core and comparing it with 100% of the capacity of an M1 CPU core.
I didn't until you linked to it, but having read it it still does appear that comparing single thread to single thread is not very accurate. Neither would core to core considering single thread does hold some weight compared to real world workloads.
I guess at the very least CPU benchmarking software should have a "thread to thread" benchmarker alongside a "core to core" benchmarker, or something along those lines.
That would be in the spirit of having benchmarks indicate real world usage
Eh? I mean, by the same token you could say that single-core benchmarks of Intel chips are invalid, because you need eight threads or whatever to saturate a POWER7's multi-way SMT.
The main purpose of single-threaded benchmarks is to approximate performance for things which are actually single-threaded.
Of course, the scheduler can easily be told to run both benchmark threads on the two hyperthreads of a given core.
The argument to be made is that because of the resources dedicated to SMT, single thread on AMD/Intel versus single thread on Apple is not measuring the true potential performance of the whole core. In principle, some multithreaded workload over all available threads could be a better metric for whole-processor performance.
Fair enough.
But if you're comparing single threaded performance, there isn't a reason to split the workload into two threads for AMD/Intel and have it as a single thread for Apple.
If I had a single threaded application or a single threaded critical path of a multithreaded application.
Benchmarking multicore Performance+Efficiency (Apple) versus SMT (AMD) versus SMT+Wide vectors (Intel) is never going to provide perfect apples-to-apples comparisons. There's an entirely reasonable argument that single-thread performance is oversold as a metric, and that the focus on it advantages some platforms over others.
At the end of the day, benchmarks are inherently only an approximate measure of how real-world code will perform. SMT, basically by definition, is rarely going to benchmark well, but is inherently going to show more of a benefit when running real-world mixed workloads.
The source of the confusion has been the benchmarking software. To saturate one core on an Intel processor you need to run two threads, because that's the way they are designed. So the single thread benchmarks that have been used so far have been using 50% of the capacity of an Intel CPU core and comparing it with 100% of the capacity of an M1 CPU core.
This article breaks it down fully: https://wccftech.com/why-apple-m1-single-core-comparisons-ar...