世界上最快的 Arm Cortex-M 深度学习推理软件

来源:众壹云 发布日期:2021-10-18 14:33

英国初创公司 Plumerai 为 ARM Cortex-M 微控制器开发了推理软件,本周已将其基准测试为可用于二值化神经网络和 8 位深度学习模型的最快软件。

英国初创公司 Plumerai 为 ARM Cortex-M 微控制器开发了推理软件,本周已将其基准测试为可用于二值化神经网络和 8 位深度学习模型的最快软件。

由伦敦 AI 初创公司 Plumerai 开发的推理软件是一个必不可少的组件,它以类似于操作系统的方式指导资源管理。推理时间为 77 毫秒,与 TensorFlow Lite 相比,具有 ARM 的 CMSIS-NN 内核的微控制器的延迟降低了 40%,所需的 RAM(80Kbits)减少了 49%,同时保持了相同的精度。该公司表示,这使其成为目前最快的。

推理软件基于 TensorFlow Lite for Microcontrollers 构建,但不将 TensorFlow 或 ARM 内核用于最关键的性能层。取而代之的是,开发并优化了自定义内核代码以实现最低延迟和内存使用。这包括用于常规卷积、深度卷积、全连接层、各种池化层等的优化代码。

为了比高度优化的 ARM Cortex-M 特定 CMSIS-NN 内核更快,开发人员必须深入内部循环并重新考虑更高级别的算法。这包括优化,例如手写汇编块、改进的寄存器使用、权重和输入激活的预处理以及基于模板的循环展开。

这些通用的每层类型优化提供了更快的操作,开发人员还对神经网络中的每一层进行了特定优化。例如,推理软件不仅会在一般情况下优化卷积,还会根据层参数的所有实际值(例如内核大小、步幅、填充等)进行特定改进。

由于该软件可以运行多种不同类型的机器学习模型,因此这种优化是与编译器一起进行的。这是通过使用神经网络作为输入在自动预处理步骤中生成代码来实现的。然后,该工具会指导编译器执行所有必要的常量传播、函数内联和循环展开,以实现尽可能低的延迟。

内存使用是嵌入式设备的一个重要限制;无论快还是慢软件是,它必须适合内存才能运行。用于微控制器的 TensorFlow Lite 已经带有一个内存规划器,可确保张量仅在有层使用时占用空间。内存使用通过智能离线内存规划器进行优化,该规划器分析网络每一层的内存访问模式。根据过滤器大小等属性,内存规划器允许层的输入和输出部分甚至完全重叠,从而有效地就地计算层。

除了 ARM Cortex-M,推理软件还适用于 ARM Cortex-A 和 RISC-V 架构。二值化神经网络 (BNN) 是深度学习模型,仅使用一个比特来对每个权重和激活进行编码,而 Plumerai 正在为具有自定义 IP 核的 BNN 构建改进的深度学习模型架构和训练算法,为使用 FPGA 的客户提供服务。

该公司还与英国微控制器制造商 XMOS 合作开发 BNN 技术。

这允许推理引擎每秒处理更多帧、节省更多能源、运行更大、更准确的 AI 模型并部署在更便宜的硬件上。