How fast is the Apple M1?
Programming
The c code I ran my PhD thesis on still compiles and runs, three decades later. I've tried it on a number of computers, operating systems and c compilers and it always works.
That makes it a nice benchmark for new computers.
My main computer is a year old MacBookPro 16 with its fastest processor, and my travel laptop is a two-year-old MacBookAir. I just got the new ARM-based MacBookAir M1. Every review I've seen says it is blazingly fast, so I tried it on my old c code, and here is what happened.
I also tried to compile latex slides, always a slow process. These are the slides I tried.
And R.
In the below, Rosetta means the intel emulation on the M1.
c code
Machine | Processor | Speed |
---|---|---|
MacBookAir | Intel i5-8210Y CPU @ 1.60GHz | 6.98 seconds |
MacBookPro | Intel i9-9980HK CPU @ 2.40GHz | 5.86 seconds |
MacBookAir M1 rosetta | Apple M1 | 7.14 seconds |
MacBookAir M1 native | Apple M1 | 5.42 seconds |
For the M1, I tried both the Intel compiled code, run under the Rosetta translation, and a native compilation.
So, the M1 under Rosetta is much slower than its Intel predecessor, but the native M1 code handsomely beats the three times more expensive MacBookPro.
Impressive.
Latex
Machine | Processor | Speed |
---|---|---|
MacBookAir | Intel i5-8210Y CPU @ 1.60GHz | 49.20 seconds |
MacBookPro | Intel i9-9980HK CPU @ 2.40GHz | 31.00 seconds |
MacBookAir M1 rosetta | Apple M1 | 26.86 seconds |
Latex does not have a native M1 release.
Wow.
I did not expect that. The MacBook air running Intel compiled latex distribution beats the fastest and most expensive MacBookPro.
R
I finally tried a small R application, a GARCH optimization similar to what I did here.
and...
Machine | Processor | Speed |
---|---|---|
MacBookAir | Intel i5-8210Y CPU @ 1.60GHz | 0.434 seconds |
MacBookPro | Intel i9-9980HK CPU @ 2.40GHz | 0.333 seconds |
MacBookAir M1 rosetta | Apple M1 | 0.462 seconds |
MacBookAir M1 native | Apple M1 | 0.216 seconds |
{: .table } |
What!
The native M1 is running R Under development (unstable) (2021-02-06 r79953)
If I had seen this anywhere else, I would not have believed it. The M1 is a third faster than the intel MacBookPro.
Merits more investigation, and consistent with the c results. I am so far impressed!
One caveat, this M1 version of R is unstable, and most packages I tried don't work yet.
Summary
There should be no surprises in these results, they correspond with what other people have found. But the sceptic that I am, I had to see for myself. I did not expect the ARM to be a third faster than the top of the line Intel.
Once lockdown is over, I will compare it to the brand new and fastest single core Intel Mac on the market, now sitting unused in my office, (a 3.6GHz 10-core 10th-generation Intel Core i9 processor). I'd be curious to see if it beats the MacBookAir M1 on single core apps.
There are caveats. My test is only on a single core. It is only testing raw CPU speed in numerical calculations. And then, the numerical calculations I am doing. The latex is heavily dependent on disk speed, and R is specific to what I do. In other applications it will look different.
The Intel MacBookAir looks better than it deserves. It is a slow machine, very slow, and just unpleasant to use.
I am looking forward to native M1 versions my main applications. R is here now, but only in beta. Latex is not. Python sort of, but yet missing packages I need, like scipi. Latex and Julia not yet.
p.s.
My job market paper with the application I am running the c code from is:
Danielsson, Jon, 1994, “Stochastic Volatility in Asset Prices: Estimation with Simulated Maximum Likelihood”, Journal of Econometrics.
And the algorithm I developed in my thesis with my PhD advisor for fast integration of latent variables from the stochastic volatility model was published as
Danielsson, Jon and Jean-François Richard (1993) “Accelerated Gaussian Importance Sampler with Application to Dynamic Latent Variable Models," Journal of Applied Econometrics.