ST Neural-ARTアクセラレーターは、さまざまな推論カーネルに対応可能な複数の専用ハードウェアアクセラレーターを統合しています。
これらのアクセラレーターは、パラメータ設定が可能であり、かつ実行時に再構成可能なニューラル処理ユニットです。データフローストリーム処理エンジンを介して動的に接続されており、柔軟で効率的な処理を実現します。
また、固定小数点MAC(精度は16bitまたは8bit)を備えた、設定可能な数の畳み込みアクセラレーターも搭載されています。
設定と起動が行われると、外部メモリからデータを自律的に読み出し、動的に相互接続された内部の処理ユニットへと供給します。同様に、一連の演算処理の結果は外部メモリへと書き出されます。
入力(ソース)としては、アクティベーションや特徴量だけでなく、重みやバイアスといったパラメータ、あるいはメモリマップされた不揮発性メモリに格納された定数データなども利用可能です。データストリーム処理パイプラインの設定と起動が完了すると、全てのDMA出力およびシンク(出力先)において転送完了イベントが通知されます。
読者のみなさんは、ここまで読んできて「高機能なのは理解したけど、どうのように使うんだろう?」と思われるでしょう。STでは組み込みAI用開発ツールを提供していますので、このツールを使えば、容易にサンプルモデルから、モデルの性能評価、モデル最適化まで実現できます。*2)言い換えると、ユーザーは、直接ST Neural-ARTアクセラレーターを使うのではなく、開発ツールで間接的に使うことになります。
*2):参考
組み込みAI用開発ツールは、STM32Cube.AI(デスクトップツール)とST Edge AI Developer Cloud(オンラインツール)の2種類が提供されています。どちらも、ニューラルネットワークモデルには、ST Edge AI model zooまたはユーザー独自の学習済みニューラルネットワークモデルが使えます。ニューラルネットワークモデルは、TensorFlow、Keras、ONNXなどの各AIフレームワークで提供されている演算子のセットを使用できます。STM32Cube.AIを使った場合の概要を図6に、ST Edge AI Developer Cloudを使った場合の概要を図7に示します。
開発ワークフローは次の5ステップです。
開発者は、特定のアプリケーションに適したAIモデルを選択または設計することから始めます。このモデルは、通常、TensorFlow、Keras、またはONNX形式のモデルなどの高レベルフレームワークを利用して、適切なデータセットを使用してトレーニングします。
モデルの学習が完了したら、STの統合されたパートナーエコシステムで利用可能なソリューションを使用して、量子化、プルーニング、圧縮などのさまざまな手法によって最適化します。
STM32Cube.AIなどを活用することで、開発者は、事前にトレーニングされたニューラルネットワークモデルを最適化されたCコードへと変換できます。このツールは、一般的なAIフレームワークからのモデルのインポートをサポートし、最適化技術を適用し、性能と効率を最大化するために、ニューラルネットワーク処理ユニットコンパイラと統合します。
生成したコードは、STM32N6シリーズ上で動作するアプリケーションコードに統合されます。開発者は、STM32CubeIDEまたはその他の互換性のある開発環境を使用して、ターゲットハードウェア上でアプリケーションをコンパイル、アップロード、テストできます。
アプリケーションを徹底的にテストして検証したら、エッジデバイスに実装します。ST Neural-ARTアクセラレーターは、AIモデルの効率的な実行を保証し、リアルタイムな性能と低消費電力を実現してくれます。
Arm Cortex-MのAIアクセラレーターってどんな機能?
マイコンの通信機能 UARTとI2C 、SPIの違い
AI時代でもマイコンが必要とされる理由
C言語コード生成ツールが普及する理由
I3Cって何? 特長と使い方を基礎から解説
マイコンの割り込み優先度、変更する理由とその仕組みCopyright © ITmedia, Inc. All Rights Reserved.
記事ランキング
コーナーリンク