お問い合わせはこちら

高性能なAI推論を簡単に

公開
更新

AI はターゲットアプリケーションによって根本的に異なる要件を持ちます。

例えば、自動運転では走っている車から交差点に入る歩行者を認識するために、非常に正確かつ高速(20ms)に膨大な演算をする必要があります。膨大な演算処理を行うには高性能なデバイスを使用するしかありませんが、市場からは低価格や低消費電力化のプレッシャーを受けます。

IoTにもAI導入が始まり、消費者は最終的にインターフォン、カメラ、白物家電、ゴミ箱に至るまで全てがスマート化される事を望んでいます。この分野ではAIの品質と精度の重要性は高くはありませんがコストと低消費電力化を要求されます。他にも、工場ライン、ビル管理、スマートシティ、病院などは自動運転程でないにしてもIoTよりはるかに優れた精度を必要とします。

また、ロボット、AGVやAMRなどの自律走行車は、迅速な反応時間が求められたり大規模なビデオ ストリームを使用するアプリケーションでは、大量のデータを送信する機能や、医療およびセキュリティデバイスでは、データの安全性と保護を極めて高くする必要があります。

このようにAI のアプリケーションは、同じニューラルネットワークを利用したとしても、全て同じレベルの認識精度や反応速度(低遅延での認識)は必要無く パフォーマンスだけに特化したnVIDIAに代表されるGPUでは対応できなくなってきているのが現状です。

AI推論を簡単にする方法

機械学習やエッジコンピューティング業界が注目しているFPGA

FPGAって何?

FPGA(プログラム可能なハードウェア ファブリックを備えた集積回路)は、画像処理装置(nVIDIA:GPU)や中央処理装置(Intel、AMD:CPU)とは違い、とても柔軟性の高いデバイスです。この柔軟性を使って、設計者は必要に応じてプログラム(ハードウェアの回路構成)を更新する事ができます。

つまり、再プログラム可能で、再構成可能なFPGAのアーキテクチャは、絶えず変化するAIアルゴリズムをすばやくアップデートし検証することができるだけでなく、新たなハードウェアを開発したりリリースする必要がないことから、コストを抑えて、且つ、市場投入を短時間で行えるため、とても強力な競争上の優位性を生み出すデバイスと言えます。

【図解】FPGAとは ?? わかりやすく解説します

【図解】FPGAとは ?? わかりやすく解説します

膨大なデータに対し、複雑な演算処理を高速に実行するHPC(ハイパフォーマンス・コンピューティング)ですが、その世界市場規模は2025年には500億米ドル近くまで成長すると予測されています。HPC領域をチップセットの観点から捉えるとCPU、GPU、ASIC、FPGAに大別され、コンピューティング方式の観点からはスーパーコンピューティング、量子コンピューティングもHPC領域に含めることができます。この…

FPGAの主なメリット

  • レイテンシ
    「低レイテンシ」と「確定的レイテンシ(DL)」を可能にします。モデルとしてのDLは、初期状態または任意の開始条件から継続的に同じ出力を生成します。DLは、制限時間に厳しい多くのアプリケーションでは非常に重要な、既知の反応時間を実現します。これにより、音声認識、ビデオ ストリーミング、モーション認識のようなリアルタイムのアプリケーションを高速で実行することが可能になります。
  • 費用対効果
    FPGAは、異なるデータタイプや性能に合わせて、製造後に再プログラムできるため、新たなハードウェアのアプリケーションと交換する必要がありません。同じデバイスに、設計者はAIだけではなく画像処理パイプラインのような追加の機能を1チップ化する事でコストを削減する事ができます。また、FPGAは長い製品寿命が知られており、長期供給が必須の産業、航空宇宙、防衛、医療、輸送業界において理想的なデバイスと言われています。
  • エネルギー効率
    TensorFlowやPyTorchのような機械学習のフレームワークを最適化するには、INT8量子化のような開発ツールを利用するのが成功への近道です。INT8量子化は、NVIDIA® TensorRTやAMD Xilinx® DNNDKのようなハードウェア ツールチェーンにも理想的な成果を発揮します。FPGAは、アプリケーションのニーズに合わせてハードウェアを調整できるため、より最適なINT8化が行え、メモリと処理要求の両方を削減しメモリと帯域幅利用を75%も縮小することもできます。これは、過酷なアプリケーションで電力効率要件を満たすために非常に重要であることが示されています。

そして、GPUやFPGAなどを運用していく上でデバイスの発熱温度はとても重要なファクターで、下記の表にて、nVIDIA T4はデバイス温度の上昇により内部クロック周波数を下げざるを得ず期待するパフォーマンスに影響が出るであろうことが推察できます。

