ニュース

Xilinx、FPGAをAI用アクセラレータにする統合ソフトウェア環境「Vitis」

~10月末より無償提供

7nmで製造されるFPGA「Versal」のチップを掲げるXilinx 社長 兼 CEO ビクター・ペン氏

 FPGA(Field Programmable Gate Array)を開発/提供するXilinxは、10月1日~10月2日(現地時間)に同社の年次イベントとなる「XDF(Xilinx Developer Forum) Americas 2019 (XDF 2019)」を、米カリフォルニア州サンノゼ市にあるFairmont San Joseで開催した。

 10月1日の午前9時(現地時間)から行なわれた基調講演では、Xilinx社長兼CEOのビクター・ペン氏が、同社のFPGAを活用して深層学習の推論などを効果的に行なう統合ソフトウェア環境「Vitis」(バイティス)を発表した。

 VitisとそのライブラリであるVitis AIを活用することで、TensorFlowやCaffeなどの一般的なフレームワークを利用しているプログラマーが、FPGAに関する知識がなくても簡単にFPGAを利用して深層学習の推論を行なうことが可能になる。

 Xilinxによれば、Vitisは10月末から提供開始される予定で、XilinxのFPGA製品(AlveoやZynqなど)を購入、ないしはパブリッククラウドサービス経由などで利用しているユーザーであれば、無償で利用することができる。

従来はASICにする前のテスト用として利用されてきたFPGAだが、現在はリアルな演算用として利用されている

PCI ExpressのFPGAアクセラレータカード「Alveo」を掲げるXilinx社長兼CEO ビクター・ペン氏

 FPGAは、プログラムにより定義が可能な論理ブロックが用意されており、プログラム(HDL: ハードウェア記述言語)によってさまざまな論理回路を構成することができる。

 たとえば、CPUのようにシリアルな処理が得意な論理回路を定義して演算したり、GPUのような並列処理が可能な論理回路にしてみたりなど、プログラムによりさまざまな使い方が可能になっている。

 定義できるのはそうした論理回路だけでなく、メモリ的に利用できるブロックも用意されており、それをキャッシュとして使ったり、メインメモリの一部として使ったりというように、メモリ階層すらも定義することができるのが大きな特徴だ。

 このため、FPGAは半導体メーカーがSoCやASIC(Application Specific Integrated Circuit)を設計して開発する時のテストチップとして使われたり、少量生産のASICを開発してウェハで生産する代わりに、FPGA+HDLで代用するという使い方がされている。

 Xilinxは大手半導体ベンダーとして知られており、FPGA市場では、Alteraを買収したIntelとシェアを2分している最大手ベンダーとなる。

 近年では、IntelのXeon+Altera由来のFPGAが1パッケージで提供されるなどのかたちで提供される場合もあるし、Xilinxが提供しているZynqやIntelのStratixのように、Arm CPUとFPGAが1チップのSoCというかたちで提供されるようになり、OSの起動はArm CPUなどで行ない、FPGA部分は特定用途向け、たとえばDSPのように音声を処理したり、GPUのように並列処理ができるようして画像処理を行なわせるなどの使い方が増えている。

 このように、FPGAは従来のテスト用のチップという使い方だけでなく、一種のアクセラレータとして使われる例が増えている。

立ち上がるドメインスペシフィックアクセラレータの市場、とくに深層学習向けが注目されている

