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 的輔助工具,用於計算主機緩衝區大小。
相關
- 專案
- 專案
- 專案
- 專案
- 專案