Albert Vilella Profile picture
Next-Generation Sequencing, Single-Cell and Spatial Biology, Next-Generation Proteomics, Synthetic Biology, Compute Acceleration in Bioinformatics.

Sep 6, 2022, 10 tweets

Chris Seymour at $ONT.L Oxford @nanopore tweets about Apple Silicon's AMX instruction set. A mysterious set of instructions now beginning to be mapped out by a group of volunteer developers. So what does Apple Silicon mean for #Bioinformatics?

As many will know, $AAPL Apple came up with their own silicon a few years ago, a branch off the @ARM 64-bit designs, of which they've been diverging ever since. The Apple M1 and M2 cores have been thoroughly reviewed in social media, but less from the optics of #Bioinformatics.

First of all, what reason did @Apple have to design their own silicon? Could they not just have adopted an @ARM design and stick to it? Well, the history of the company is full of examples of Apple wanting to do "their own thing" rather than integrating someone else's silicon...

... in their own products. But this new endeavour of the Apple Silicon line of products is the boldest mode for Apple as a company: have their own silicon designs, book large chunks of TSMCs fab capacity to produce them, integrate the silicon tightly with their own software ...

... stack to fully optimize hardware and software together. And this software stack is what developers will use to compile their software against, including #Bioinformatics software developers.

The basic components of an Apple Silicon M1/M2 chip are (1) the standard ARMv8 capabilities, including the #SIMD #NEON vector instructions, plus (2) Apple's undocumented AMX instructions, then (3) The Neural Engine called ANE or NPU, and (4) The GPU (Metal Compute Shaders).

Because Apple cares about their own software stack, which Apple employees develop themselves, most of the blueprints on how to access the silicon are not well documented, or not at all in the public domain. That's the case for Apple's AMX1/AMX2 instructions.

So developers out there, including #Bioinformatics developers can decide to do this heavy lifting themselves either by (a) adopting the libraries that Apple themselves supports, or (b) use something like Rosetta2 or (c) wait for the OSS community to reverse engineer ...

... the instructions sets, implement them over the OSS software stack (Linux, LLVM, etc.) and bring the available OSS software stack to parity for Apple Silicon compared to where it currently is. Each approach has its pros and cons.

The Rosetta2 approach is the easiest, but also the least performant. Whereas relying on Apple's software stack can get tricky if there are unsupported layers, it can bring a performance boost compared to the Rosetta2 approach, e.g. in #Bioinformatics software.

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling