3 ms·
I think this is a thorough and interesting set of results. Others have commented on the spec differences (2x ram, 2x cores, whatever x power envelope), but I’m
by olliej 4y ago
I think this is a thorough and interesting set of results. Others have commented on the spec differences (2x ram, 2x cores, whatever x power envelope), but I’m not as bothered by them despite being generally pro-Mac :)
I don’t think 2x ram matters in many (any?) of these, as for that to impact things you really do have to be using all the ram, and once you started doing that I would expect to see noticeable cratering in perf.
2x core count is more problematic, esp. for things that do max out threads, but many of these benchmarks clearly didn’t (or the M2 is insanely fast in specific tests :) ). Many of those benchmarks that do use thread count == core count allow you to cap the thread count independently which I would hope was done if possible.
Power envelope I just don’t really care about, if thermals force the laptop to throttle that doesn’t mean the performance numbers don’t match reality. I did go into this knowing it’s a desktop va laptop benchmark and know there will be trade offs involved.
I think it’s also worth doing a performance per dollar comparison here as well, though I have no idea what the result would be in this case.
So the hardware stuff out of the way, a few of the benchmarks showed such a massive performance delta (in both directions) that I wonder if we’re seeing code/codegen differences.
The reality is that the M2 is an arm system, and most projects have only ever really had x86 to worry about for performance, so they have “if x86 do vector stuff; else do it old skool one at a time”, which can have massive perf impact.
In the reverse I’ve seen code that goes arm==float32 x86==float64, which has obvious perf impact.
Anther huge killer is anything that uses long double. For everything other than x86 long double basically means float32 or float64. On x86 (everywhere I think except win64?) long double is float80, which is much much slower than the alternatives for far to many reasons to list. So that seems like it could easily footgun code that’s being benchmarked as well.
All in all I thought this was a good article and it was an interesting read.