ANE
maderix/ANE加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

你是否有这样一台 MacBook Pro?M4 芯片,官方宣称 38 TOPS 的神经网络引擎。但当你打开 PyTorch,想在这个 ANE 上跑一个训练任务时——你会发现 Apple 根本没开放这个接口。训练只能走 GPU,既费电又费算力。
ANE 躺在那里,15.8 TFLOPS 的 FP16 算力,几乎什么都没干。
maderix 看不下去这个浪费。他花了数月时间,从 CoreML 底层一路摸到 IOKit 内核驱动,逆向出了完整的 ANE 软件栈——_ANEClient、_ANECompiler、以及关键的 _ANEInMemoryModelDescriptor——然后写了一个让你直接在 ANE 上训练神经网络的项目:ANE Training。
苹果的 Neural Engine(ANE)是苹果芯片上最被低估的硬件模块。官方把它定位为"推理加速器",只开放 CoreML 的推理接口,训练完全绕道 GPU。但 ANE 的能效比 GPU 高得多——同等算力下功耗只有 GPU 的零头。
问题是:ANE 的训练能力被软件封印了。maderix 做的,就是破解这道封印。
这不是简单的 Hack。这个项目:
ANE Training 的核心是通过 _ANEInMemoryModelDescriptor 绕过文件系统,直接在内存中编译 MIL(Model Intermediate Language)算子图。一个完整的 transformer 训练步骤:
前向传播(MHA 模型,6 个 kernel/layer):
sdpaFwd:QKV 投影 + Scaled Dot-Product Attention + 输出投影ffnFused:SwiGLU FFN(W1, W3, SiLU, W2 融合)反向传播(MHA 模型,4 个 kernel/layer):
sdpaBwd1/sdpaBwd2:Attention 反向梯度ffnBwdW2t/ffnBwdW13t:FFN 权重梯度CPU 负责:RMSNorm 前向/反向、残差连接、损失计算、Adam 优化器。
黑科技优化手段:
[1,C,1,S] 格式,消除所有转置开销maderix 在 README 里说得非常清楚:这是一个研究项目,不是生产框架。
当前的实际限制:
_ANEClient 等均为私有 API,不在公开文档中,任何 macOS 更新都可能破坏代码。maderix 明确表示这是"独立研究",在 DMCA §1201(f)(允许为兼容性研究逆向工程)的框架下进行ANE Training 的最大贡献,不是跑出了多快的训练速度,而是证明了在 NPU 上训练是可行的。
长期以来,业界认为 ANE 只适合推理。但 maderix 的工作表明:硬件能力不是瓶颈,软件封锁才是。只要有人愿意去研究,NPU 的训练潜力可以被释放。
这个发现已经在学术界引起反响:纽约大学上海分校(RITS)将这一研究收录进 AI 基础设施调研,arXiv 论文《Orion》将 maderix 的工作列为 NPU 训练领域的"基础性贡献"。
更重要的是,它为边缘 AI 计算打开了一扇门:如果连 Apple 这么封闭的 NPU 都能被撬动,其他相对开放的 NPU(高通 Hexagon、英特尔 NPU、联发科 NPU)是否也有类似的训练潜力?
如果你期待的是"开箱即用的训练框架",ANE Training 不是答案。如果你对在消费级 Apple Silicon 上用极低功耗训练神经网络感兴趣,或者想了解 ANE 硬件的极限在哪里,这个项目值得花时间研究。
项目地址:github.com/maderix/ANE
作者博客:Inside the M4 Apple Neural Engine (Substack)
相关论文:Orion: Characterizing and Programming Apple's NPU