組み込み市場では、「クラウドAI」の普及が急激に拡大する一方で、運用コストや処理容量、セキュリティなどの問題から、エッジ(端末側)で単独処理できる「エッジAI」の可能性に期待が高まっています。AIの推論機能を直接組み込み機器に実装する方法はいくつかの選択肢がありますが、組み込み機器特有のニーズや制約に対しては“FPGAを利用したエッジAIの実装”に優位性、有効性があります。

組み込み機器にエッジAIが必要な理由

様々な組み込みシーンで広くAIが活用されつつあり、特に、映像や画像からAIを使って生産効率や作業効率を向上させようとする動きが多くみられます。クラウド上のAIを使って実現することも可能ですが、コストや耐障害性など様々な課題があり、その中でもレイテンシー(遅延)問題が最も大きな課題となっています。
また組み込みAIでは、目的に特化した特殊な環境で、特定の作業を高速に安定して処理する必要があり、一般的なクラウドAIのサービスと親和性が高いとは限りません。最小の運用コストで、ネットワーク障害にも強く、低レイテンシーで高速かつ常時安定運用が必要なことを考えると、AIを端末側(エッジ)に実装することは有効です。

FPGAと他の選択肢の比較:GPU?CPU?それともFPGA?

AIはGPUを使って開発を進めるケースが多いです。それは、既存のAI開発のフレームワークや開発環境の多くがGPUベースで整備されて、さらに多くの情報が提供され、技術者はGPUベースの開発を選びやすいためです。確かに、サーバーやクラウドで提供されるAIサービスを使用した開発ではGPUは有効な選択肢の一つですが、AIを機器に組み込む開発では容積や価格、供給、発熱の問題が発生し、必ずしもGPUの選択が最適とは言えません。
では、CPUを使ってAIをソフトウェア実装する方法はどうでしょうか?AIの導入は比較的容易ですが、AIを活用するためには膨大な行列積和演算処理が必要になります。そのため、コア数の限られるCPUでは計算が重く画像処理速度(FPS)が制限されるため、AIの用途が限定される恐れがあります。そこで、様々な組み込み特有の要求事項をクリアし、かつAI処理に親和性の高い選択肢として、FPGAをおススメします。

FPGAとAIの親和性と、組み込みAIの最新技術


FPGAは、推論AIの計算に向いたデバイスです。AIにも様々な種類や方法がありますが、ここでは画像の分類でよく使われる「CNN」を例にしてFPGAと推論AIの親和性について考えてみましょう。

「CNN」とは、畳み込みニューラルネットワークのことです。推論CNNでは主に畳み込み層とプーリング層の2種類の組み合わせで構成されます。どのような計算をしているか少し詳しく説明すると、畳み込み層では2次元のフィルタを対象の画像にかさね合わせて、1ピクセルずつシフトしながら積和行列演算をしていきます。そしてプーリング層では低解像度化のためにデータをまとめる処理をします。
ポイントは、推論CNNでは畳み込み層での計算量の割合が圧倒的に多く、その中心が行列の積和演算で、推論毎にその計算を何百万回も行うこと。そして、FPGAはこれらを電子回路化処理し超高速に演算することが可能なため、FPGAとAIの推論は非常に親和性が高いと言えます。

FPGA向けAI技術も日々研究されています。この1年間でエッジAI向けFPGA実装のためのAI技術はめまぐるしく進化しました。2017年前半では2値化CNNの技術が登場し、2017年後半には3値化CNNが、そして2018年には3状態混合精度CNN技術が発表されました。多様なAI処理の実現や精度の向上が日々行われているのです。富士ソフトは大学などの研究機関と連携しながら、最新のエッジAI技術を提案しています。

エッジAI実装コンサルテーション:AIをFPGAに実装するための提案


エッジAI実装コンサルテーションサービスは、お客様の開発したAIをFPGAのHW回路として実装する技術サポートです。実装するCNNの深さや大きさから使用するFPGAの種類を決めて、そのFPGAに最適化されたCNNを設計します。AI開発時に使用したラベルデータや学習用のデータを使ってそのCNNの構成に沿った再学習を行い、モデルを生成します。これらをC++のヘッダーファイルに変換しておきます。ここからは一般的なFPGAの高位合成のプロセスと同じで、標準的なOpenCL環境でコンパイルし、FPGA用の実行ファイルを作成します。これで、PC上でしか機能しなかったAIが、FPGAという半導体デバイスの電子回路として再構成されたことになります。

簡単だと感じられるかもしれませんが、実際は各分野の専門家のノウハウを使って実装する必要があります。例えば、対象FPGAに回路を入れ込むためにネットワーク層のハイパーパラメータの調整と精度のバランスをとったり、処理速度を上げるための並列化やメモリーアクセスの最適化を行ったり、OpenCLの様々なコンパイルオプションを調整したり。多くの経験豊富なエキスパート技術陣を持つ富士ソフトだからこそ可能なサービスといえるのです。
組み込み機器へのAI実装の実現に向けて、それぞれの目的に最適なAIを設計し、ネットワーク規模や精度のバランスを考え、最小のコストで実現していくために、AIをFPGAに実装するという選択を提案しています。

※記載している会社名、商品名は各社の登録商標または商標です。

 

薬師寺 秀徳
薬師寺 秀徳(Hidenori Yakushiji)

イノベーション統括部 先端技術支援部
モバイルインテグレーション室
次長 / フェロー

この記事を読んだ人はこちらの記事も読んでいます。