ANEForge 是一个 Python 包,可以直接编程苹果神经引擎(ANE),这是每个近期苹果设备上的固定功能神经加速器,且无需通过 CoreML。在生产中,该引擎只能通过 CoreML 访问,但 CoreML 将其视为调度选项:没有配置要求 ANE,模型可能会在 CPU 或 GPU 上静默运行。
ANEForge 编译来自 58 个融合操作符和 19 个原生桥接操作符的惰性张量图,生成一个单一的 ANE 程序。该程序通过与苹果内部框架相同的 ANE 守护进程和内核驱动程序堆栈进行调度。除了推理,ANEForge 还可以访问引擎的原生融合注意力,流处理 int8、int4 和稀疏权重,保持解码器和优化器状态在步骤间持久,并在引擎上运行前向传播、反向传播和优化器更新。
一个小的融合程序完成一次调用大约需要 90 微秒,接近引擎每个程序调度的 70 微秒下限;预训练的 ResNet-18 前向传播的端到端运行时间为 0.33 毫秒。ResNet-18、句子编码器和视觉变换器的端到端运行与框架参考进行对比,并且稳定扩散 U-Net 验证了其前向传播。ANEForge 旨在支持 macOS 14 及以上版本的苹果硅,每个版本都经过录制的 macOS 和 ANE 编译器版本的验证。
博主点评: ANEForge 的推出为苹果设备提供了一种高效的神经引擎编程方式,尤其是在避免 CoreML 的限制后,开发者可以直接利用 ANE 的强大性能进行深度学习任务。其对融合运算的支持及高效的调用时间,使其在实际应用中具有很大的潜力,尤其是在边缘计算场景下。该工具的优化可能会为未来的深度学习应用提供更好的性能。