top of page

Apple 重启一场硬件之争:回顾性逆向工程 Apple Neural Engine

9月13日
讀畢需時 13 分鐘

尽管旨在理解它的 Linux 驱动项目已停滞三年,Apple 的 M1 Neural Engine 再次受到审视。《回顾性逆向工程 Apple Neural Engine》阐释了这款加速器为何擅长早期神经网络,却难以应对当今的 transformer 工作负载。

前 Asahi Linux 贡献者 Eileen Yoon 在 Apple 调整硬件方向后,重返这项被搁置的工作。M5 在每个 GPU 核心中都加入了 Neural Accelerator,同时保留独立的 16 核 Neural Engine。这种组合挑战了这样一种设想:单一固定功能加速器应承担 Apple 日益扩大的生成式 AI 工作负载。

这不只是一次迟来的硬件拆解。该研究将为 2017 年卷积神经网络(CNN)做出的设计选择,与 Apple 对现代语言模型的应对联系起来。GPU 正在对独立 Neural Engine 形成压力,因为 transformer 依赖灵活调度和持续的内存数据移动。

一个沉寂的 M1 驱动项目,变成了硬件解剖报告

这项新工作将一个未完成的 Linux 驱动,变为对 Apple 最初预期机器学习会如何发展的说明。

Yoon 此前构建了一个可与 M1 芯片内 Neural Engine 通信的 Linux ANE driver。该项目包括内核模块、用户态库、测试和 Python 绑定。它提供了一条绕过 Apple 公开软件抽象层的途径,但并未让硬件具备广泛可编程性。

随后,该项目沉寂了三年。Yoon 写道,ANE 似乎过于专用,不值得继续投入驱动开发。开放其硬件接口,并不能改变其固定数据通路可以高效执行哪些操作。

这种区别很重要。传统驱动可以暴露硬件原本就具备的能力,却无法将专为特定用途设计的数据流加速器变成通用处理器。

因此,Yoon 的 架构回顾提出了一个与最初驱动工作不同的问题。它不再探讨 Linux 如何提交任务,而是考察计算阵列、调度器、内存系统和执行模型。这些组件揭示了 M1 设计中嵌入的工作负载假设。

研究描述了围绕中央本地内存块布置的 16 个计算核心。每个核心都包含并行乘加单元(MAC),负责将输入相乘,并将结果累加到累加器中。这些操作构成了卷积、矩阵乘法以及注意力机制中点积计算的基础。

MAC 单元本身并不能解释 Neural Engine 的专用性。CNN 和 transformer 都需要乘法和累加。决定性差异在于,权重和激活值如何到达这些单元、如何保持可用,以及如何在芯片内移动。

Apple 于 2017 年随 A11 Bionic 推出了首款 Neural Engine。当时,消费级神经网络主要围绕图像分类、人脸分析及其他密集型 CNN 工作负载展开。这些网络具有规则的张量形状和可预测的复用模式。

当 Apple 将自研处理器带到 Mac 时,M1 延续了这一设计脉络。其 Neural Engine 针对已编译模型进行了优化,模型的维度和数据移动模式在很大程度上可预先确定。这种专用化降低了受支持工作负载的延迟和能耗。

这篇回顾并未声称 M1 Neural Engine 无法执行 transformer 操作。它认为,周边数据流会使某些 transformer 模式效率低下,尤其是自回归解码。该过程一次生成一个 token,同时反复读取模型权重和不断增长的注意力缓存。

这种重新表述构成了文章的核心张力。Apple 通过围绕预期工作负载约束数据移动,构建了一台高效引擎。而现代 AI 改变主流工作负载的速度,快过了固定硬件架构适应变化的速度。

回顾性逆向工程 Apple Neural Engine 揭示了真正的约束

M1 Neural Engine 的决定性限制并非算力,而是数据必须围绕这些算术单元经过的路径。

逆向工程得到的驱动从不直接向硬件发送 CONVMATMULRELU 等高级命令。Apple 的编译器在执行开始前,便已将这些神经网络操作转换为任务描述符。

