5 ms·
128 cores is impressive, but the single core performance is painfully low compared to the M series.
by a_vanderbilt 3y ago
128 cores is impressive, but the single core performance is painfully low compared to the M series.
- pjmlp 3y agoOutside classical C UNIX applications, most language runtimes are multihreaded anyway. Windows has been multithreaded for decades across all layers, even classical Win32 written in C is using multiple threads. Android, ChromeOS and macOS likewise. In the end, single core performance being that relevant is quite niche case in modern software stacks.
- zerohp 3y agoHaving multiple threads does not mean that they are all doing equally useful work. Single threaded performance is absolutely critical for a desktop machine. Even in multithreaded desktop applications, it's rare to see them effectively use more than 8 threads.
- geerlingguy 3y agoThere are some tasks where single core definitely limits the performance (some games especially). For most of the 'compute' oriented tasks like CAD/3D, LLMs, etc. multicore is great, and the slow single core speed doesn't seem to get in the way. I would still rather have 128 M1-class cores than 128 Neoverse-N1 cores :)
- sroussey 3y agoI would rather have 10 M series and take the rest of the area for cache.
- pjmlp 3y agoYeah, on classical UNIX tradition. macOS, ChromeOS, Windows and Android are heavily multithreaded, even when there is one main application thread, the underlying OS APIs are using auxiliary threads. Easily observable in any system debugger.
- cozzyd 3y agoPython enters the chat.
- pjmlp 3y agoIf we ignore the threads that might be executing in the background for GC, async io support, and in some runtimes JIT compiler.
- imtringued 3y agoA lot of software that doesn't support multithreading could easily support it by implementing a single threaded graph partitioning algorithm or an algorithm to find disconnected subgraphs. Your ability to feed your cores is now limited by this piece of single threaded code. The easy way to get around this is to have heterogeneous cores. Ampere could have easily slapped 2 A76 cores for every 32 Ampere cores to prevent this problem. The harder way to get around this is to multithread the partitioning algorithm, but that will convince more people that multithreading isn't worth it, because their Ryzen runs the same code faster even though it might only have 12 cores. https://box2d.org/posts/2023/10/simulation-islands/ https://box2d.org/posts/2023/10/simulation-islands/
- aseipp 3y agoTo be fair the Neoverse N-series was designed for datacenter style usage where lower clock frequencies and going wide is more common even on x86. For client uses some of the things the Apple M-series does for single core performance may or may not be worse; in particular 128-bit cache lines would potentially add a lot more false-sharing, and the really big-and-fast per-core L2 is probably not practical even if you added the 16kb page size that Apple uses to achieve it (L2 sizes it didn't get any better with AmpereOne either, though). Those are big, good single-core wins that make sense for client SKUs. I think you'll always have some of those tradeoffs with CPUs like this. Hopefully Qualcomm Oryon will spice things up on the client side a bit. Maybe we can get some real HEDT designs after that.
- ihattendorf 3y agoThat's all true, but then maybe it's not "the fastest Arm desktop" if it's 25% faster in multi-core workload but the M2 Ultra is _168% faster in single core_ (that's 168% faster as in 2.68x as fast, not 68% faster). There are plenty of workloads where the M2 Ultra will be significantly more performant. I'm excited for the future of ARM desktops, but that also means they need to significantly increase single core performance. It looks like maybe the Snapdragon X Elite will get us there? Or at least significantly closer.
- geerlingguy 3y agoAmpereOne uses a customized CPU core too, and I haven't had a chance to test on it yet to see how it compares. Still probably far below the latest Qualcomm or Apple core designs, but should be better than the Altra/Altra Max series. I would love to see an EPYC-style Arm CPU with M1 or better cores.