Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.

This article breaks it down fully: https://wccftech.com/why-apple-m1-single-core-comparisons-ar...



Have you read the comments on that article? That article is not nearly of a smoking gun as the possibly clickbait title.

More discussion: https://linustechtips.com/topic/1276532-exclusive-why-apple-...


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.


That article makes no sense whatsoever. And whoever wrote it doesn't not understand what they're talking about.

SMT is designed to boost performance in multitreaded workloads.

It can be thought as multitasking for a CPU core.

Using two threads for one benchmark and use one thread for another, it is not comparing single core performance.

Because why wouldn't that CPU schedule the load on other cores?


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.

I don't see a scenario where SMT will help

AnandTech have done a comparison here: https://www.anandtech.com/show/16261/investigating-performan...

You can see it's all within 1% with it on and off for single threaded.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: