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

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案