FPGAを利用する統合ソフトウェア環境となるVitis

 こうした特定用途に使われる論理回路のことを、米国の半導体業界では「ドメインスペシフィックプロセッサ」や「ドメインスペシフィックアクセラレータ」と呼んでおり、現在それが1つのトレンドになっている。

 18カ月から2年で半導体の性能が倍になるという経済原則である「ムーアの法則」が、提唱したゴードン・ムーア氏が起業したIntelですら実現するのが難しくなっているという現状のなかで、次の性能向上の手段がドメインスペシフィックプロセッサであるとして注目を集めているのだ。

 そうしたドメインスペシフィックアクセラレータの代表例として挙げられるのが、GPUだ。より具体的に言うなら、NVIDIAのGPU+CUDAと言っても良いだろう。

 よく知られているように、NVIDIAのGPU+CUDAの組み合わせは、機械学習/深層学習を活用したAIの学習に活用されている。

 深層学習で利用されているDNN(Deep Neural Network/人間の脳を模した階層)の学習(DNNに犬は犬、猫は猫ということを教えていくプロセスのこと)には、CPUなどで行なうと膨大な時間がかかる。それを並列処理が得意なGPUにやらせると、数カ月かかっていたのが1日で終わるというような大幅な時間短縮になったため、今では学習がGPU+CUDAで行なわれているといっても過言ではない状況になっている。

 GPU単体でもグラフィックスの描画にも使えるし、並列演算などにも使えるが、CUDAとNVIDIAが提供しているライブラリを活用することで、GPUをAIの学習という特定用途に活用できるようになっているのだ。

Vitisの仕組み

 今回Xilinxが提供を発表したVitisも、考え方としてはCUDAにかなり近いものだと言って良い。CUDAがGPUの違いを吸収して、どのGPUでも同じCUDAコードのソフトウェアが動くように、Vitisでも異なるFPGAの違いをVitisが吸収してする仕組みになっている。

 なお、通常であればプログラマーがHDLの知識を持って、HDLによりFPGAをどのように構成するかをプログラミングする必要があるが、Vitisではそうした部分をすべて吸収する。

 つまり、ソフトウェアからはVitisを通して見ることで、そこにドメインスペシフィックアクセラレータがあるように見える仕組みだ。

ライブラリの1つとしてVitis AI

 さらに、XilinxはVitis AIという特定用途向けのライブラリも合わせて提供する。オープンソースでGitHubなどに公開されるライブラリの一部で、AIに特化したものとなる。

 一般的にAIのプログラムを設計するプログラマーは、TensorFlowやCaffeといった深層学習のフレームワークに関しての知識はあるが、ハードウェアに関してはあまり知識がないということが多い。

 実際CUDAを利用しているプログラマーも、NVIDIAの最適化ツールなどを利用して最適化しているだけで、GPUのハードウェアのことはよくわかっていないというのが一般的だ。Vitisでもそれと同じように、ハードウェアの部分はVitisが隠蔽してくれるので深く知っている必要はない。

Vitis AIではTensor FlowやCaffeといった深層学習のフレームワークをサポートする

 ただ、Vitisを導入してFPGAに最適化することを選ぶ、それだけでFPGAに最適化したTensorFlowやCaffeを使ったAIプログラムを作ることができる。そのためのソフトウェア統合環境となる。

 XilinxによればVitisは10月末までに提供が開始される予定で、同社のFPGAを使っているユーザーであれば無償で利用でき、かつライブラリはオープンソースで提供される。

FPGA+Vitis+Vitis AIの組み合わせが深層学習推論用のドメインスペシフィックアクセレータに

XilinxのVitisのデモ、Zynq上で画像認識のソフトウェアがFPGAで動いている

 XilinxはこのVitisとVitis AIのライブラリを、おもに深層学習の推論用として提供していく計画だ。

 データセンターで行なわれる深層学習の学習向けソリューションは、現状NVIDIAの独占状態となっており、それを覆すのはかなり難しいと考えられているが、エッジ側や音声認識などのアプリケーション向けにクラウド側で利用される推論に関しては、現状は一部スマートフォンなどで専用のアクセラレータが利用されている以外、ほとんどの処理がCPUで行なわれており、推論のドメインスペシフィックアクセラレータでの事実上の標準はできあがっていない状態だ。

 このため、NVIDIAもGPU+CUDAを利用した推論向けの開発キットになるCUDA-X AIを、3月にサンノゼで行なった「GTC 19」で発表(別記事参照)したり、Intelがエッジ推論用のドメインスペシフィックアクセラレータになるNervana NNP-I(別記事参照)など、各社とも推論用のソリューションを拡充している。推論が次の主戦場だと考えているからだ。

 つまり、Xilinxも今回のVitis+Vitis AIの導入でその列に加わったと言えるだろう。

