59 comments

[ 4.8 ms ] story [ 142 ms ] thread
Not an apple user, so likely missing some context, but why is the comparison between M3 Pro and M1 Pro? I think a more logical comparison would be between M3 Pro and M2 Pro.
People on M2 wouldn’t already upgrade.
Depends. Hardware-based ray tracing is pretty attractive. As soon as renderers start making use of it, you'll see render speeds practically double over the previous equivalent M2 machines and considering low power consumption and other things, for some the M3 quickly becomes a pretty enticing offer.

HN might be missing this part, but I'm pretty happy that product people are still at the helm at Apple. We're talking about cores and this and that, but if you go to, for example, forums for Redshift renderer and hear what users of _tools_ who do things with these cores are saying, they are salivating over the M3.

One of the sneakily genius things Apple seems to be doing is, it goes to developers of some of the most "popular" apps and works with them to make their apps work well. Behind the scenes it's working with Maxon, Autodesk, Adobe etc to make things run well, and the information it gathers from working with them informs direction of further R&D. Which is how we came to have hardware-based ray tracing and other things that will actually play a pivotal part in improving end user experience for power users.

100%. They are even paying developers to work on optimizing Blender for Metal, so that Blender was ready for HWRT from day one.
> One of the sneakily genius things Apple seems to be doing is, it goes to developers of some of the most "popular" apps and works with them to make their apps work well

This has been part of their playbook for decades. I distinctly remember some folks from Wolfram (maybe Stephen Wolfram himself?) demo Mathematica running on Intel macs (and talking about how easy it was to port) as part of announcing the transition to Intel.

> One of the sneakily genius things Apple seems to be doing is, it goes to developers of some of the most "popular" apps and works with them to make their apps work well.

What exactly is the problem? Microsoft, Sun etc did the same. Microsoft has a library of software and put in “fixes” so old code that used undefined behavior would continue to run as the os was upgraded.

I don’t think that’s a problem - more like it’s under-appreciated how smart it is. A lot of hardware enthusiasts like to talk about raw capabilities but you can end up with something like the Cell processor if you aren’t careful to make sure those features are used. This is where Apple’s approach is an interesting long-term play: they have been pushing things like the Accelerate framework since the PowerPC days (when you could see e.g. MATLAB get big performance wins simply by dropping in a new BLAS library to replace the unoptimized one it shipped with) and now they’re in the unusual position of being able to line everything up on the same release schedule, too. Sun could have done that on paper but their hardware was rarely competitive and they bit off more than they could chew trying to reinvent every concept of computing portably in Java, and Microsoft has always suffered from being downstream of Intel’s decisions.
> ...but you can end up with something like the Cell processor if you aren’t careful to make sure those features are used.

The Cell hardware didn't turn out how Sony expected either - hence adding an Nvidia GPU at the 11th hour, and bumping up the console price significantly.

I never used it on the console side but we had few pitches for HPC offerings. Back then nobody cared about the GPU but the test runs basically doomed it: the peak performance would have been nice but it required pretty massive rework of each program before the results weren’t bad and we had some memory-latency sensitive workloads which would have suffered horribly. We spent less money on Opterons which were faster on every existing app and since multiple supercomputing systems mixed the two I suspect that was a common decision.
> Hardware-based ray tracing is pretty attractive. As soon as renderers start making use of it, you'll see render speeds practically double over the previous equivalent M2 machines and considering low power consumption and other things, for some the M3 quickly becomes a pretty enticing offer.

Even with hardware acceleration it’s so expensive there is no way they’ll make it a core part of any of their renderers.

I think you may be talking about game engines and realtime rendering when the previous comment was about offline renderers.
Your comment just made me google "apple m3 skyvase", because that's such a delightfully silly idea (using skyvase as an example for offline rendering in 2023, not talking about online renderers in general).

(skyvase.pov was the customary benchmark scene back when pov-ray was a thing, somewhat popular as an FPU-centric real life benchmark in the early Pentium age)

You'd think large software makers like Autodesk would ensure their software works on Mac, but they are the main reason I still have PCs running windows at home – Revit doesn't have a Mac version, doesn't run on Wine and is extremely slow on Windows ARM
> One of the sneakily genius things Apple seems to be doing is, it goes to developers of some of the most "popular" apps and works with them to make their apps work well.

Genuine question, what app is able to utilize ANE? It seems like it's been there for multiple generations and yet nothing makes use of it.

> Genuine question, what app is able to utilize ANE? It seems like it's been there for multiple generations and yet nothing makes use of it.

It is not directly exposed/documented, but instead leveraged by system ML-oriented frameworks like Core ML and Vision where appropriate.

> People on M2 wouldn’t already upgrade.

Absolutely this.

And the small category of people upgrading from M2 from M3 will do it because they know what they need. They won't be dithering about with random evaluations or reading random blog posts. They'll just buy, infact they probably bought the day of the release.

I believe it’s simply that the performance gains from going to 3nm aren’t nearly as significant as going from 7nm to 5nm. Apple would love to show big performance gains between M2 and M3 if they could.

It was curious when they announced Apple Vision Pro would still be using 5nm. This sheds some light on that decision.

