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 ラッパーを含む。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト