Ryuz's tech blog

FPGAなどの技術ブログ

なぜFPGAがフィジカルAIで有利なのか

はじめに

似たような話は過去にも何度も書いた気がしますが、改めて少し以前に描いた絵を引っ張り出してきて整理しておきます。

身も蓋もない話、GPU向けに作られたAIモデルを持ってきた場合、しばし、性能/コスト/電力すべての項目で FPGA は GPU/NPU に惨敗するわけですが(GPU有利に作られたモデルなので当然なのですが)、それでもなおそういうモデルを FPGA-AI をやる意味というのはどこにあるのかと言うお話です。

従来のAIアクセラレータの場合

フィジカルAIの前提として、物理世界からの入力(センシング)や、物理世界への出力(アクチュエーション)が何らかの形で入ってくるわけですが、従来型のAIアクセラレータであるGPU/NPUは CPU がハブになってシステムが構成される形になるかと思います。

ここで言う CPU は、いわゆるパソコン とか RaspberryPI とか Jetson とかそんな類のものをイメージしていて、GPUなりNPUなりをつけてAIアクセラレーションしているイメージのものです。

従来のAIアクセラレータの場合

ここで IoT をやれることは今どきのシステムとして必須ですが、まあ、IoT をやれる OS とリアルタイム処理を共存させるのは、いろいろと難易度が高いですし、制約も出てきます。

センサーなどのフィジカルな情報をAIアクセラレータに入れるためにも一度CPUを経由することになるので、どうしても PCIeとかEtherとかUSBとか、物理制御に向かない I/F を経由することになりますし、それら PC などに接続可能な用意されたデバイス しか繋がりません。

RT-Linux(PREEMPT_RTパッチ) のようなものや、EtherCAT のようなものや、様々な工夫はなされていますが、この形でリアルタイムシステムを扱うのはそれはそれで難易度も高く、各種の産業用規格のライセンスフィーなどでコストを押し上げる原因にもなっています。

FPGAの場合

一方で FPGA の場合、あらかじめソフトリアルタイムの世界とある程度分離して、ハードリアルタイムの世界を構築できます。

またフィジカルAIで重要な、センサーやアクチュエーターに対して、ネイティブな専用I/Fできめ細かい制御 ができます。

なにより、世の中の電子部品なら だいたいなんでも繋がる のが FPGA なので、リレーやモーター、圧力センサ、接触センサなどなどなんでも繋がりますし、イメージセンサやモニタ、マイクやスピーカなどもPC用のものよりより低遅延に接続可能です。

FPGAにおけるフィジカルAI

そしてこの勝利の方程式の出来上がった形の中にAIを入れたい場合、FPGAでAIをやる合理性 になってきます。

これが FPGA が フィジカルAI に有利な理由であろうと考えております。

もちろんこれは、GPU向けの学習モデルあっても FPGA に持ってくる意味があるという話であって、ここにさらに FPGA向けのモデルでさらに差別化を図るようなことも視野に入ってきます。

ただし毎回ここで課題になるのが、CPUとFPGAをどうつなぐか問題で、以前 FPGAを始めるときの壁 とかになりがちな気がしてます。 PCIe とか人気ではありますがお手軽ら考えたらいっそ USB とか、Zynq みたいな一体型が楽じゃないかなども思います。

おわりに

当方は、リアルタイムビジョン長らくやっておりますが、昨今は AI が無視できなくなってきています。

そういった中でフィジカルAIというのは、FPGAを活かすシステムをの上でAI をやる優位性をもたらしてくれます。

そしてやはりFPGAに適したAIやモデルの開発と言うのも引き続き価値を生み出してくれると考えています。

こういった観点でAIモデルを研究したときにも、その新規性はモデルの Accuracy であったりパラメータ数であったりではなく、このようなシステム構造の求める要件に適合させやすいモデルになっているかどうかではないかと思っています。特にレイテンシとサンプリングレートの関係は重要で、実時間システムに適合させる際にダイナミクスと演算時間も考慮に入れた誤差の低減とか、リアルタイム保証のやりやすさとか、そういったものも新規性になってくるのではないかと思う次第です。

FPGA ユーザーや、FPGAを活用する研究者が、今後もっと増えてくれると嬉しいなと思う次第です。