Some professionals on M2 will upgrade.

Anecdotally, A professional photographer I know invests significantly in hardware that speeds him up, and he upgraded from the M1 to the M2 because it allowed him to edit photos faster, allowing him to spend less time per job, so he could do more jobs and make more money. He was able to do math and determine how much time it needed to save him to be a worthwhile investment.

Many photographers suffer from gear acquisition syndrome, GAS, and I wonder how much time was actually saved by the purchase. Did they ever share the math they came up with?
I suspect there’s no good reason to upgrade from M2 to M3. Nonetheless, I did it, and if anyone else is in the same boat I was, I encourage you to look at the trade-in values that Apple is offering for M2 MBPs. They offered something like 90+% of the out-of-pocket price I paid for the M2 six months ago, so it was basically a wash on the trade.

I don’t in any way “need” an M3 but this was a particular painful turn of the ever-rotating upgrade wheel, and the generous valuation on the trade certainly took some of the sting off.

I think this might be as simple as being the hardware that the reviewer owns.
5nm vs 3nm maybe? M1/M2 are 5nm.
While it's academically interesting; the M2 Pro/Max Macbook Pros were released in January 2023 (9 months ago). It has rarely been more true of any two generations of Apple products to say that no one who owns an M2 Pro is upgrading to M3.
Still, the M3 is the first 3nm processor. It would be interesting to see it compared to the latest 5nm processor (the M2) to see the gain from die switch.

Perhaps not showing it means there is little benefit from going from 5nm to 3nm?

Given the multitude of choices that can affect the performance of the end product beyond just the lithography, it's mostly because the performance uplift going from M1 -> M3 is much more significant than from M2 -> M3.
You can only meaningfully determine that if you assume the die is more-or-less the same between the two versions. It is not; the M3 Pro has many changes, the perf/efficiency core ratio is different, they have different amounts of per-core cache, max clock rate, etc. That gets bigger as you move away from the CPU cores (e.g. the GPU is a big architecture change.)

For example, the M3 Pro has 6+6 P/E cores, versus the M2 Pro's 8+4. That is a big change that impacts performance, but can only be truly measured "globally" on a specific workload. The M3 Pro does do better for many workloads despite that. Maybe we could assume the improvement in transistor density gave them enough performance uplift, they were able to get rid of 2 P cores and still come out ahead. Does that mean that 3nm is "bad"? No, it meant it was good enough that it allowed them to make a different tradeoff.

"How much uplift comes from this one exact thing" is not really a super simple question to answer in this case, unfortunately, and there are many factors to control for.

All true, but the same apples to the M1 to M3 comparison, and the architectural differences are likely even greater than between the M2 and M3.
Yes, that's my point. The M1 Pro is also 5nm, would you say that the M1 losing badly to the M3 means 3nm is way better than 5nm? No, the architectural differences mean that trying to derive or compare performance characteristics of the underlying lithographic process is mostly difficult or totally pointless. It doesn't matter whether you use the M1 or the M2 as the baseline. You need to use the same design to understand the lithographic differences, and these aren't the same designs. It's only one small part of the equation.

So going back to your original question, I think the reason people compare the M1 vs the M3, and not M2 vs M3, has nothing to do with making 3nm "look good" or whatever. The reason is more mundane: it's because that's what people would probably upgrade from. Because of all the differences, the only way to know whether an upgrade is worth it is to do workload comparisons, not one-to-one architectural/litho comparisons.

This is a really interesting exploration. The M3 Pro was a little confusing at first, having fewer performance cores than its predecessors, and more, but even slower clocked efficiency cores. But the power consumption graph clearly shows the benefits of this design decision, very cool chip
The High Yield YouTuber speculated that the M3 Pro was basically simplified so that the silicon designs for the base and Max could be more easily re-used for the Pro and Ultra [1].

[1]: https://youtu.be/8bf3ORrE5hQ

Not an expert at all. But I think gist of the video is that GPU size relative to other component has increased. Plus they rearranged some of the "furniture" to accommodate that increase.
Have you watched the full video? He talks about the re-use from 8:49 onwards in a section called "Why is the M3 Pro a downgrade?"
Actually I did but I was mostly focused on the GPU. That was the most fascinating aspect for novice like me.
> ...more, but even slower clocked efficiency cores

The E cores have a wider range on both sides in the M3; they are lower at base clock and have a higher max clock.

Slightly off topic but can't be the only one getting confused with Arm Cortex-M3's every time I read an Apple M3 headline. Why would they call a core the exact same name as another companies product?
Why would they:

1. Name their company after a common fruit

2. That common fruit being already word that was used as a company name when they were launched (by none other than the Beatles)

3. Then after they lost a lawsuit, settle with said company based on an agreement that they wouldn't enter that company's field

4. Then a bunch of years later enter that company's field anyway

Long story short: because they can ¯\_(ツ)_/¯

It’s not like the Beatles invented the fruit, and at least the latter two trademark suits were the record company trying to alter the previous agreement when they saw how much money Apple Computing was making, first by arguing that adding a sound card constituted being in the music business and then hoping that the judge would let them change their preferred terms from the first lawsuit to drop the “physical media” qualifier.

