Hacker News new | ask | show | jobs
by KingOfCoders 742 days ago
[If you're a laptop user, scroll down the thread for laptop Rust compile times, M3 Pro looks great]

You're misguided.

Apple has excellent Notebook CPUs. Apple has great IPC. But AMD and Intel have easily faster CPUs.

https://opendata.blender.org/benchmarks/query/?compute_type=...

Blender Benchmark

      AMD Ryzen 9 7950X (16 core)         560.8
      Apple M2 Ultra (24 cores)           501.82
      Apple M3 Max (12 cores)             408.27
      Apple M3 Pro                        226.46
      Apple M3                            160.58
It depends on what you're doing.

I'm a software developer using a compiler that 100%s all cores. I like fast multicore.

      Apple Mac Pro, 64gb, M2 Ultra, $7000
      Apple Mac mini, 32gb, M2 Pro, 2TB SSD, $2600
[Edit2] Compare to: 7950x is $500 and a very fast SSD is $400, fast 64gb is $200, very good board is $400 so I get a very fast dev machine for ~$1700 (0,329 p/$ vs. mini 0,077 p/$)

[Edit] Made a c&p mistake, the mini has no ultra.

3 comments

That seems wrong.

Though Blender may have an optimization for avx512 but not for SME or Neon.

But the vast majority will use GPUs to do rendering for Blender.

Try SPEC or its close consumer counterpart, Geekbench.

As an anecdote, all my Python and Node.js applications run faster on Apple Silicon than Zen4. Even my multithread Go apps seem to run better on Apple Silicon.

Now you're just asserting things unencumbered by even the slightest evidence.

On Passmark Apple CPUs are pretty far down the list.

On Geekbench I gave up after scrolling a few pages.

And "run faster on Apple Silicon than Zen4" means nothing. On the low end you have fairly cheap Ryzen 3 laptop chips, and on the high end you have Threadripper behemoths.

Passmark is a pretty bad CPU benchmark. It generally has poor correlation.

I would stick to SPEC and Geekbench.

Even Cinebench 2024 isn't too bad nowadays though R23 was quite poor in correlation.

In general, not only are Apple Silicon CPUs faster than AMD consumer CPUs, but they're 2-4x more power efficient as well.

The problem with Geekbench is it's trying to average the scores from many different benchmarks, but then if some of them are outliers (e.g. one CPU has hardware acceleration or some other unusual aptitude for that specific workload), it gets an outsized score which is then averaged in and skews the result even if it doesn't generalize.

What you want to do is look at the benchmarks for the thing you're actually using it for.

> they're 2-4x more power efficient as well.

This is generally untrue, people come to this conclusion by comparing mobile CPUs with desktop CPUs. CPU power consumption is non-linear with performance, so a large power budget lets you eek out a tiny bit more margin. For example, compare the 65W 5700X with the 105W 5800X. The 40 extra watts buys you around 2% more single thread performance, not because the 5700X has a more efficient design -- they're the exact same CPU with a different power cap. It's because turning up the clock speed a tiny bit uses a lot more power, but desktop CPUs do it anyway, because they don't have any such thing as battery life and people want the extra tiny bit more. Or the CPU simply won't clock any higher and doesn't even hit the rated TDP on single-threaded workloads.

The extra power will buy you a lot more on multi-threaded workloads, because then you get linear performance improvement with more power by adding more cores. But that's where the high core count CPUs will mop the floor with everything else -- while achieving higher performance per watt, because the individual cores are clocked lower and use less power.

  The problem with Geekbench is it's trying to average the scores from many different benchmarks, but then if some of them are outliers (e.g. one CPU has hardware acceleration or some other unusual aptitude for that specific workload), it gets an outsized score which is then averaged in and skews the result even if it doesn't generalize.

Geekbench CPU benchmark does not optimize for accelerators. It optimizes for instruction sets only.
It's not just about coprocessors. If one CPU has a set of SIMD instructions that double performance on that benchmark or more, that creates a large outlier that significantly changes the average.

Apple Silicon also has more memory bandwidth the primary purpose of which is to feed the GPU because most CPU workloads don't care about that, but if you average in the occasional ones that does then you get more outliers.

Which is why the thing that matters is how it performs on the thing you actually want to run on it, not how it performs in aggregate on a bunch of other applications you don't use.

The max power on Intel/AMD CPUs is only there to get the CPU "performance crown". As you've said, you spend a large amount of additional power for very minor gains (to be at the top of fancy Youtube review charts).

It looks though as if AMD/Intel feel threatened by Snapdragon though - we'll see what AMD Strix / Halo brings for the first meaningful x86 mobile processor in years (or Luna Lake).

> The max power on Intel/AMD CPUs is only there to get the CPU "performance crown".

It's mostly not. Its real purpose is to improve performance on threaded workloads.

Multi-core CPUs work like this: At the max boost a single core might use, say, 50 watts. So if you have 8 cores and wanted to run them all full out, you'd need a 400 watt power budget, which is a little nuts. It's not even worth it. Because you only have to clock them a little lower, say 4GHz instead of 5, to cut the power consumption more than in half, and then you get a TDP of e.g. 100W. Still not nothing but much more reasonable. You can also cut the clock speed even more and get the power consumption all the way down to 15W, but then you're down to 2GHz on threaded workloads and sacrificing quite a bit of multi-thread performance.

So they're not just trying to eek out a couple of percent, even though that's all you get from single thread improvement, because a single core was already near or at its limit. Whereas 8 cores at 4GHz will be legitimately twice as fast as the same cores at 2GHz. But they'll also use more than twice as much power. Which matters in a laptop but not so much in a desktop.

Of course, the thing that works even better is to have 16 cores or more that are clocked a little lower, which improves performance and performance per watt. The performance per watt of the 96-core Threadrippers are astonishingly good -- even though they're 360W. But that also requires more silicon, so those ones are the expensive ones.

Apple's M3 Max CPU cores peak out at 55w for 16 cores (12p+4e). AMD's 8-core U-series chips peak out at 65-70w on CPU-only workloads and still loses out massively in pretty much every category.

If you downclock that AMD chip, it does get more efficient, but also loses by even larger margins.

Because you're comparing a 16-core CPU to an 8-core CPU on threaded workloads, which as mentioned is where the multi-threaded workloads will favor the one with more cores on both performance and performance per watt. But why not compare it to the Ryzen that also has 16 cores, like the 7945HX3D? Because then the Ryzen is generally faster on threaded workloads, even though the TDP is still 55W -- and even though it's on TSMC 5nm instead of 3nm.
> I would stick to SPEC and Geekbench.

I will repeat:

"On Geekbench I gave up after scrolling a few pages."

SPEC doesn't seem to have easily browsable results, but we can find the Cinebench 2024 ones easy and guess what? Apple isn't at the top. Not even close: https://www.cgdirector.com/cinebench-2024-scores/

Geekbench has a seperate page for each "instruction set".

For Apple you need to go to https://browser.geekbench.com/mac-benchmarks

Then compare numbers by hand I assume.

Though what I would love is compile-time vs. $ (as mentioned, I'm a software developer). The 7950x is $500 and a very fast SSD is $400, fast 64gb is $200, very good board is $400 so I get a very fast dev machine for ~$1700.

I compiled a few previously. Sorry for the formatting:

ASUS ROG Zephyrus G16 (2024)

Processor: Intel Core Ultra 9 185

Memory: 32GB

Cargo Build: 31.85 seconds

Cargo Build --Release: 1 minute 4 seconds

ASUS ROG Zephyrus G14 (2024)

Processor: AMD Ryzen 8945HS / Radeon 780M

Memory: 32GB

Cargo Build: 29.48 seconds

Cargo Build --Release: 34.78 seconds

ASUS ROG Strix Scar 18 (2024)

Processor: Intel Core i9 14900HX

Memory: 64GB

Cargo Build: 21.27 seconds

Cargo Build --Release: 28.69 seconds

Apple MacBook Pro (M3 Pro 11 core)

Processor: M3 Pro 11 core

Cargo Build: 13.70 seconds

Cargo Build --Release: 21.65 seconds

Apple MacBook Pro 16 (M3 Max)

Processor: M3 Max

Cargo Build: 12.70 seconds

Cargo Build --Release: 15.90 seconds

Firefox Mobile build:

M1 Air: 95 seconds AMD 5900hx: 138 seconds Source: https://youtu.be/QSPFx9R99-o?si=oG_nuV4oiMxjv4F-&t=505

Javascript builds

Here, Alex compares the M1 Air running Parallels emulating Linux vs native Linux on AMD Zen2 mobile. The M1 is still significantly faster. https://youtu.be/tgS1P5bP7dA?si=Xz2JQmgoYp3IQGCX&t=183

Docker builds

Here, Alex runs Docker ARM64 vs AMD x86 images and the M1 Air built the image 2x faster than an AMD Zen2 mobile. https://youtu.be/sWav0WuNMNs?si=IgxeMoJqpQaZv2nc&t=366

Anyways, Alex has a ton more videos on coding performance between Apple, Intel and AMD.

Lastly, this is not M1 vs Zen2 but it's M2 vs Zen4.

LLVM build test

M2 Max: 377 seconds Ryzen 9 7940S: 826 seconds

Ah right; that's confusing! Seems that the AMD and Intel chips are much faster though, consistent with other benchmarks.

Speed vs. $ is of course a different story than pure speed; kinda hard to capture in a number I guess.

Most Go projects compile more than fast enough even on my 7 year old i5, although there are exceptions (mostly crummy hyper-overengineered projects).

Here's GB6: https://browser.geekbench.com/v6/cpu/compare/6339005?baselin...

Note: M3 Max is a 40w CPU maximum, while 7950x is a 230w CPU maximum. The stated 170w max is usually deceptive from AMD.

Source for 7950x power consumption: https://www.anandtech.com/show/17641/lighter-touch-cpu-power....

Note that the M3 Max leads in ST in Cinebench 2024 and 2-3x better in perf/watt. It does lose in MT in Cinebench 2024 but wins in GB6 MT.

Cinebench is usually x86 favored as it favors AVX over NEON as well as having extremely long dependency chains, bottlenecked by caches and partly memory. This is why you get a huge SMT yield from it and why it scales very highly if you throw lots of "weak" cores at it.

This is why Cinebench is a poor CPU benchmark in general as the vast majority of applications do not behave like Cinebench.

Geekbench and SPEC are more predictive of CPU speed.

It the end, what matters is real-world performance and different workloads have different bottlenecks. For people who use Cinema 4D, Cinebench is the most accurate measurement of hardware capabilities they can get. It's very hard to generalize what will matter for the vast majority of people. I find it's best to look at benchmarks for the same applications or similar workloads to what you'll be doing. Single score benchmark like Geekbench are fun and quick way to get some general idea about CPU capabilities, but most of the time they don't match specifics of real-world workloads.

Here's a content creation benchmark (note that for some tasks a GPU is also used):

https://www.pugetsystems.com/labs/articles/mac-vs-pc-for-con...

"But the vast majority will use GPUs to do rendering for Blender."

And the argument is, you can't use Blender to compare CPU performance because of that?

"Even my multithread Go apps seem to run better on Apple Silicon."

As a Go developer, I'd love to hear your story: How much faster does your Apple Silicon compile compare to a Zen4 (e.g. the 7950x?)? For example 100k lines of Go code.

I might switch back to Apple again (used Apple for 20+ years), if it's faster at compilation speed.

M4 is looking pretty interesting. Near 10% IPC uplift and they bumped the e-core on the base M4, so we're probably looking at the same 12 p-cores for the M4 max, but likely going from 4 to 12 e-cores (two of the 6-core complexes).

In multithreaded workloads, 2 of their current e-cores are roughly equivalent to 1 p-core, so that would represent the equivalent of 4 extra p-cores.

> How much faster does your Apple Silicon compile compare to a Zen4 (e.g. the 7950x?)?

Good ol, compare a $400 piece of equipment with a $3000 piece of equipment. I wonder what will win. (unironically, most of the time, the $3000 piece of equipment doesnt win)

What is this $400 piece of equipment?
On Geekbench, though they are segregated in separate pages so I'm not sure if the comparison is fully correct, the M2Ultra is behind the top 3 PC processors (2 Intel and 1 AMD) for multi-core, and it is indeed the best at single core.
Yes see the GB6 benchmarks for compilation

    M2 Ultra   233.9 Klines/sec
    7950x      230.3 Klines/sec  
    14900K     215.3 Klines/sec  
    M3 Max     196.5 Klines/sec
are nearly the same.
Would that be comparing to Windows on Zen4 or to Linux on Zen4? On Windows I've noted that especially forking performance takes a big hit which causes many dynamic languages that do stuff with say invoking a runtime binary being 100s of times slower on windows (tried with bash and python).
There's something wrong with your M3 Max stuff. I believe it comes in 14 and 16-core variants while the M3 Pro comes in 11 and 12-core variants.

In any case, M3 Max uses less than 55w of power in CPU-only workloads while a desktop 7950x peaked out at 332w of power according to Guru3D (without an OC).

The fact that M2 Ultra hits so close while peaking out at only around 100w of CPU power is pretty crazy (M2 Ultra doesn't even hit 300w with all CPU and GPU cores maxed out).

Yes you're right the M3 Max has 14/16 and the M3 Pro 11/12 cores.
> Blender Benchmark

Maybe use a benchmark that actually makes sense for CPUs, rather than something that's always much faster on a GPU (eg. M3 Pro as any sane user would use it for Blender is 2.7x the performance of a Ryzen 7950X, not 0.4x).

> Apple Mac mini, 32gb, M2 Ultra, 2TB SSD, $2600

Not a real thing. You meant M2 Pro, because the Max and Ultra chips aren't available in the Mac mini.

I would love to quote a compiler comparison, but I don't know a good and accepted compiler benchmark. What would you use as a compiler benchmark? (Preferably Go, but I assume Rust would be better, as it is much slower, so the differences are bigger)

(corrected my c&p mistake with the mini, thanks)

You can look at the Geekbench 6 component.

https://www.geekbench.com/doc/geekbench6-benchmark-internals... (page 18)

Thanks, Clang looks good, now I need to check how to sort CPUs/systems by the Clang benchmark, no success for now.

"Randomly" picking

    14900K     215.3 Klines/sec  
    7950x      230.3 Klines/sec  
    M2 Ultra   233.9 Klines/sec
    M3 Max     196.5 Klines/sec
Single thread:

M3 Max: 3898

7950x: 2951

The ST advantage of Apple Silicon is real. 7950x does do better in highly parallel tasks.

To me, Apple Silicon is clearly leading clients over AMD/Intel. Hence, my original reason for why AMD's announcement isn't "exciting". Because Apple Silicon is so far ahead in client.

Of course, AMD can crank up the core via Epyc/Threadripper and Apple has no answer. For that, you'd need to look into ARM chips from Ampere/Amazon for a competitor.

Yes, and is great if you are a gamer / have software that doesn't multi-core.
Building clang using itself is a reasonable approximation to a compiler benchmark, speaking as someone who spends a depressing fraction of his life doing that over and over for permutations of the source code. That's somewhere in the five to ten minutes range on a decent single socket system.
Do you know of a benchmark site that compares clang compilations for different systems (CPU/RAM/SSD)?
Think chromium compile is widely used
Can you point me to a comparison site? Didn't find a M3/M2/7950/... comparison site for chromium compile times :-(

(Even phoronix is scares and mostly focuses on laptops - I have no laptop)

There probably isn't a site that just comparess chromium compilation time, but you can find the number in many YouTube and text reviews.
Is blender 100% GPU now? Last time I used it, there were multiple renderers available, and it wasn’t a 100% win to switch to GPU. IIRC the cpu did better in ray tracing(?). This was a couple years ago though so things may have changed or I might not be recalling correctly.
I think GPU rendering was always faster as long as you had a supported GPU. Now that the Cycles renderer has support for all the major GPU APIs/vendors, the only reasons to render on the CPU are if you don't have a half-decent GPU, or if your scene doesn't fit in your GPU's memory. Neither of those are a concern on Apple systems.

At least on NVIDIA hardware, Blender can use the GPU's raytracing capabilities rather than just the general-purpose GPU compute capabilities. Which means it doesn't take a very expensive GPU at all to outperform high-end CPUs.