586: Do a Barrel Roll!
https://atp.fm/586

Good morning! We have a huge show ahead of us, and it's all about iPad. This is the biggest show about iPad since its introduction. But first…

Accidental Tech Podcast: 586: Do a Barrel Roll!

Three nerds discussing tech, Apple, programming, and loosely related matters.

@atpfm The “ML” CPU extensions were AMX (“Apple Matrix Extensions”, I assume), starting with the M1. They’re basically custom matrix instructions, as kind of an extension of NEON. They were never officially documented and I wouldn’t be surprised if Apple rejects any apps (for their App Stores) which use them directly. AFAIK officially the only way to use them is through Apple frameworks.

https://github.com/corsix/amx%E2%80%A6 (1/3)

I suspect the M4 adopts Arm’s official version of this, SME if not also SME2, which are kind of extensions of the SVE2 SIMD capabilities. Which also means the M4 supports SVE2, a first (I think) for Apple’s CPUs. Those two or three combined will provide some *big* boosts to some workloads - assuming Apple implements all the good bits (it’s optionals all the way down these days, with Arm’s ISAs).

https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/scalable-matrix-extension-armv9-a-architecture%E2%80%A6 (2/3)

That also implies that the M4 is Apple’s first ARMv9 CPU (SME is ARMv9 only). ARMv9 is a relatively insignificant upgrade on ARMv8, compared to what ARMv8 was over ARMv7. Most stuff in ARMv9 is optional and available for ARMv8 too. Still, It’ll be interesting to see what other new ARM ISA extensions the M4 supports (e.g. TME, Transactional Memory Extensions, could be a big perf boon for many serious apps). (3/3)