しかし、FPGAで同様の検証を行った場合、(ここではAMD Xilinx社AlveoU50PCIeボードを使用)特定アルゴリズムのみを実装するメリットによって温度上昇が抑えられており、ユーザが期待するパフォーマンスを維持する事がわかります。

また、発熱温度は「パフォーマンス低下」以外にも「消費電力増大:半導体は温度に比例して電力を多く消費します」「経年劣化:高温で動作させるほど故障頻度が高くなりデバイスの劣化を早めます」といった様な影響を与えます。

FPGAのデメリット

FPGAを触る上でのデメリットは、高速化したいアプリケーション向けにHDL(Verilog,  VHDL)と呼ばれるハードウェア専用言語を使用し開発を行わなければいけないところです。

最近では高位合成ツールを使えばC・C++をHDL化することもできるのですが、ソフトウェアエンジニアが記述したC言語を高位合成ツールで変換してしまうと、期待通りの性能がでないHDLが生成される場合が多く見受けられます。

その様なこともあり、FPGAはHDLでの開発が得意なユーザのみが使うデバイスであるのが現状です。

FPGAをGPUの様に

簡単に使えるFPGAアクセラレータカードが登場

前述したデメリットは、FPGAアクセラレータカードであれば簡単に克服することできます。

なぜなら、ソリューションベンダーが機械学習やリレーショナルデータベースなどの用途向けにFPGAアクセラレータカードを合わせたアルゴリズムコア(特定用途向けロジック回路)の提供を始めたからです。

ソリューションの実行方法はベンダー毎に異なりますが、基本的にはFPGAアクセラレータカードとソリューション用アルゴリズム、ドライバーがあれば簡単に既存アプリを変更することなくFPGAアクセラレータカードで実行する事ができます。

FPGAソリューションの事例紹介

ここでは、前述のFPGAアクセラレータカードを利用した開発環境の一例として、機械学習向け高速推論エンジンである Mipsology社のZebraを紹介します。

FPGAは、以前から低遅延、消費電力、堅牢性などの理由から機械学習推論に向くデバイスであると言われてきましたが、機械学習推論向けにFPGAが広まることはありませんでした。

それは、アプリケーションエンジニア、データサイエンティストが考えたニューラルネットワークモデルをFPGA用に作り込むことが出来なかったからです。

そこでMipsologyは、「CuDNN/Cudaのようなソフトウェアライブラリがサポートされたことが、nVIDIA GPU が機械学習に多く利用されるようになったが要因のひとつである」ことに着目し、FPGAでも同様の事が可能なZebraソリューションを完成させました。

このZebraは、CuDNN/Cudaライブラリと同等のlibZebraという推論に最適化されたライブラリを持ち、同じコード、フレームワーク、同じOS上で、CPU、GPUで動作するAIのアプリケーション、ニューラルネットワークを、FPGAを設計することなく簡単にFPGA上で動作可能にするソリューションです。

物体検出NN実行時のGPUとの比較

最新の物体検出のニューラルネットワークのYolo5をAMD Xilinx社がリリースしている最新のFPGA であるVersal® ACAPが搭載されたPCIeボードのVCK5000で比較を実施したところ、

608×608の画像サイズの1フレーム処理を行うのに、nVIDIA V100(b32)では0.9msかかっているものが、VCK5000では0.04ms(INT8)の結果が得られました。

b32とINT8処理と違いはありますが、最新のFPGAと前述したMipsology社のZebraは低遅延を求めるユーザに最適な組み合わせと言えるかもしれません。

また、Top値を考えた場合にnVIDIA V100は130TOPSで、最新のFPGA(AMD Xilinx VCK5000)は145TOPSとなっており、差はほとんどありませんが

処理結果として22.5倍(0.9ms / 0.04ms = 22.5)となっていることから、nVIDIA V100に比べてVCK5000とZebraは効率的にニューラルネットワーク推論を行っていると言えるでしょう。

ここで、GPUユーザの方々は、INT8で演算しているZebraの推論の精度について心配されるかもしれません。

しかし、Mipsology社は特許を取得した量子化エンジンを用いて、再学習の必要なく「GPUの結果と1%未満の精度」を実現しています。

次回予告:FPGAソリューションによるAIモデルの簡単実行とユースケース

AI・機械学習領域での注意点として、ライブラリやフレームワークが頻繁にアップデートされる傾向にあり、プログラミング言語やOSのバージョンとの組み合わせの相性から、不用意にyumやpipを実行した結果、昨日まで動いていたプログラムが、突然動かなくなる、という経験をした技術者も多いと思います。

今回取り上げたZebraは殆どのAIニューラル・ネットワークに使用されるレイヤー毎に最適化されたライブラリを持ちますので、日々進化する新しいニューラル・ネットワークにも対応可能という特徴をもっています。

次回はFGPAソリューションによるAIモデルの実行方法ならびにユースケースをご紹介します。