If there’s any lesson I’d draw from this, it’s that trademark law should have high barriers to claims for generic names. If you want total control, invent a new word.

See also: "Mac OS 9" vs MicroWare "OS-9", and Apple A1152 vs Man&Machine.
Some might argue that Apple's usage of it makes more sense. M-series for Macs and they are just incrementing numerically.

Meanwhile Arm Cortex is semi-random, sometimes incrementing (M0,M1) sometimes with a "+" designation (M0+) and then just seemingly random jumps up to non-sequential double digits (M23,M35,M52 with or without a P designation. Its like "come on guys, make your mind up".

ARM at least has a clear reasoning for the letters:

M (Microcontroller), R (Real-time), and A (Application) core profiles.

What kind of logic is that? Politeness, if not trademarks, should have prevented them from doing it:

https://en.wikipedia.org/wiki/ARM_Cortex-M#Cortex-M3 - 2004.

https://en.wikipedia.org/wiki/Apple_M3 - 2023.

> Some might argue that Apple's usage of it makes more sense. M-series for Macs and they are just incrementing numerically.

By this logic if you name a project Y but I can argue my naming of a much newer project Y is "more logical", you should abandon Y?

Chronology matters :-)

>There are substantial differences in performance and efficiency between the CPU cores of M1 Pro and M3 Pro chips.

Yes, people saw Cinebench R23 results when the first M3 Mac review came out.

I’d be much more interested in testing of more real workloads.

99.99% of computing involves branch prediction, caching, frontend decoding capacity, memory bandwidth, and more. Usually the bottleneck.

Unless you just want to run highly artificial benchmarks, you’d always want a well-fed, high-efficiency processor that has a lower theoretical maximum, versus a severely bottlenecked, DRAM-waiting processor even if the latter has 2x faster ALU performance.

> These tests aren’t intended to be purposeful in any way, nor to represent anything that real-world code might run

Seems like a strange test then..

Can anyone speak to performance regarding programming?

My 2017 macbook pro is good enough for a lot of things (running java locally, node with nodemon), but slows down for anything native app (xcode) related and running a Docker container with >1GB memory. That's where I'd love to have some improvement

Any M1/M2/M3 Pro chip will blow your mind compared to any previous Intel MacBook Pro.

I regret waiting for M2 Pro and wasted so much time working on a slow 2017 MacBook Pro.

The battery in my 2017 work-supplied MBP exploded, and they replaced it with a 2019, which has even slower single core performance. In this economy we're not buying any new machines, just stockpiling old ones from layoffs as reserves. So I'll be stuck with Intel for the foreseeable future - assuming I have that sort of job security.
2019 was a low moment for macbooks. the 2019 (last intel macbook) I had was trash, overheated poor battery life, docker would lag it into oblivion, etc.
Unless you need x86 compatibility, the M-series machines will be much faster. Check out the old M1 reviews for comparisons to Intel machines. They've only gotten faster since then.

But Xcode's issues are Xcode, not the processor. It will still hang the main thread whenever it wants, just for a bit less time, and your Swift builds will be faster, even if it still doesn't scale linearly with core count.

I would say, its time for you to upgrade to Apple Silicon. Even the entry level 16GB Macbook Air M1 would beat vaporize the Intel in terms of performance.

It becomes an entirely different machine. It would not only run/compile your projects much faster, but also literally will have twice to thrice the battery life, and never ever makes noise or get hot. I would only recommend at least a 512GB storage though.

I used to passionately HATE using Macs pre-Apple Silicon era and work 24x7 with Linux at that time, but today I doubt if I will ever use anything other than a Macbook for all my needs. The only reason is Apple Silicon

Ya the M* Macbooks are a order of magnitude faster than the old intel boxes.

I really have to say after moving to a M3 Macbook from Intel jesus its smooth, and the battery feels like it never goes down.

What RAM did you get? I find it odd they are shipping them with 18GB these days lol
> Seems like a strange test then..

We already have popular benchmarks like Geekbench that include real world workloads borrowed from popular open source software.

For instance, Geekbench includes (among others) a subtest that compiles an open source Lua interpreter using Clang, and another that uses Google's PDFium to render PDF files.

https://www.geekbench.com/doc/geekbench6-benchmark-internals...

Those tests haven't been analyzed to break down the contribution of P vs E cores, how much of it comes from frequency and how much from IPC, power consumption and throttling performance, etc.
Some issues with this benchmarking:

1) The benchmarks are intentionally designed to not have any memory access or even L1 cache access. That’s about as far from real world performance as you can get.

2) They say the reason for avoiding real world benchmarking is to measure raw core performance. However, only a few CPU instructions are tested, so it’s not representative. The time it takes instructions to execute depends on the instruction, and even how different instructions proceed and follow each other, aa well as other factors. This approach alone would not produce the measurement being sought.

3) Even if results were useful and the methodology were valid, the conclusions at the end seem to state the obvious. M3 core is more efficient that the M1 core, etc.

I'm curious to see performance of Rosetta between the two - my understanding is that (at least for M1) the E cores did not support the alternative memory ordering mode for assisting in X86-64 compatibility.