画像
Toshiyuki Syo
庄 俊之
主任技師

e-AI Translator とは

オープンソースのAIフレームワークを用いて作成した学習済みAIアルゴリズムを推論専用のCソースコードに変換するツールです。e-AI Translatorの最新版V2.2.0を2022年3月31日にリリースしました。今回のブログでは、V2.2.0の新機能「CMSISライブラリ対応による高速化の機能」についてご紹介いたします。本機能はRAファミリ、RXファミリで使用可能です。

従来のプログラムにAIアルゴリズムを適用する際の懸念事項:推論時間

AIアルゴリズムは、多数のパラメータを用いた多項式演算です。従来のアルゴリズムに比べ、パラメータ数、計算量が多いため計算時間が増加する傾向があります。 一方、AIアルゴリズムの演算で計算時間の大部分は、畳み込み演算が占めています。 比較的少数のパラメータと入力データとの積算値を合計する計算であり、高速化が行いやすい処理です。

例として、MCU向けAIの標準ベンチマークである、MLCommonsの MLPerf™ Tiny Inference benchmark内からKeyword Spotting (KWS)とAnomaly Detection (AD) で使用されている2つのモデルで確認してみましょう。 モデル出典: https://github.com/mlcommons/tiny

表 1 MLPerf™ Tiny Inference benchmarkのKWSとADで使用されるニューラルネットワーク関数とその演算量

画像
Neural network functions

*PW(1x1),DW(3x3): CMSISライブラリ専用関数の使用で大きく高速化が可能な処理

KWSはDS-CNNを使った、Pointwise ConvolutionとDepthwise Convolutionを主体とする構成、ADは、FullConnectを使ったAutoEncorderで、それぞれの演算量は、表 1に示したものとなります。いずれも、演算の大多数を占める関数は、CMSISライブラリを利用することで、RXおよびRAのDSPを有効活用することが可能です。 特に、KWSは、専用高速関数が使用されるため、演算の高速化が期待できます。

CMSIS_Int8ライブラリ指定時の推論速度比較

先ほどのMLPerf™ Tiny Inference benchmarkのモデルをe-AI Translatorを使ってC Sourceに変換してみましょう。 今までのe-AI Translatorと異なり、Output Formatでライブラリの選択が可能となっています。

画像
Library specification

図 1 TFLite Int8モデル変換時のライブラリ指定方法(Output Format)

DSPを使用しない場合(C_INT8指定)とDSPを使った場合(CMSIS_INT8)とで速度と使用メモリサイズを比較してみましょう。 結果は表 2の通りです。

表 2 推論速度 と必要メモリサイズの 比較 (GR-KAEDE: RX64M 96MHz、C_INT8利用時の推論速度を基準とする)

画像
Comparison of inference speed and required memory size

*TFLu+CMSIS: TensorFlow Lite for Microcomputers で CMSISを利用した場合の推論速度(参考値)

KWSの場合は演算コストの高いConvolutionが推論演算の大多数を占めているため、CMSISライブラリ利用の効果が高く、40倍以上の高速化が実現されています。 ADの場合は比較的軽量なFullConnectの演算が中心ですが、それでも10倍以上の高速化となっています。 一方、CMSIS関数内で使用するテンポラリに使用するバッファ配列が原因で、最大でC_INT8の約2倍のRAMサイズが必要となります。

なお、RXでCMSISライブラリを使うためにはCMSIS for RXを入手してください。ARMのCMSISライブラリに対してRXのDSPを利用するように組み込んだライブラリです。 RAの場合は、FSP3.5以降を利用し、FSPのComponentでCMSIS/DSP、CMSIS/NNを追加してください。使用方法の詳細はe-AIトランスレータのユーザーズマニュアル、およびCMSIS for RXのアプリケーションノートを参照してください。

関連情報:

[1]: e-AI開発環境 / ダウンロード
[2]: 8bit量子化技術でROM/RAM使用量削減に貢献 TensorFlow Liteに対応したe-AI Translator V2.1.0をリリース (過去blog)
[3]: MCU で AI を実現するツールe-AI Translator V2.0.0 リリース
[4]: e-AIソリューション
[5]: ルネサスはAIベンチマークに参加しました

この記事をシェアする

コメントを投稿するにはログインまたは登録をしてください

この記事をシェアする