ASICやCPU/GPUでは機能がフィックスされているので、アプリケーションによって実行効率が異なる
FPGAではハードウェアを柔軟に構成を変えることができるのでアプリケーションに合わせて効率を上げることができる

 では、GPUなどに比べてXilinxのFPGAを採用するメリットはなんだろうか?

 今回のXDF 2019で、Xilinxソフトウェア・AI製品マーケティング担当副社長のラミーネ・ローン氏は、「CPUやGPUでAI処理を行なう場合、アプリケーションの処理によってはリソースの利用率が上がらない場合がある。CPUやGPUは演算ユニットの構成が固定されており、メモリの階層も変えることができないからだ。それに対して、FPGAでは演算ユニットもメモリ階層も処理に合わせて最適化していける」と述べ、アプリケーションが必要とするニーズに応じてFPGAを最適化できることがFPGAのアドバンテージだとした。

 そしてその最適化は、すべてVitisが自動で行なうためプログラマーが意識する必要はないのもメリットと言えるだろう。

 なお、プログラマーがFPGAに精通しており、自分でHDLを書けるなら、もちろんこれまで通りHDLで自分で最適化して、その上で動くプログラムを自分で書くということももちろん可能だ。

 しかしそうした知識がなくても、Vitisを導入さえすれば、エッジデバイスのFPGAチップ、あるいはオンプレミスのFPGAアクセラレータやクラウドのFPGAアクセラレータなどを利用して、TensorFlowやCaffeなどのフレームワークを活用して深層学習の推論の演算を行なうことができる、それがVitisのメリットなのだ。

アプリケーションはエッジからデータセンターまで、クラウドDL推論でのXeonの牙城を崩せるかに注目があつまる

Xilinxの処理は終わっているが、NVIDIAの方はまだ準備中

 XilinxはこうしたFPGA+Vitisの応用事例として、深層学習を利用した画像認識のデモを行なった。しかも、目下の競合と思われるNVIDIAとの比較動画を公開した。

 動画では、NVIDIAのGPU+CUDAを利用した場合に比較して、より短時間で画像認識が実現できる様子がアピールされた。

Samsung Electronics ネットワークビジネス戦略担当副社長 ウォンニル・ロー氏が5Gのアプリケーションを説明

 今後は、たとえば自動運転やADAS(先進安全運転機能)を実現する深層学習を利用した画像認識エンジンとして採用されたり、スマートシティーを実現するセキュリティカメラの画像認識ユニットとしての採用などが期待される。

 XDF 2019の基調講演には、具体的な顧客の例として日本の日立オートモーティブがゲストとして招待され、同社がXilinxのFPGAを搭載したADASシステムを、Vitisを利用して開発していることが表明された。

日立オートモーティブがXilinxのFPGAを同社のADASシステムに対応

 5Gも新しいアプリケーションになる。XDF 2019の基調講演にはSamsung Electronicsが招待されており、同社が米国や韓国などで提供する5GのベースステーションのソリューションにXilinxのFPGAを採用していることを明らかにしている。

 日本の通信キャリアでも、今後5Gのサービスを提供する予定の楽天が、IntelのXeon+Altera FPGAを採用することを明らかにしており、Xilinxとしてもそうしたアプリケーションを日本の通信キャリアに売り込んでいきたいところだ。

 また、オンプレミス用やクラウド用として販売されているFPGAアクセラレータやそれを利用したパブリッククラウドサービスなどと組み合わせることで、深層学習の推論機能を利用する応用事例の代表例と言えるAppleのSiriやAmazon Alexaなどの音声認識機能を高めることに利用されたり、翻訳機能、自然言語機能などの実現に活用されることになる。

 現在、クラウド向けの深層学習の推論市場では、現在多くがCPU(具体的にはIntelのXeon)ベースになっており、その市場を深層学習学習向けで独占的な市場を持つNVIDIA、そしてIntel自身も推論専用のドメインスペシフィックプロセッサを投入してシェアの維持を狙っている。

 そこにXilinxもVitisでソリューションを加速してシェア獲得を狙っていくことになるため、今後は深層学習の推論向けドメインスペシフィックアクセラレータを巡る競争が激しくなっていきそうだ。