ANE

7天前发布 36 0 0

ANE是通过逆向工程的私有API,在ANE上跑通了完整的Transformer训练,包括前向传播和反向传播。不依赖CoreML训练API,不依赖Metal,不依赖GPU,纯ANE硬算。

收录时间:
2026-05-18

拥有Mac(Apple Silicon芯片)的同学都知道,苹果芯片里有一个极其强悍的硬件——ANE(Apple Neural Engine,苹果神经网络引擎)。在M4芯片上,它能提供高达 15.8 TFLOPS 的算力。

然而,长期以来苹果对 ANE 做了极其严格的物理限制:它通过 CoreML 框架,只允许进行模型推理(Inference),绝对不允许进行模型训练(Training)。大家都默认:在Mac上练模型,只能靠GPU,ANE 只能看看。

直到最近,GitHub 上一个名为 ANE(maderix/ANE) 的极客研究项目彻底打破了这一“铁律”。作者通过硬核的逆向工程,绕过了苹果的官方限制,成功实现了在 ANE 上进行神经网络的完整训练(反向传播)

今天,我们就来深度拆解这个让开源技术社区和苹果开发者们直呼“疯狂”的神仙项目,看看它究竟有哪些独一无二的硬核特色

ANE

ANE 网站截图

一、项目核心亮点:打破Apple官方限制

长期以来,Apple将ANE主要定位为推理加速器,训练功能被严格限制在CoreML框架内。ANE项目直接调用逆向的_ANEClient和_ANECompiler私有API,以及MIL(Model Intermediate Language)格式,实现了自定义计算图在ANE上的完整训练流程。

这不是简单的推理优化,而是端到端的Transformer训练

  • 支持前向传播 + 反向传播(dx在ANE上计算,dW梯度在CPU用Accelerate cblas完成)
  • 支持动态权重内核(无需每次权重更新都重新编译)
  • 支持Grouped-Query Attention(GQA)等现代架构

目前已成功训练Stories110M(109M参数)和Qwen3-0.6B(596M参数)等模型,在M4上达到91ms/step和412ms/step的训练速度,堪称Apple Silicon上的突破性探索。

二、技术创新与优化

1. 动态Pipeline设计 采用共享ANE内核,将权重打包进空间维度,实现“权重动态变化但无需重新编译”。这极大提升了训练效率,避免了传统静态编译的瓶颈。

2. INT8量化加速 支持W8A8量化,通过MIL的quantize/dequantize操作和constexpr_affine_dequantize,在M4上实现1.88x吞吐提升(FP16 18.6 TOPS → INT8 35.1 TOPS)。有效利用L2 SRAM带宽,展现了ANE在低精度下的强悍性能。

3. 高效混合计算架构

  • ANE负责大部分重计算(卷积模拟线性层、SDPA等)
  • CPU处理RMSNorm、残差、Loss、优化器等
  • GPU↔ANE零拷贝通过共享IOSurface实现(支持GPU预填充 + ANE解码 pipeline)
  • 多种优化:通道优先布局、vDSP向量化、GCD异步重叠、exec()重启绕过编译限制等

4. 完整基准与探索 项目包含大量benchmark脚本,深入探测ANE的峰值性能、SRAM行为、调度延迟等,为后续研究提供了宝贵数据。

三、使用与上手

项目使用Objective-C + MIL实现,仅支持macOS 15+的Apple Silicon设备(M4实测最佳),无外部依赖。

快速上手(动态Pipeline推荐):

  1. 克隆仓库
  2. cd training/training_dynamic
  3. make MODEL=stories110m(或qwen3_06b)
  4. ./train –scratch 从零训练,或–resume继续

还提供C可调用Bridge库,方便与其他项目集成。同时附带实时训练Dashboard(Python TUI)。

注意:这是一个研究项目,非生产框架。当前利用率仍有提升空间(约5-9%峰值),许多操作仍会fallback到CPU,适合有Apple Silicon并对底层ML runtime感兴趣的开发者、研究者。

四、项目意义与未来

ANE项目证明了:硬件能力从来不是瓶颈,软件支持才是关键。它为边缘AI、on-device训练打开了一扇新窗,也为探索其他NPU的训练潜力提供了参考路径。MIT协议,欢迎fork和扩展。

相关导航

暂无评论

none
暂无评论...