5分でわかる「組み込みAIに適したハードウェア」

図

AIアプリケーションの登場とともに、AIに特化した様々なハードウェアが登場しています。一方、「なんとなく凄い製品であることは判るが、実際どれを選んで良いか解らない」という悩みも耳にするようになりました。ここではハードウェア選定に向けて、AI分野に登場するハードウェアの概要を紹介いたします。

まず前提として、組み込みAIは、値を比較する、比較結果を足し合わせる、重み(重要度)を掛けて必要な値を際立たせる、といった様々な処理を組み合わせることにより機能を実現しています。アプリケーションを高速化するには、これらの処理を並列実行できるハードウェアが必要となります。

AI専用でなくても高速化に活用できる、既存のハードウェア機能

コンピューティング分野で長年利用されている、1個の命令で複数の値を処理できる命令を「SIMD(Single Instruction Multiple Data)命令」と呼びます。例えば、Arm® Cortex®-M33では、「CPU」に内蔵されたDSPのSIMD機能により、8bit整数値を4並列で加算できます(図b)。画像のRGB値それぞれを同時に計算できるため、明るさ補正機能などに利用できます。

「GPU」は、より高い並列度で演算を実行できるハードウェアです。元々グラフィクス向けの製品ですが、汎用演算にも活用されています(GPGPU)。Armが2016年に発表した Mali™-G71 GPUは、8bit整数値を4並列/スレッド、最大4スレッドを同時に実行し、16並列で加算できます(図c)。

AI専用に設計されたハードウェア、Neural-network Processing Unit

「NPU」はAIの処理に特化したハードウェアです。AIのアルゴリズムに頻出する処理をハードウェアに統合した演算ユニットです。

AIに頻出する処理のひとつに、ドットプロダクションという演算があります。ドットプロダクションは、入力された複数の値に、それぞれに重みを掛け合わせ、合計値を算出する演算(内積演算)です(図d)。

図

2018年に登場したArm Mali-G76 GPUにはドットプロダクション機能を提供する命令が搭載されており、4個の8bit整数値を1組とした内積演算を、わずか1命令で処理できます。

また、NVIDIA Teslaにもドットプロダクションを処理するための専用命令が搭載されています。Teslaには、8bit整数値のみを対象としたDP4A命令に加えて、16bit整数と8bit整数値を混在して処理できるDP2A(hi)、DP2A(lo)命令などが搭載されています。

アルゴリズムに最適な演算器を実装できる、FPGA製品

近年は、4bit整数値など、nビット量子化技術により圧縮したデータを扱うことのできるハードウェアも登場しています。また、アルゴリズムに最適な演算器を実装できる「FPGA」も活用されています(図e)。

是非、開発するアプリケーションに最適なハードウェアを探してみてください。