Arm NN 填补了现有 NN 框架和底层 IP 之间的空白。它可以帮助 TensorFlow 和 Caffe 等现有神经网络框架实现高效转换,并在 Arm Cortex CPU 和 Arm Mali GPU 上高效运行,无需修改。
Arm NN 不收取任何费用。
Arm NN SDK (GitHub)
Arm NN SDK 是一套开源 Linux 软件和工具,支持在高能效的设备上运行机器学习工作负载。它桥接了现有神经网络框架与高能效的 Arm Cortex CPUs、Arm Mali GPU 或 Arm 机器学习处理器。
Arm NN SDK 运用 Compute Library,以 Cortex-A CPU 和 Mali GPU 等可编程内核为目标,尽可能提高效率。其中包括为 Arm 机器学习处理器提供支持,以及通过 CMSIS-NN 为 Cortex-M CPU 提供支持。
首次发布版本将支持 Caffe,后续很快还会依次发布支持 TensorFlow 以及其他神经网络框架的版本。Arm NN 先将这些框架中的网络转换为内部 Arm NN 格式,然后通过 Compute Library 将它们高效地部署在 Cortex-A CPU 和 Mali-G71 及 Mali-G72 等 Mali GPU 上(如果存在后者的话)。
Arm NN 同样适用于谷歌接口 NNAPI,该接口可从 Android O 获取,能使神经网络在 Android 设备上加速运行。默认情况下,NNAPI 在设备的 CPU 内核上运行神经网络工作负载,同时也提供可面向其他处理器类型(例如,GPU)的硬件抽象层 (HAL)。适用于 Android NNAPI 的 Arm NN 为 Mali GPU 提供该 HAL。后续发布的版本将增加对 Arm 机器学习处理器的支持。
Arm 对 Android NNAPI 的支持实现了 4 倍以上的性能提升。
下载适用于 Android 的 Arm NN 源。
CMSIS-NN 可为 Cortex-M CPU 提供经过优化的低级别 NN 函数:这是一系列高效神经网络内核的集合,其开发目的是最大程度地提升神经网络的性能,减少神经网络在 Cortex-M 处理器内核上的内存占用。
后续 Arm NN 版本将支持以其他机器学习框架作为输入,以其他处理器内核作为目标。这包括 Arm 合作伙伴的处理器内核和加速器(假设有适当的扩展可用)。