π€ AI Summary
This work addresses the longstanding opacity of Appleβs Neural Engine (ANE), a black-box hardware accelerator, by systematically reverse-engineering its microarchitecture and software stack across generations. Through a combination of static disassembly, dynamic performance profiling, roofline modeling, and protocol-level analysis, the study unveils the ANEβs compilation pipeline, scheduling mechanisms, weight compression strategies, and low-level driver interfaces in A11βA18 and M1βM5 chips. It presents the first public disclosure of cross-generational architectural details and performance ceilings, establishes a rigorous comparative framework, and identifies previously undocumented user-space pathways for direct hardware access. The resulting multi-generational ANE feature matrix quantifies throughput and energy efficiency upper bounds, clearly differentiating empirically measured, analytically derived, and projected results to provide a reliable foundation for future research.
π Abstract
The Apple Neural Engine (ANE) is the fixed-function matrix accelerator that has shipped in Apple systems-on-chip since the A11-class iPhone and iPad chips and the M1-class Mac chips, exposed to applications only through the Core ML model framework. This guide reports a reverse-engineered account of the engine, based on direct measurement on Apple silicon and static analysis of the private runtime, compiler, kernel driver, and firmware. It documents the datapath and the roofline that bound the engine's throughput and energy, the dispatch route that reaches it below Core ML, the compiler and on-disk program format, the weight-compression scheme, and the kernel driver, firmware, and command protocol beneath them. The account covers the A11 through A18 and M1 through M5 families, with per-chip target tables and an operation-by-device matrix; the direct measurements are on the M1 and M5. Claims are labeled as measured, decompile-derived, or predicted, and the methodology and open questions are recorded. The direct route is callable from ordinary user space but remains undocumented, unsupported, and version-fragile; it is intended for measurement, research, and on-device work, not for shipping software, where Core ML remains the supported path.