工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial Internet of Things >> 埋め込み

組み込みアプリケーション向けのAIの最適化

以前のブログで、AIベースのインターフェースの需要がほぼ避けられなくなったことについて話しました。face-idのようなAIベースのインターフェースを追加して、マシンへのアクセスを許可することは、最初は大きな飛躍のように思えるかもしれませんが、そうではありません。あなたが思うかもしれないほど難しいです。利用可能なAIプラットフォームが豊富にあり、トレーニングオプションがたくさんあり、face-idの例のようなオープンソースアプリケーションもあります。 PCで実行できるプロトタイプを使用すると、非常に迅速に稼働してテストできます。


(出典:CEVA)

制約

トレーニング済みのネットワークを組み込みアプリに移行することは、もう1つの大きなハードルのように思えるかもしれません。 PCまたはクラウドでトレーニングされたネットワークは、メモリ使用量や電力をあまり最適化しません。ネットワーク計算に浮動小数点またはダブルワードを使用する場合があり、画像上でスライディングウィンドウを処理するときに、オフチップメモリ​​アクセスに大きく依存します。これは、壁の電源に接続された高性能PCで実行されているプロトタイプでは問題になりませんが、パフォーマンスを損なうことなく、エンドアプリケーションを大幅に節約する必要があります。

最適化の要点

最適化の重要なステップの1つは、量子化と呼ばれます。重みを浮動小数点から固定小数点に切り替え、固定小数点のサイズを、たとえば32ビット浮動小数点から8ビット整数に減らすと、重みのサイズだけでなく、中間計算値にも影響します。これだけでもメモリフットプリントを大幅に削減でき、ほとんどの場合、認識品質に目立った影響はほとんどありません。

2番目の操作は、精度への影響を最小限に抑えながら、重みのスパース性を活用することです。この方法では、ゼロに近い重みを利用し、精度への影響を綿密に追跡しながら、それらをゼロに丸めます。重みは、部分和の乗算に使用されます。これは、因子の1つがゼロの場合は無意味な演習であるため、操作を実行する必要はありません。

実際の実装では、画像は段階的に処理されるため、計算ウィンドウが画像上を移動するときに重みを更新する必要があります。それは多くの更新と多くのトラフィックを生み出す可能性があります。重みの大部分を強制的にゼロにすることで、重み配列を圧縮でき、配列のすべてまたは大部分をオンチップSRAMに格納して、オンデマンドで解凍することができます。これにより、メインメモリに移動する必要性が最小限に抑えられるため、パフォーマンスが向上し、電力が削減されます。また、ウェイトをロードする際のオンチップトラフィックも偶発的に減少します。トラフィックの競合が少ないということは、スループットが高いことを意味します。

もう1つの要因を考慮する必要があります。ほとんどの複雑なアプリケーションと同様に、ニューラルネットは高度なライブラリに依存しています。マイクロコントローラー環境で使用するために設計されたライブラリーと、選択したプラットフォームへのコンパイラーを使用する必要があります。出発点としては、TensorFlow Liteなどのオープンソースライブラリが適していますが、マイクロコントローラーを最大限に活用するには、専用のカスタマイズされたソリューションが必要になります。

もちろん、あなたがしなければならないことを知っていることはそれを容易にしません。次に、これらの操作を合理化し、ハードウェアに最適化されたライブラリを提供するプラットフォームを見つける必要があります。

これを使いやすいフローにするにはどうすればよいですか?

必要なのは、特定のプラットフォーム(TensorFlowなど)でトレーニングしたネットワークを利用して、いくつかの基本的な要件をダイヤルする以外の介入なしに、これを組み込みソリューションに直接コンパイルできるフローです。もちろん、オプションでさらに手動で最適化できるようにする必要もあります。おそらく、さまざまな平面でさまざまなレベルの量子化を設定できます。おそらく、重みのしきい値とオンチップのメモリサイズを試してみてください。また、ライブラリをハードウェアに最適化し、ハードウェアをライブラリに最適化する必要があります。

CEVAのCDNNのような実績のあるAIプラットフォームは、このタイプのフローを提供するように設計されています。 CDNNは、量子化およびランタイムタスク生成用のオフラインプロセッサツールセットと、CEVADSPおよび顧客ユーザーのハードウェアアクセラレータ用に調整されたランタイムライブラリを提供します。 CEVAのソリューションは、TensorFlow Lite、ONNX、Caffeなどを含むすべての一般的なAIモデル形式をサポートしています。


>

関連コンテンツ:

Embeddedの詳細については、Embeddedの週刊メールニュースレターを購読してください。


埋め込み

  1. VersaLogicが組み込みアプリケーション向けのサーバークラスのコンピューターをリリース
  2. インフィニオンは、自動車用途向けのTLE985x組み込み電源シリーズを発表しました
  3. サンダンス:精密ロボット工学アプリケーション向けのVCS-1組み込みプロセッサモジュール
  4. E-Mobilityアプリケーション用PPA
  5. ウォータージェットを最適化するための4つのヒント
  6. 空気圧アクチュエータの理想的なアプリケーション
  7. マイニングアプリケーション用の4種類のツール
  8. キャリパーブレーキの代表的な用途
  9. 青銅合金の軍事用途
  10. アルミニウム ブロンズ C63200 の用途
  11. モネルの用途は?