任务描述符是一种结构化的配置数据块。它对控制张量维度、内存地址、激活函数、依赖关系和数据传输的寄存器组进行编程。驱动将描述符置于内存中,让任务管理器指向它,并触发硬件“门铃”。

提交之后,Neural Engine 会控制任务直至完成。任务结束时,它会触发中断。在操作运行期间,主机处理器不会逐条指挥数学指令。

Yoon 的结论是,ANE 并不具备通常意义上的 CPU 或 GPU 指令集。其任务描述符配置的是领域专用数据通路,而不是提供任意程序。每个描述符代表该数据通路的一次执行。

任务首先加载配置寄存器。专用传输模块随后将权重和输入激活值从主内存移至相互独立的本地存储区。计算核心执行归约,后处理应用激活函数,另一个传输模块再将结果返回。

这一序列有利于具有可预测复用模式的操作。卷积可以将同一组紧凑的已学习滤波器应用于多个图像区域。加速器无需反复读取大量新权重,便能让其算术通道持续保持忙碌。

Transformer 解码改变了这种平衡。每个新 token 都可能需要流经模型参数中的相当大一部分。算术操作依然相似,但数据移动成为限制成本。

M1 的布局进一步加剧了这一问题,因为它将用于权重的内存与用于激活值分块的本地内存分开。Yoon 在设计中识别出约 1 MiB 的 kernel memory 和 2 MiB 的 tile memory。研究认为,该架构并非为高效地将本地产生的张量重新解释为权重而设计。

对于 Apple 在 2017 年瞄准的模型而言,这一假设是合理的。CNN 推理通常将已学习权重视为固定卷积核,并将激活值视为在层间流动的数据。Transformer 注意力机制模糊了这种界限,因为执行期间产生的值能够输入后续矩阵操作。

键值缓存说明了这一问题。该缓存存储先前 token 的表征,以便模型在生成期间复用。随着对话或文档变长,缓存内容不断增加,使高效内存访问变得愈发重要。

固定张量维度并非核心障碍。已编译任务可以遍历不断变化的缓存长度,任务提交开销也可以保持很低。更棘手的问题,是反复通过围绕 CNN 复用模式设计的路径供给数据。

这正是为何单纯的每秒运算次数指标并不足以进行全面比较。峰值算术吞吐量描述的是 MAC 阵列在有利条件下的运行速度,却无法揭示这些单元有多少时间在等待权重、激活值或中间结果。

独立研究从不同角度得出了相容的结论。2026 年的 Orion research paper 描述了通过私有接口为 ANE 编程时遇到的 20 项约束。其作者指出,编译、内存布局和数值行为是实际应用中的障碍。

Orion 仍报告了有意义的 transformer 结果。在 M4 Max 上,该系统针对拥有 1.24 亿参数的 GPT-2 实现了每秒超过 170 个 token 的生成速度。它还在 22 分钟内完成了对一个 1.1 亿参数模型的 1,000 步训练。

这些测量结果表明,ANE 可以运行语言模型工作负载。但它们并不能证明 ANE 是每个大型模型或每个推理阶段的最佳目标。技术可行性与架构适配性之间的区别仍然至关重要。

Apple 的公开软件让硬件保持一定距离

开发者可通过 Core ML 请求使用 Neural Engine,但 Apple 仍控制工作负载如何被编译、拆分和调度。

Apple 主要通过 Core ML——其用于部署机器学习模型的公开框架——开放 Neural Engine。开发者提供兼容模型,而框架决定各项操作应使用 CPU、GPU 还是 Neural Engine。

Apple 的 compute-unit controls 允许应用启用这些处理器的不同组合。开发者可以允许使用全部可用计算单元,也可以排除 GPU 或 Neural Engine。公开接口不支持直接编程 ANE 的任务描述符。

这一模式保护了 Apple 设备间的可移植性。应用可以描述其所需的预测任务,而无需编码某一代芯片的寄存器布局。Apple 可以修改编译器和调度策略,同时保持应用接口稳定。

