StrongintheARM processors are the future! The M1 MacBook Pro quick review

In Terry Pratchett’s Hogfather, the Unseen University builds an analytical machine called Hex. Somewhere within Hex is an ant farm with a sticker on the side which says: “Anthill Inside” – an obvious joke to Intel’s old marketing campaign. Maybe Burleigh & Stronginthearm, dwarf crossbow makers to the nobility, might change direction and start making their own analytical machines and cut out all that magic crap that the wizards always muck around with.

In the real world, Apple is transitioning their Mac laptops and desktops away from the Intel/AMD x86_64 architecture to ARM64 after staying with Intel for 15 years. Prior to this, Apple was using IBM’s PowerPC processors – but IBM wasn’t able to take the PowerPC architecture any further on a performance per watt basis which meant that Apple was forced to look elsewhere.

We’ve reached a similar road – Intel hasn’t had it easy of late and with a variety of vulnerabilities and chip manufacturing issues which hasn’t seen much progress with shrinking their processor dies to the kind of level that is now possible with Apple’s chip design. With the huge success of the Apple-designed A-series processors used in the iPhone and iPad lines, it made sense to move the Mac to the same ARM64 architecture – using a System-On-a-Chip process to integrate the many different functions into a single package.

With the release of the M1, Apple is able to provide computers with longer and better battery life, better performance and provide cross-code compatibility with iPad and iOS applications. Intel Macs will eventually become a thing of the past. The future is ARM64.

Given that we’re still in lockdown, I’ve decided to claim back some tax from the HMRC to purchase computer equipment that will aid me in my duties at work. Last year that was a monitor and a new keyboard – this year it’s going to be an M1 MacBook Pro (for when we get back on the road again) and an M1 Mac Mini (for the home desktop). One of the major advantages of the new M1 processor is that the cost of these machines are at their lowest in years.

I’ve taken delivery of the 13″ M1 MacBook Pro yesterday – built with 8Gb RAM and 512Gb SSD. I factored that I won’t be using it heavily once I have the Mac Mini and it’ll just be used when I travel/go to work and need to test ARM64 specific stuff, or use it for on-call. The M1 Mac Mini will be specced out with 16Gb RAM and either 1Tb or 2Tb of storage – I’m still trying to decide, given there is a £400 difference.

Fish and Apple M1 Chip

The first thing to mention is that 8Gb RAM will result in a fair amount of page swapping if you’re using apps like Chrome (which is now Apple Silicon native), Evernote (still only Intel native at this time), and a few other things. But thanks to the speedy 512Gb SSD, any slowdown resulting from memory being dumped to and from disk isn’t too noticeable. On the other hand, the SSD will write many pages out to disk.

Coming from my 16″ MacBook Pro with Intel Core i9 processor and 32Gb RAM and 4Tb SSD, seeing page swaps is somewhat of a novelty. That said, even with swapping, the SSD in this unit should still outlast the actual unit itself, so I’m not unduly worried. Nevertheless, my suggestion for anybody considering buying one of these M1 units regardless of whether you choose the MacBook Air, Pro, or Mac Mini – go for 16Gb RAM if you can. I bought my MacBook Pro via Amazon, but alas, they don’t stock the 16Gb models.

You may find 8Gb RAM a bit limiting…

But is the M1 SoC as magical as they say it is? Yes – kind of. Overall performance, even with 8Gb RAM, is snappy. Applications open quickly and Chrome’s Javascript performance feels much, much more snappy than its Intel counterpart.

One of the most “magical” elements is Rosetta 2 – the translation layer that converts Intel x86_64 code to ARM64. It Just Works(tm) – at least 100% of the time for me. There is no truly noticeable performance hit – Spotify, Evernote and countless many other Mac apps that haven’t transitioned to Universal or Apple Silicon binaries run just fine. This is a far cry from the original Rosetta which ran PowerPC code on Intel. Boy, was THAT slow.

One of the biggest hurdles that I encountered wasn’t M1 related, but rather Big Sur – on the Intel MacBook Pro, Big Sur had trouble reading and adjusting the external display settings – often necessitating a plug/unplug job. This is when using USB-C (presumably DisplayPort over USB-C). With the M1 MacBook Pro, the problem was far worse. It recognised the BenQ display as being 5K (it can just about handle 4K) and got the resolution and refresh rate wrong regardless of whatever I did. It was only when I discovered I could press the Option key when clicking Scaled in System Preferences -> Display that I could see away of adjusting the display’s resolution AND refresh – yet using “low resolution” mode?

Big Sur’s USB-C/DisplayPort drivers are dodgy as hell on M1 – and just a PITA on Intel

I got fed up and decided to switch to HDMI instead – and that Just Worked(tm). I now have the right resolution and at the right refresh rate (144Hz) rather than a faux resolution 2560×1440 at 30Hz. Apple needs to do some serious work on its USB-C/DisplayPort display drivers.

FWIW, I just bought this wonderful Anker 8-in-1 dongle for all my dongle needs, given that the MacBook Pro only has two external ports. Comes with a nice carrying pouch too.

What’s really remarkable about the 13″ M1 MacBook Pro is that it is silent. Completely and totally silent. My 16″ MacBook Pro often sounds as if it’s about to take off. And the M1 MacBook Pro is cool to the touch regardless of whatever task I can throw at it. I could fry an egg on the 16″ model.

In terms of work, I’m pleased to say that the free version of the Forticlient VPN software (6.4.3) works with M1 Macs and Big Sur, even if it uses Rosetta 2 because it’s an Intel binary. In terms of anti-virus/anti-malware, I’m sitting tight until Sophos has something – while I suspect Sophos Home Premium should work (more or less) right now, I’d really like to see a native binary release ASAP.

And continuing with the work theme, I’ve got the Parallels Technical Preview running a Debian 10 for ARM VM – everything works just fine. So simple. Fast. No fuss whatsoever. I’m not going to try and run Windows for ARM on this machine – though I might give it a go when I get the Mac Mini.

VM running on Parallels for Intel Mac (note the bugs line – goodbye Spectre!):

[email protected] ~ % uname -a
Darwin Martyns-MBP.lan 20.3.0 Darwin Kernel Version 20.3.0: Thu Jan 21 00:07:06 PST 2021; root:xnu-7195.81.3~1/RELEASE_X86_64 x86_64

LINUX VM:
[email protected]:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 158
model name      : Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
stepping        : 13
cpu MHz         : 2304.000
cache size      : 16384 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 22
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec dtherm arat pln pts
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds
bogomips        : 4608.00
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
[email protected] ~ % uname -a
Darwin Martyns-M1-MBP.lan 20.3.0 Darwin Kernel Version 20.3.0: Thu Jan 21 00:06:51 PST 2021; root:xnu-7195.81.3~1/RELEASE_ARM64_T8101 arm64

LINUX VM (2 virtual CPUs):
[email protected]:~/Projects$ cat /proc/cpuinfo
processor       : 0
BogoMIPS        : 48.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0x000
CPU revision    : 0

processor       : 1
BogoMIPS        : 48.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0x000
CPU revision    : 0

Overall I am very impressed with Apple’s first Apple Silicon Mac. It’s a little rough around the edges here and there, and we need to see more developers roll out Universal or native binaries, but otherwise this a laptop I can wholly recommend if you’re not going to be pushing it too hard. I still say that we need to see a bigger push towards 16Gb RAM models and add 32Gb RAM to the line-up – especially for developers.