ARM-software/CMSIS-DSP

CMSIS-DSP embedded compute library for Cortex-M and Cortex-A

해결하는 문제

CMSIS-DSP는 Arm Cortex-M 및 Cortex-A 프로세서를 대상으로 하며, 고도로 최적화된 계산 커널 세트를 제공합니다. 리소스 제약이 있는 하드웨어에서 복잡한 수학 및 신호 처리 연산을 구현하는 문제를 Helium 및 Neon과 같은 하드웨어 고유 가속 기능을 활용하여 성능을 극대화함으로써 해결합니다.

작동 방식

이 라이브러리는 다양한 데이터 유형(f64, f32, f16, q31, q15, q7)에 대해 광범위한 최적화된 함수(커널)를 제공합니다. 하드웨어 확장 기능(Helium 또는 Neon)이 사용 가능한 경우 함수의 벡터화된 버전을 활용합니다.

또한 다음 기능을 제공합니다:

  • DSP++: 루프 융합을 사용하여 커널을 알고리즘으로 조합할 수 있는 헤더 전용 C++ API로, 메모리 접근 횟수를 줄이고 일시적 배열을 피할 수 있습니다.
  • Autodiff Extension: DSP++ 기반의 실험적 기능으로, 라이브러리의 일부 커널을 사용하여 장치 내에서 미세 조정(fine-tuning)을 수행할 수 있습니다.
  • Python Wrapper: NumPy와 호환되는 래퍼로, C로 구현하기 전에 Python에서 알고리즘을 설계하고 프로토타이핑할 수 있습니다.

대상 사용자

Arm Cortex-M 또는 Cortex-A 프로세서를 사용하여 온디바이스에서 고성능 디지털 신호 처리, 선형 대수, 또는 전통적인 머신러닝을 수행해야 하는 임베디드 소프트웨어 엔지니어 및 개발자입니다.

주요 특징

  • 하드웨어 최적화: 벡터 연산을 위한 Helium 및 Neon 확장 기능에 특화된 지원.
  • 광범위한 커널 지원: 기본 수학, 필터링, 변환(FFT, MFCC, DCT), 통계, 전통적 머신러닝(SVM, 클러스터링) 포함.
  • 유연한 데이터 유형: 64비트 부동소수점에서 8비트 고정소수점 정수까지 다양한 정밀도를 지원.
  • 프로토타이핑 워크플로우: 알고리즘 설계와 C 구현 사이의 격차를 메우기 위한 Python 래퍼 포함.

관련

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