ARM-software/CMSIS-NN

CMSIS-NN Library

해결하는 문제

CMSIS-NN는 Arm Cortex-M 프로세서에서 실행되는 AI 모델의 성능을 극대화하고 메모리 사용량을 최소화하기 위해 설계된 매우 효율적인 신경망 커널 모음입니다. 자원이 제한된 마이크로컨트롤러에 신경망을 배포하는 문제를 해결하며, 일반적인 연산자에 대한 최적화된 구현을 제공합니다.

작동 방식

이 라이브러리는 타겟 하드웨어의 기능에 따라 세 가지 수준의 최적화를 사용하여 신경망 연산자를 구현합니다:

  • Pure C: 모든 프로세서(예: Cortex-M0, M3)에서 작동하는 참조 구현.
  • DSP Extension: Cortex-M4 또는 M33과 같은 프로세서에서 SIMD 명령어를 사용.
  • MVE Extension: 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 기반 헬퍼를 통해 호스트 버퍼 크기를 계산할 수 있음.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트