代价是可见性。开发者无法依赖 Core ML 将每个受支持操作放置于特定引擎上。他们也无法以 GPU 计算 API 所提供的控制程度,检查最终的底层程序。

Apple 说明,Core ML execution 可使用 CPU、GPU 和 Neural Engine,同时降低内存消耗和功耗。这种方式适合希望高效进行端侧推理、又不需要硬件特定调优的应用。

但对于研究架构极限的研究人员而言,这并不那么令人满意。某项基准测试可能回退到另一处理器、将图拆分到多个处理器上,或遇到掩盖底层硬件行为的编译器变换。

逆向工程工作消除了其中一部分不确定性。它考察了 Core ML 之下的任务描述符、寄存器写入、队列、中断和内存路径。这种视角有助于区分软件施加的限制与硅片本身造成的约束。

不过,私有接口也带来了自身的不确定性。它们不具备 Apple 的公开兼容性保证,并可能随着操作系统更新而改变。今天可用的研究代码,在编译器、模型格式或运行时服务发生变化后可能会失效。

这种差距使 Apple 处于一个不同寻常的位置。该公司在手机、平板电脑、Mac 和头显设备中均配备专用机器学习硬件。然而,独立开发者对这些处理器内部最具特色的模块之一,控制能力却十分有限。

对于主流应用而言,这种限制可能是一项有意为之的产品选择。Apple 优化整台设备,并决定每项操作在哪里运行。大多数开发者从可预测部署中获得的好处,超过直接访问寄存器所带来的价值。

生成式 AI 开发者往往需要相反的能力。他们会试验量化格式、注意力内核、缓存布局和融合操作,也会比较快速变化的模型架构之间的性能。

GPU 能够容纳这种探索,因为其编程模型提供了更通用的计算能力。开发者无需等待专用编译器路径,便可实现新的内核。代价是必须为同步、内存访问和性能调优承担更多责任。

独立 Neural Engine 则处于这一光谱的另一端。当模型适配时,其编译器和固定数据通路能够实现高效执行。当工作负载发生变化时,专用化就会从优势变成限制。

Apple 的软件策略使开发者无法直接化解这种张力。Core ML 可以隐藏硬件差异,但无法让面向 CNN 的内存系统表现得像灵活的 GPU。逆向工程揭示了该框架通常会掩盖的边界。

M5 让 GPU 成为主要竞争者

Apple 的 M5 并未取消独立 Neural Engine,但它让 GPU 在公司的 AI 路线图中承担了更直接的角色。

Apple 于 2025 年 10 月发布 M5,其 10 核 GPU 的每个核心都包含一个 Neural Accelerator。该芯片也保留了经改进的 16 核 Neural Engine。这一设计在这场架构竞争的两端都部署了专用矩阵硬件。

根据 Apple 的 M5 芯片公告,新 GPU 的峰值 AI 计算性能超过 M4 GPU 的四倍。Apple 还将统一内存带宽提升至 153GB/s,比 M4 高出近 30%。

这些数据由 Apple 自行测得,实际应用性能仍取决于工作负载细节。不过,新加速器的位置比醒目的倍数更具启示性。Apple 将它们置于可编程 GPU 核心内部,而非完全依赖独立 Neural Engine。

GPU 将专用矩阵执行能力与已适应不断变化算法的环境结合在一起。Apple 表示,开发者可通过 Metal 4 中的张量 API 为 Neural Accelerators 编程。这为基于 GPU 的 AI 工作负载提供了公开路径,同时不暴露独立 ANE 的私有命令格式。

Yoon 将这一转变解读为独立 NPU,即神经处理单元,走向终结的开端。这种表述有意挑衅,而 Apple 的产品决策尚未证实其确实会被淘汰。

M5 仍包含独立 Neural Engine。Apple 称其速度更快,并将其与包括照片处理和空间 Persona 生成在内的系统功能关联起来。这些任务类似于专用加速器擅长处理的边界明确、可预测的推理工作负载。

更站得住脚的结论更为有限:Apple 现在将 GPU 视为高要求生成式 AI 工作负载的主要承载平台,而 Neural Engine 则继续在高效系统推理中发挥作用。

这种划分与逆向工程证据相符。GPU 可以将矩阵加速与灵活的内存操作、通用内核和开发者直接访问相结合。固定功能 NPU 则能为执行模式已知的稳定计算图尽量降低开销。

没有哪种设计能赢得所有工作负载。通用处理器需要耗费芯片面积和能耗来支持固定流水线无需具备的灵活性。专用引擎则会在模型要求新的数据移动模式时失去适应性。

M5 表明 Apple 希望两者兼得。其独立 Neural Engine 可支持成熟的设备端功能,而 GPU Neural Accelerators 则面向算子和内存行为仍在持续变化的模型。

这一混合策略也给 Apple 的软件栈带来压力。Core ML 必须在能力日益增强的处理器之间作出选择。Metal 必须给予开发者足够控制力,以利用新的 GPU 单元。编译器则必须避免在处理器之间频繁移动数据,以至于传输成本抵消加速收益。

因此,这种压力并不只是 Nvidia 对 Apple,或 macOS 对 Linux 的竞争。它更是 Apple 自家芯片内部,固定功能效率与可编程加速之间的较量。

这场较量早在生成式 AI 出现之前就已开始。Apple 的芯片早已将工作分配给 CPU、GPU、媒体引擎、图像处理器和安全硬件。如今的不同在于,AI 模型设计的变化速度使漫长的硬件规划周期尤其充满风险。

设计并验证一个专用模块可能需要数年。Transformer 架构、注意力机制变体和量化技术却可能在数月内发生变化。在 GPU 中嵌入更具适应性的加速能力,可降低押注错误的代价。

逆向工程并不能证明 Neural Engine 已经结束

这项回顾性研究解释了一种架构错配,但无法确立 Apple 未来的产品规划,也无法衡量每一种较新 ANE 实现。

最深入的发现聚焦于 M1 世代。此后 Apple 已推出多个处理器系列,内部细节可以在没有公开文档的情况下发生变化。对后续芯片的结论需要直接测量,而非视觉相似性或营销名称。

Yoon 承认,物理布局分析的部分内容仍存在不确定性。芯片裸片图像可以揭示主要内存模块和重复的计算结构,但无法解释每一个布线决策。一些结论仍属于有依据的解读。

这项调查还侧重于硬件结构,而非全面的应用基准测试。它展示了为何内存移动会限制某些工作负载,但并未在相同功耗限制下比较每一个模型在 ANE、GPU 和 CPU 上的表现。

Orion 提供了有价值的较新测量数据,但它使用私有 API 和研究软件。其 GPT-2 和 TinyStories 实验展示的是访问能力和功能,而不是当前大型语言模型已具备广泛生产就绪性。

另一个开放项目报告称,已通过逆向工程得到的私有接口实现直接训练。其 M4 测量结果显示,FP16 吞吐量约为每秒 18.6 万亿次运算,INT8 吞吐量约为每秒 35.1 万亿次运算。这些数据取决于选定的卷积配置,不应泛化至完整模型。

软件成熟度与硬件同样重要。高度优化的编译器可以重构计算图、融合操作并减少传输。研究驱动程序可能正确暴露引擎能力,却仍留下大量性能未被利用。

反向风险同样存在。峰值微基准测试可以在理想条件下让算术单元保持忙碌,却掩盖真实模型的瓶颈。端到端延迟、内存占用、能耗和编译时间决定加速器是否真正有助于应用。

Apple 也可能在保留产品名称的同时重新设计独立 Neural Engine。更大的共享内存、改进的数据路径或新的任务格式,都可能解决 M1 中发现的局限。M5 公告并未披露这一层级的细节。

安全性也是实施受控访问的另一个原因。Apple 在受保护的生物识别工作流程中使用 Neural Engine 硬件。其平台安全文档描述了较新系统上 Neural Engine 安全运行的状态重置和内存控制措施。

这一角色并不要求向任意 Linux 工作负载开放同一硬件。它也意味着,该模块的持续存在可能反映了消费者语言模型之外的系统架构需求。

