ARM-software/CMSIS-NN
CMSIS-NN Library
解决的问题
CMSIS-NN 提供了一组高度优化的神经网络内核,专为在 Arm Cortex-M 处理器上运行的 AI 模型设计,以最大化性能并最小化内存使用。它解决了在资源受限的微控制器上部署神经网络的挑战,提供了常见操作符的优化实现。
工作原理
该库根据目标硬件的功能,采用三个级别的优化来实现神经网络操作符:
- 纯 C:适用于所有处理器(例如 Cortex-M0、M3)的参考实现。
- DSP 扩展:适用于 Cortex-M4 或 M33 等处理器,使用 SIMD 指令。
- MVE 扩展:利用 Arm Helium 技术(M-profile Vector Extension)在 Cortex-M55 或 M85 等核心上实现高性能向量处理。
主要遵循 TensorFlow Lite for Microcontrollers (TFLM) 的 int8 和 int16 量化规范,以确保位级兼容性,但同时也为 MVE 支持的 CPU 提供实验性的 float16 和 float32 API。
适用对象
适用于将机器学习模型部署到 Arm Cortex-M 微控制器的开发者,特别是使用 TensorFlow Lite for Microcontrollers 或 ExecuTorch 等框架的用户。
主要亮点
- 硬件特定优化:针对 Pure C、DSP 和 MVE(Helium)架构的定制内核。
- 广泛的算子支持:包含 Conv2D、DepthwiseConv2D、Fully Connected、LSTM 以及多种池化和激活函数。
- 量化支持:与 TFLM 的 int8 和 int16 规范实现位级兼容。
- 实验性浮点支持:为某些无法使用量化的情况提供 float16 和 float32 API。
- Python 绑定:提供基于 pybind11 的辅助工具,用于计算主机缓冲区大小。
相关
- 项目
- 项目
- 项目
- 项目
- 项目