検索
連載

Arm Cortex-MのAIアクセラレーターってどんな機能?Q&Aで学ぶマイコン講座(117)(3/3 ページ)

マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「Arm Cortex-MのAIアクセラレーター」についてです。

Share
Tweet
LINE
Hatena
前のページへ |       

Arm Cortex-M55のMVE

 この章では、Arm Cortex-M55にオプションとして提供されているAIアクセラレーター機能のMVEを解説します。

 Arm Cortex-M55はArmv8.1-Mアーキテクチャです。従来のArmv8-Mに、信号処理や機械学習アプリケーション向けMVEなどの新機能が追加されています。Arm Cortex-Mプロセッサ向けのMVEは、「Arm Heliumテクノロジー」*2)と呼ばれています。どちらかと言うと、MVE よりもHeliumの名前の方が、世に出回っているので、読者の中には、すでにご存じの方がいるかもしれません。

*2):https://www.arm.com/ja/technologies/helium

 Heliumは、新しいベクトル命令セット拡張です。特に次のような処理を高速化することを目的にしています。

  • デジタル信号処理(オーディオ処理、センサー処理など)
  • 組み込み向けの機械学習推論(キーワードスポッティング、画像分類など)

 従来のArm Cortex-Mプロセッサに比べて、信号処理で最大約5倍、機械学習で最大約15倍の性能向上が見込まれます。

 Heliumは、オプション機能なので、マイコンメーカーがマイコンを製品化する際に機能を選択します。例えばSTM32N6シリーズでは図3に示すように、Heliumを選択しています。

<strong>図3:Arm Cortex-M55</strong>
図3:Arm Cortex-M55[クリックで拡大]

 少し難しくなりますが、Heliumの特徴を挙げると次のようになります。

  • 128ビット固定長のベクターレジスタ(q0〜q7など)を使用(図4参照)
  • 8ビット/16ビット/32ビット整数や単精度浮動小数のベクター演算に対応
  • 加算、乗算、MAC、畳み込み系などのDSP向け命令
  • ロード/ストア、テーブルルックアップ、圧縮/展開などのメモリアクセス命令
  • 述語(マスク)付き演算や条件付ベクター処理
<strong>図4:Heliumの拡張レジスタバンク</strong>
図4:Heliumの拡張レジスタバンク[クリックで拡大]

 プログラミングする際は、C言語で普通にコードを書いて、コンパイラに任せるのが一番簡単な使い方です。GCCやArm Compilerなどでは、Helium対応コンパイラがMVE用バックエンドを持っているため(使用前に確認が必要)、ループベースのDSP/MLコードを自動でベクター化してくれます。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る