能效仍是另一个缺失的比较维度。自回归解码或许更自然地适合运行在可编程 GPU 硬件上,但专用引擎在视觉、音频和分类任务中仍可能表现更优。Apple 销售的是电池供电设备,而这些节能效果至关重要。

因此,可信的说法并不是 Neural Engine 已经消亡,而是其最初的设计假设已无法覆盖所有具有战略重要性的 AI 工作负载。

这种区分让 Retrospectively Reverse-Engineering Apple's Neural Engine 立足于证据。该项目阐明了一处分岔的架构路径,而 Apple 的产品发布将决定公司沿任一方向走多远。

三个信号将揭示哪种架构胜出

Apple 接下来的 API、基准测试和芯片布局将揭示,M1 Neural Engine 是一种持久模板,还是一条专用分支。

第一个信号是开发者对 M5 GPU Neural Accelerators 的访问能力。Metal 4 需要公开有用的张量操作,同时不能隐藏过多调度细节,以免研究人员面对另一个黑箱。

可用的工具将强化这样一种判断:Apple 已选择可编程 GPU 加速来应对快速变化的模型。受限的 API 或狭窄的算子支持则会削弱这一解读,并保留由 Core ML 管理硬件的更大角色。

第二个信号是代表性 Transformer 工作负载的端到端性能。有价值的比较必须涵盖提示处理、Token 生成、长上下文内存行为、能耗和模型加载时间。

仅靠微基准测试无法解决这一问题。处理器可能在矩阵吞吐量上领先,却在权重传输、缓存移动或计算图编译上耗费时间。测量还应识别每项操作由哪个计算单元执行。

M5 应用的结果将尤为重要。本地语言模型和扩散软件可在 Apple 明确强调的工作负载下测试新 GPU 加速器。持续的性能提升将验证向可编程核心内部加速转移的路线。

第三个信号是 Apple 下一代独立 Neural Engine 的架构。Apple 可以保留 16 核这一标签,同时改变其底层的内存容量、互连方式、调度机制和支持精度。

重新设计的本地内存系统将挑战独立模块正走向终结的观点。若改动极少、同时持续加大 GPU 投资,则会支持 Yoon 的解读。

Linux 的进展提供了次要的验证路径。Asahi 社区在通过洁净室观察和实验记录 Apple silicon 方面拥有丰富经验。其逆向工程工作已为其他缺乏文档的模块产出了开放驱动程序。

可用的 ANE 驱动程序将让研究人员能够比较 Core ML 的选择与直接任务提交。它还可以揭示替代编译器是否能挖掘 Apple 公开框架无法利用的性能。

不过,Linux 支持不应被误认为主要的商业结果。驱动程序之所以重要,是因为它将隐藏的硬件行为转化为可测试的证据。Apple 自己的设备、框架和工作负载将决定该架构的未来。

开发者应关注 Apple 将新的公开可编程能力部署在何处。他们也应将理论吞吐量与完整应用性能区分开来。拥有最大宣传数字的处理器,未必就是最高效移动模型数据的处理器。

开展类似技术调查的团队需要保留实验、寄存器发现、基准测试和被否决假设的长期记录。一个可搜索的工程知识库可在工具和芯片世代变化时,让这些证据保持关联。

Retrospectively Reverse-Engineering Apple's Neural Engine 最终捕捉到了一个罕见时刻:旧芯片解释了新战略。M1 展示了将 CNN 假设固化到硬件中的收益与代价。M5 则显示,Apple 在未立即放弃专用化的情况下加入了灵活性。

下一个问题很具体:未来的 Apple 芯片会扩展可编程 GPU 加速,同时让 Neural Engine 负责稳定的系统任务,还是会为 Transformer 重建独立模块?请关注 API 和内存行为,而不只是 TOPS 数字。

 
 

免费开始使用

一款本地优先的AI助手

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)M-Chip Mac

你的 AI 工作伙伴

remio 一起高效工作

规划、创作、交付

一站式完成

bottom of page