← 最新论文
💻 计算机科学

Apple Neural Engine: Architecture, Programming, and Performance

本文通过对苹果神经网络引擎(ANE)跨多个芯片世代的全面逆向工程,详细阐述了其架构、软件栈及性能特征,并利用直接的用户空间访问与反编译技术,在缺乏官方文档的情况下,为设备端研究提供了基础性的资源。

原作者: Spencer H. Bryngelson

发布于 2026-10-16
📖 1 分钟阅读☕ 轻松阅读

原作者: Spencer H. Bryngelson

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在现代世界中,我们的智能手机和电脑充满了旨在快速解决特定问题的专业化工具。虽然中央处理器处理通用任务,图形处理器渲染图像,但第三个通常隐藏着的组件已成为直接在设备上运行人工智能所必需的。这个组件是一个专门设计的引擎,旨在执行大量的简单数学计算,特别是数字的乘法和加法,而这正是识别照片中的人脸或处理语音命令的核心工作。多年来,这个引擎一直是一个黑匣子;虽然软件开发人员可以要求计算机使用它,但他们无法了解它的工作原理、它实际能做什么,也无法在不通过复杂的中间层的情况下直接与其对话。

一位研究人员现在打开了这个黑匣子。通过仔细检查运行在苹果设备上的软件并测量其硬件本身,他们绘制出了整个系统的图谱,从物理硅芯片到驱动它们的无形指令。他们的工作揭示了,这个引擎不是一个通用的计算机,而是一台高度专业化的机器,旨在以极高的速度和极低的功耗处理特定类型的数学运算。他们发现,虽然该引擎在某些任务上速度惊人,但它在计算能力和处理数字的方式上有着严格的限制。这种理解使开发人员能够构建运行更快、更省电的应用程序,但也表明该引擎并非解决所有问题的万能方案;它是一个具有特定职责的精密工具,正确使用它需要理解其独特的规则。

研究人员首先绕过了通常向用户隐藏该引擎的标准软件层。他们没有询问高层应用程序来决定在哪里运行任务,而是找到了一个直接通往引擎本身的路径,从而能够以完全的控制力发送命令并测量结果。他们将该引擎视为一台独立的机器,它接收一组指令,执行它们,然后在完成后发出信号。他们发现,该引擎并不像标准计算机那样逐条处理指令;相反,它执行的是在工作开始前就已经预先规划好的数据移动和计算序列。这意味着引擎在处理数据的过程中无法根据数据做出决策;路径必须提前布置好。

关于该引擎如何处理数字,其中一个最重要的发现是:它使用一种称为“半精度”的格式进行计算,这种格式存储一个数字所需的位数比大多数计算机使用的标准格式更少。这种选择允许引擎移动数据的速度更快且消耗更少的能量,但这也带来了精度方面的权衡。研究人员发现,该引擎通过使用一个非常宽的内部寄存器来保存计算的累加值来补偿这一点。这个宽寄存器就像一个安全网,确保即使在单个步骤使用较小的数字时,最终结果也能保持准确。然而,这个系统存在一个临界点。如果一项计算涉及用一个大的正数与一个大的负数抵消以求得一个微小的差值,引擎就会失去精度,因为微小的差异会在初始大数的舍入过程中丢失。在这些特定情况下,该引擎无法使用,任务必须移交给计算机的其他部分。

这项研究还绘制了该引擎可以执行哪些操作的精确图谱。它擅长于驱动视觉和语音的任务,例如在图像中识别形状或处理声波。它可以处理复杂的模式,如卷积(即用于检测图像边缘和特征的数学运算)。然而,研究人员发现该引擎并非无所不能。某些类型的计算,例如涉及三维数据或特定类型内存更新的计算,在硬件上根本不受支持。他们还发现,该引擎的能力取决于特定的芯片代际。例如,旧款芯片只能以特定方式压缩数据以节省空间,而新款芯片可以支持更多种类的压缩格式,从而使其移动信息更快且更省电。

性能测量显示,当用于正确类型的任务时,该引擎比经常用于类似任务的图形处理器要快得多,也高效得多。在一项特定的图像处理任务中,研究发现该引擎的速度几乎是图形处理器的四倍,而消耗的能量仅为后者的一小部分。这种效率归功于其设计,它直接在内存和计算单元之间移动数据,无需多余的停顿。然而,这种速度受限于从主内存获取数据的速度。如果一项任务所需的数据量超过了该引擎在其小型、高速内部内存中所能容纳的量,性能就会下降,因为引擎必须等待数据到达。

研究人员还揭示了该引擎如何管理其自身的内存和状态。它可以将某些数据(例如对话的记忆或训练过程的状态)存储在自身内部,供后续任务使用。这意味着对于一系列步骤,引擎不需要将数据发回给主计算机,这节省了大量的时间。他们发现,该引擎可以在多个步骤之间保留这些数据,从而能够连续不断地处理信息流。这种能力对于实时语言翻译或文本生成等应用至关重要,因为引擎需要记住它刚刚说了什么,以便决定下一步说什么。

尽管功能强大,但该引擎并非通用解决方案。研究人员确定了一个硬性限制,即它在单次处理中可以处理的数据大小。如果一项任务所需的活动数据集大于两兆字节,引擎就会停滞,因为它无法在高速内存中容纳所有必要的信息。这种限制迫使开发人员将大型任务分解成较小的部分,这增加了软件的复杂性。此外,该引擎不是通用处理器;它无法运行任意程序。它只执行经过专门针对其硬件优化的、预编译的特定指令。这意味着为该引擎设计的软件必须考虑到其特定的约束条件,它不能简单地运行任何现有程序并使其变快。

研究还揭示了围绕该引擎的复杂安全和访问控制。虽然研究人员找到了直接与其通信的方法,但他们发现这条路径并不是设备制造商官方支持的。该引擎受到一套系统的保护,要求软件在运行前必须经过签名和验证,以确保只有受信任的程序可以访问该硬件。这种安全模型防止了未经授权的代码在引擎上运行,但也意味着研究人员使用的这条直接路径是脆弱的,可能会随着任何软件更新而失效。该引擎被设计为一个安全、隔离的组件,虽然可以触达它,但这样做需要应对复杂的权限和签名环境。

最后,这项工作为这个强大但专业的机器提供了一个清晰的轮廓。英特尔神经网络引擎(Apple Neural Engine)不再是一个神秘的黑匣子;它是一个具有已知优势和劣势的定义明确的组件。它擅长于驱动现代人工智能的特定数学任务,提供了通用处理器无法比拟的速度和效率。然而,它并不是一个能解决所有问题的魔杖。它对可以执行的计算类型、可以处理的数据大小以及可以维持的精度都有着严格的限制。通过理解这些限制,开发人员可以构建出更好地利用引擎天生能力的应用程序,而不是与其对抗。研究表明,设备端智能的未来不在于让引擎变得更加通用,而在于设计出能够完美契合其专门化设计的软件。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →