曾主导 Asahi Linux 图形与芯片逆向工程的开发者 Eileen Yoon 发布了一份详尽的技术报告,对苹果五年前随 M1 芯片推出的神经网络引擎(ANE)完成微架构级逆向拆解。报告给出了一个颇具争议的定调:为卷积神经网络(CNN)高度特化的独立 NPU 已经走到生命周期的死胡同。

这一判断切中了当前端侧计算硬件的核心冲突。然而,逆向报告关于独立 NPU 已被苹果放弃的推论与事实存在明显偏差:苹果在 2025 年 10 月 15 日发布的基准 M5 芯片中,不仅没有剔除独立的 16 核 Neural Engine,反而在 10 核 GPU 的每个着色器内各嵌入了一个神经加速器。这并非单一单元的生与死,而是芯片架构师在面对生成式大语言模型(LLM)时,对固定数据流硬件做出的妥协与路线重组。

逆向解剖 M1 ANE:为卷积定制的计算孤岛

M1 内部的 ANE 是一块极端自信的专用硬件。从微架构切面来看,整个模块由 16 个计算核心组成,每核心配备 128 个 FP16 或 256 个 INT8 乘加通道,整芯片汇聚了 2048 个并行 FP16 MAC 通道,提供约 11 TOP/s 的半精度峰值算力。其内部数据流完全围绕点积与局部累加展开,累加器采用 32 位定点数(Q16.16 格式),在 32768 硬饱和截断 后以 FP16 读出,tanh 等非线性激活单元则直接由 33 项分段线性查找表硬件逼近。

这套计算逻辑完全没有暴露传统的 CPU 或 GPU 指令集。操作系统驱动层从来不向 ANE 下发 CONV 或 MATMUL 汇编指令,驱动程序做的事极为单调:通过私有 Core ML 编译器将神经网络静态序列化为一条由任务描述符(Task Descriptors)构成的固定指令流,通过寄存器写入配置并敲响门铃,由硬件 DMA 引擎自主拉取执行。

M1 ANE 静态微架构与任务流水线 驱动前端 无通用暴露 ISA Core ML 离线编译 任务描述符 (TD) ControlDMA 写入 串行排队敲门铃 专用存储层级 64 KiB × 16 权重内存 共 1 MiB KMem 切片 2 MiB L2 共享激活内存 KernelDMA 与 TileDMA 无法充分重叠带宽 (串行) 计算执行核心 16 个专用计算核 2048 个 FP16 通道 Q16.16 定点累加器 32768 硬饱和截断 33 项 LUT 非线性激活

在封闭的 macOS 系统里,这套硬件对静态管线表现出色。开源驱动项目 eiln/ane 证实,在 Linux 下成功调用 ANE 后,语音识别模型 Whisper 的编码器延迟能从 CPU 处理的 631 毫秒缩减到 118 毫秒。

但代价是严苛的生态锁死。模型必须在 macOS 下调用闭源 Core ML 工具链生成不可读的任务切片,一旦遇到因果掩码这类无法被静态图表达的动态操作,ANE 就完全无法运转,只能退化由 CPU 兜底接盘。

算术强度拐点:162 OP/byte 的物理窒息

苹果在 2017 年 A11 芯片中首次押注 ANE 时,行业的主导模型是 ResNet 等密集卷积网络。这类模型的算子具备极高的时间与空间局部性,权重被搬上芯片后可以在几千个像素滑动窗口里反复计算,掩盖数据搬运开销。

但大语言模型的自回归解码阶段(Decode)摧毁了这个前提。逐 Token 生成文本时,模型每吐出一个字,硬件就需要将几十亿参数的庞大矩阵从主内存完整读取一遍,数学上的单次算术强度极低。

专用数据流加速器不是算力不够,而是其赖以生存的高复用假设,在自回归模型面前碎成齑粉。

计算结构暴露出两套残酷的物理极限:

  • 极高的算术强度门槛.M1 的 ANE 拥有 11 TOP/s 算力,而芯片统一内存带宽仅约 68 GB/s,算术强度拐点(Ridge point)高达 162 OP/byte。硬件想要跑满算力,每个字节至少要被反复复用 162 次。
  • 缺失复用时的带宽黑洞.在单 Token 生成阶段,如果缺乏片上数据复用而强行流式读取 FP16 操作数,跑满这套算力理论上需要 22 TB/s 内存带宽
  • 严重的片上存储错配.M1 ANE 仅配备每核心 64 KiB 的专用权重内存(KMem,共 1 MiB)以及 2 MiB 的共享 L2 激活切片内存,实测中负责搬运权重的 KernelDMA 与搬运张量的 TileDMA 还是串行化推进,在大参数吞吐面前瞬间陷入停滞。

M5 芯片的双轨布局:提速 4 倍背后的带宽现实

针对端侧大模型的架构演变,业界一度产生误读,认为苹果在 M5 上干脆抹杀独立 NPU、将其完全揉进图形管线。

真实情况更接近一种务实的妥协并存。2025 年末的 M5 芯片保留了原有的 16 核独立 Neural Engine,专门承担息屏语音监听、图像抠图与系统后台轻量常驻任务。与此同时,苹果在 10 核 GPU 的每一个着色器核心中,各塞入一个专用的矩阵乘法神经加速器,并配套推出底层图形接口 Metal 4 TensorOps,使开发者能够用统一的张量指令直接操作 GPU 的计算阵列。

Apple M5 运行 MLX 大模型实测性能增幅对照 Prompt 预填充阶段 (首字延迟 TTFT) 提升 3.3× ~ 4.1× 自回归解码阶段 (后续吐字速度 Decode) 提升 19% ~ 27% (约 25%) 物理硬件基础:统一内存总带宽对比 153 GB/s (M5) 对比 120 GB/s (M4),增幅约 27.5%

这套架构转变在实际运行大模型时呈现出极端的分化。苹果官方使用 MLX 框架测试 Qwen3(覆盖 1.7B 至 30B 参数)以及开源 GPT-OSS 20B 时,M5 相比上一代 M4 的首字响应时间(TTFT/Prefill)提升了 3.3 倍至 4.1 倍。因为在分析长上下文的阶段,计算强度足够高,GPU 内嵌矩阵单元可以把算力优势榨取殆尽。

然而,一旦进入逐字吐出的自回归解码阶段,性能神话立刻回落。M5 的解码吐字速度只比 M4 提高了 19% 至 27%,在开发者统计中均值约为 25%。这个数字与芯片硬件物理指标的提升严丝合缝:基准 M5 的统一内存带宽从 M4 的 120 GB/s 提升到 153 GB/s,增幅刚好是 27.5%。

  • 风险.端侧本地大模型的体验短板从来不是矩阵算力,而是 DRAM 读取速率;只要芯片不跨越式拔高内存总线宽度,任何算力翻倍的宣传都无法让本地 30B 模型的长文本解码产生质的飞跃。

从 Asahi Linux 逆向社区放弃 ANE 驱动维护,到苹果将主算力阵地转向 GPU 矩阵单元,芯片工业为 AI 搭建的专用迷宫正被现实纠偏。针对固定模式设计的封闭 ASIC 或许能赢得特定能效指标,但在快速演进的算法与物理内存墙的夹击下,具备可编程灵活性与高带宽支撑的通用张量核心,终究成为了端侧大模型计算更坚固的底座。