Ingeniería inversa de la arquitectura interna del Neural Engine de Apple

Fuentes: Retrospective Reverse-Engineering of Apple's Neural Engine Architecture

El Neural Engine (ANE) de Apple, introducido en el A11 Bionic en 2017, fue diseñado originalmente para acelerar cargas de trabajo de redes neuronales convolucionales (CNN) mediante un flujo de datos optimizado para reutilizaciones predecibles. Sin embargo, el auge de los modelos de transformers, especialmente en la decodificación autorregenerativa, rompió estas suposiciones de diseño. Con el lanzamiento del chip M5 en 2025, Apple integró los núcleos del ANE dentro de la GPU, marcando el probable fin del NPU independiente. Este análisis técnico retrospectivo detalla la arquitectura interna del ANE en el chip M1, mapeando su unidad de cómputo, ruta de datos, programador y modelo de ejecución. El ANE M1 cuenta con 16 núcleos de cómputo paralelos, cada uno con 128 carriles de multiplicación-acumulación (MAC) en FP16 o 256 en INT8. Cada carril MAC realiza una reducción escalar en el tiempo, permitiendo 2048 reducciones paraleles por ciclo. La unidad de cómputo no codifica capas CNN específicas; en cambio, la operación surge de cómo se mapean y programan los operandos. La ruta de datos incluye un multiplicador, un sumador y un registro acumulador de 32 bits que mantiene la suma parcial localmente para evitar accesos a memoria externa. La activación no lineal, como tanh, se implementa mediante una tabla de búsqueda (LUT) de 33 entradas de FP16, mientras que ReLU opera sin tabla. El escalado y sesgo se pliegan en la convolución durante la compilación. Este diseño revela las suposiciones de Apple sobre las cargas de trabajo de ML en 2017 y la transición hacia GPUs para transformers.