The new Apple M1 processor has gotten excellent reviews for speed. Getting curious, I measured its speed on pure c code, latex and R and compared it to its most recent Intel competitors.

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

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.