2019年06月24日 08時00分 公開
特集/連載

GPUより低コスト、ハイパフォーマンスのFPGAが抱える“泣きどころ”FPGA導入の高い壁

Amadeus IT Groupとスイス連邦工科大学の共同研究により、FPGAはGPUよりも4倍高速で、同じワークロードを7分の1のコストで実行できることが分かった。AIにとって非常に有効だが、FPGAには弱点もある。

[Cliff Saran,Computer Weekly]

 人工知能(AI)の実行環境としてGPUをはじめとするハードウェアが使われている。最近は、より高いパフォーマンスを実現するFPGA(Field Programmable Gate Array)も使われるようになった。

 「ここ10年の間にムーアの法則は限界を迎えた。CPUを利用する全ての企業がこの限界に直面し、アプローチの変更を迫られている」。こう語るのは、Amadeus IT Groupで応用研究センターのシニアマネジャーを務めるピエール=エティエンヌ・ムレー氏だ。

 ハードウェアのイノベーションへの意識は高まっている。その立役者がGPU、FPGA、ASIC(Application Specific Integrated Circuit)だ。これらは演算リソースを集中的に使うAIアプリケーションの処理を加速するといわれている。

 Amadeusは、スイス連邦工科大学(ETH)チューリッヒ校のハードウェアエンジニアチームと協力して、機械学習に基づいて推論するアプリケーションへのFPGA適用について調査した。

FPGAを使う理由

 従来のCPUでAIアプリケーションを実行してレイテンシ問題が発生した場合、解決手段としてまず目を向けるのがGPUだ。これでレイテンシ問題は解消するものの、一般にGPUは消費電力が多い。そのため電力の点で見ると非効率的だとムレー氏は指摘する。課題になるのは、AIアルゴリズムの演算処理を迅速に実行するだけでなく、電力を効率的に使って高いパフォーマンスを実現することだ。

 「FPGAの消費電力はGPUよりも格段に少ない。この特性により、FPGAはAIを効率的に実行する優れた候補になる」(ムレー氏)

 電力効率以外の点でも、GPUは大量のデータを処理するAIアプリケーションにとって最善の選択肢ではないとムレー氏は指摘する。「GPUは1つの処理を並列に行う。つまりあるデータセットに対して実行できるGPU命令は1つに限られる」

 同氏は次のように補足する。「FPGAは粒度に制限がない。複数のデータに対する異なる指示を、並列に処理できる」

 これはGPUでは得られないメリットだ。だがデメリットもある。

 これはGPUでは得られないメリットだ。だがデメリットもある。スキルの点で見ると、GPUプログラミングは比較的成熟している。その方法を理解している人は多く、ソフトウェア開発ツールも豊富にある。「FPGAの柔軟性はGPUほど高くなく、プログラミングは古めかしい」とムレー氏は言う。

 その要因はFPGAが抱えるレガシーにある。FPGAはハードウェアエンジニアが集積回路の試作品を作るために使われていた。ハードウェアエンジニアはシリコン上に集積回路を作成する前に、FPGAでデザインをテストした。FPGAのプログラミングはGPUよりも複雑で、ソフトウェアエンジニアリングと異なるマインドセットが必要になるとムレー氏は指摘する。

 ただし、AmadeusとETHの共同調査で分かったことがある。FPGAで実行するようにアルゴリズムをプログラミングすると、非常に高度なGPUで同じプログラムを実行するよりもずっと良い結果が得られることだ。

迅速に判断する

 「この調査では、Amazon Web Services(AWS)でCPUインスタンス、GPUインスタンス、FPGAインスタンスを使ってデシジョンツリー(決定木)アルゴリズムを実行した。各インスタンスで同じアルゴリズムを実行したところ、FPGAインスタンスはCPUインスタンスの130倍のスループットを実現した。GPUインスタンスと比較すると、FPGAインスタンスのスループットは4倍だった。つまり、FPGAインスタンスはGPUインスタンスの4倍のデータを処理できる」(ムレー氏)

 同じアルゴリズムをAWSで実行することで、AmadeusとETHの合同チームは大幅なコスト削減に成功した。FPGAインスタンスはCPUインスタンスやGPUインスタンスよりもコスト効率が良かった。ムレー氏によると、同じワークロードを実行した場合、GPUインスタンスはFPGAインスタンスの7倍、CPUインスタンスに至ってはFPGAインスタンスの28倍ものコストがかかったという。

 この調査で、FPGAがAIのデータを迅速かつコスト効率良く処理し、消費電力も抑えられる選択肢であることが分かった。「処理速度を上げられるアルゴリズムの種類についても見当が付いた」とムレー氏は語る。

FPGAの実態把握

 FPGAはソフトウェアエンジニアリングにおいては未開拓分野だ。最初に直面する課題は適切なスキルを持った人材の不足だ。

 Amadeusは大学でハードウェアエンジニアリングを学んだ人材を多数抱えている。

 「多くの人材が大学でハードウェアエンジニアリングを学んでいるため、社内には一定レベルの人材がそろっている。これまでこのスキルを活用する機会はなかった。だが、FPGAのプログラミングを行うスキルセットを現場で使う機会ができた。これにより、知識を新たにすることが可能になる」(ムレー氏)

 FPGAの時代はまだ始まったばかりだ。ムレー氏は、チップメーカーとスタートアップ企業がソフトウェアスタック、ツール、ライブラリを改良して、ソフトウェアエンジニアにとってFPGAのプログラミングが容易になることを期待している。

AWSでFPGAインスタンスのプログラミングを行う方法

 AWSでFPGAインスタンスを利用すると開発ツールスイートの「Xilinx Vivado Design Suite」が付いてくる。そう語るのはAmadeusのムレー氏だ。

 Xilinx Vivado Design Suiteには、デザインをシミュレーションしてFPGAにプログラムをアップロードするハードウェア合成エンジンとツールが用意されている。エンジニアは、ハードウェア記述言語を使用してFPGAのプログラミングを行い、それをFPGAのバイナリイメージファイルに合成する。このバイナリイメージがFPGAのプログラミングに使用されるファイルだ。

 AWSでFPGAインスタンスのプログラミングを行うのは、メモリにプログラムを配置するのにやや似ているとムレー氏は言う。

 プログラムを変更するには、ハードウェア記述言語を修正してバイナリイメージを合成し、FPGAのプログラミングをやり直さなければならない。プログラムのエラーを回避するためにFPGAのシミュレーションを行うことは可能だ。だが同氏の経験上、シミュレーションは非常に低速だという。

ITmedia マーケティング新着記事

news072.jpg

超リッチなイーロン・マスク氏の「言論の自由」は、あなたのそれと同じなのか?
Twitter買収の大義名分とされる「言論の自由」。しかし、同じことを語っているつもりでも...

news204.jpg

新卒の営業職が仕事をやりたくない時期、最多は「5月」 ―― RevComm調査
新卒営業社員は5月に最初の「壁」を感じるようです。

news069.jpg

「メタバース」でどうやってもうけるの? Meta(旧Facebook)が考える収益化への道
Metaの中核をなすメタバースプラットフォームのマネタイズ計画が明確になりつつある。高...