2016年11月30日(米国時間) 、米ラスベガスで開催されたAWSの年次カンファレンス「AWS re:Invent 2016」のアンディ・ジャシー(Andy Jassy)CEOによる基調講演では、数多くのサービスアップデートが発表されましたが、それらの中でひときわ目を引いたのがAmazon EC2の新インスタンスである「F1」インスタンスでした。現状ではまだプレビュー版ですが、ついにパブリッククラウド上でFPGA(Field Programmable Gate Array)をオンデマンドで利用できる時代がやってきたのです。
F1インスタンスでは単一ノードで最大8個のFPGAをプーリング(仮想的に接続)でき、ユーザは専用のFPGAやハードウェアを用意することなく、自分で設計したハードウェアアクセラレーションコード(AFI: Amazon FPGA Image)をかんたんに、しかも何度も(もしくは一度きりでも)クラウド上で実行できるようになります。金融、メディア、バイオといった業界で、ペタバイト級のデータを時間的制約のある中で分析したいという企業を中心に、すでにF1インスタンスの導入が進んでいます。
re:Invent 2016で発表されたAmazon EC2 F1インスタンスはユーザが記述したハードウェアアクセラレーションコードをクラウド上で実行できる。作成したAFIはマーケットプレイスで販売することも可能
F1インスタンスの導入を決定している企業の一部。バイオ企業のEdico Genomeは遺伝子配列の認証試験を効率化するためにF1インスタンスを導入、24時間かかっていた分析が2時間に短縮されたとのこと
このF1インスタンスを支えるFPGAが"オールプログラマブル"を標榜する「Xilinx 16nm UltraScale Plus FPGA」です。AWSが従来から強固なパートナーシップを築いているIntel(Altera)ではなく、Xilinx(ザイリンクス)のFPGAを選んだと聞いたとき、筆者は少々意外な印象をもちました。しかし、ここ1、2年、Xilinxはデータセンタービジネスに莫大な投資を続けてきており、競合に先駆けて20nm、16nmといったデータセンター向けの製品開発にフォーカスしてきました。そうした投資の結果が今回のAWSのF1インスタンスでの採用につながったといえそうです。re:Inventのすこし前の2016年10月にはBaiduのデータセンターでの採用も発表されており、「 クラウドに強いFPGA」としての実績を着々と積み上げています。
Xilinxは半導体企業としていちはやくファブレスモデルを採り入れたことでも有名ですが、クラウドにおけるFPGAのニーズが急激に拡大している現在、今度はどんな優位性でもって新たに市場のリーダーポジションを取ろうとしているのでしょうか。本稿ではXilinxがクラウド/データセンタービジネスにおいて掲げている「ハイパースケールデータセンター」戦略について、国内外での取材をもとにその概要をお伝えします。
クラウドにFPGAが求められるワケ
AWSが最初のクラウドサービスである「Amazon S3」を2006年にリリースしてからすでに10年以上が経過しましたが、この10年でクラウドが提供するサービスは劇的に増え、IoTやFinTech、ビッグデータ分析などクラウドが前提のトレンドも数多く生まれました。それと同時に、クラウドサービスを提供するベンダやデータセンター事業者には、従来のハードウェア性能では対応が困難なレベルのアプリケーション処理が求められるようになっています。マシンラーニング/ディープラーニング、リアルタイムでのリスク分析や高画質なビデオトランスコーディングなど、CPUに対して非常に大きな負荷のかかる処理を最小限のレイテンシでもって実行し、データセンター全体のスループットを高め、効率を上げる必要に迫られているのです。
そうしたトレンドにあって、注目されるようになった"アクセラレータ(特定のワークロードを高速化するチップ)"がFPGAです。FPGAの"F"はField=現場を意味しますが、文字通り、現場で論理回路をいつでも書き換えることができるのがFPGAの最大の特徴です。通常のCPUやGPU、またはカスタムASICといったアクセラレータではこれができません。かわりに、カスタムASICなどは特定のワークロード専用にハードウェア最適化が行われるのでパフォーマンスが非常に高くなります。一方、FPGAは実行するワークロードに応じて、1秒もかからずに回路を書き換えることができるので、データセンター全体のコスト削減や電力消費量削減に大きな効果を発揮します。
また、FPGAは通常、複数のチップをプーリングした状態で導入されるので、サポートするアプリケーションの幅が広いことも特徴のひとつです。多様なアプリケーションワークロードに柔軟に対応でき、コストを抑えながら、カスタムASICには劣るものの演算速度の高速化を実現する―"ハイパースケールなデータセンター"の運用を求められるようになったクラウドサービス事業者が、現実的な解としてFPGAを選ぶケースが増えるようになってきました。
プーリング構成を取れるFPGAはGPUやカスタムASICと比較してサポート可能なアプリケーションの幅が広い点が特徴。また、Xilinxは演算効率の高さでもFPGAがすぐれていると強調する
前述したように、XilinxのFPGAはBaiduのデータセンターにも採用されています。日本ではあまり知られていませんが、Baiduはクラウドサービス事業者のトップ7のひとつに数えられており、とくに画像処理や音声認識、自動運転車などに関連するマシンラーニングの研究開発ではGoogleやFacebookにも迫る投資を続けています。マシンラーニングに関わる人材も豊富で、現在、同部門のトップを務めるのはチーフサイエンティストのアンドリュー・エン(Andrew Ng)氏、かのGoogleのジェフ・ディーン(Jeff Dean)氏とともにGoogle Brainプロジェクトの中心的存在だった人物です。
AI/マシンラーニングの世界的研究者として知られるBaiduのチーフサイエンティスト アンドリュー・エン氏(左) 。みずから設立したCourseraの経営から離れ、2014年からBaiduでAI部門の指揮を執る
ではマシンラーニングに注力するBaiduがXilinxのFPGAをなぜ選んだのか、そのおもな理由は、マシンラーニングにおける「推論」の高速化/効率化にあります。推論では通常、その前のフェーズでニューラルネットワークのモデルに膨大なデータを使ってトレーニングを行いますが、推論を行うデバイス側の負荷を軽減するためにデータ型としてINT8が使用されることが多く、Baiduもこれにならっています。XilinxのFPGAはこのINT8に最適化されているので、トレーニングおよび推論の高速化/効率化を図ることが容易になっています。
マシンラーニングとデータアナリティクスにおいて、アクセラレータがサーバCPU(Intel Xeon)のみの場合と、FPGAでプール構成を取った場合の比較。FPGAは同じ性能を1/10のコスト(システムコスト、消費電力、ラックスペース)で実現できるという
Baiduのあるエクゼクティブは、データセンター全体のアクセラレータとしてXilinxのFPGAを採用したことで、現実的な電力レベルを維持しながら、低レイテンシで急増するワークロードに対応できているとコメントしています。単に速いだけではなく、データセンターをハイパースケール化するためには、バランスの取れたアクセラレータが必要とされていることがわかります。
アクセラレータとしてのFPGAがマシンラーニングやデータアナリティクスといった"ハイパースケール"なアプリケーションを実行する際、典型的なサーバCPUと比較して、ワットあたりの性能でどのくらい高速化できるかというXilinxの主張
FPGA関連の開発環境をひとまとめにしたアクセラレーションスタック
Xilinxは2016年11月14日、FPGAをベースにした「リコンフィギュレーション可能アクセラレーションスタック」を発表しています。これはマシンラーニングにおける推論、ビデオトランスコーディング、SQLによるビッグデータ分析など、クラウドネイティブなFPGAアプリケーションを開発するために必要な環境をひととおり提供するもので、開発ボード、リファレンスデザイン、ライブラリ、フレームワーク、OpenStackサポートなどが含まれます。開発ツールやライブラリはすべて業界標準のもので、アプリケーションの開発から導入までを最短ルートで進めていくことを目指しています。なお、OpenStackをサポートするFPGAは現時点ではXilinxのみで、4月にリリース予定の「OpenStack "Ocata"」より、OpenStack側からアクセラレータとしてのFPGAの管理とプロビジョニングを容易に行うことができるようになります。
Xilinxが発表した"リコンフィギュレーション可能アクセラレーションスタック"の構成。マシンラーニングやビデオトランスコーディング、データアナリティクスといったアプリケーションワークロードにハードウェアを最適化させるための開発環境がひととおり提供される
競合はIntel - 正式リリースが待たれる待たれる14nmの新FPGA
「XilinxのFPGAはマシンラーニングにおける推論で、競合の2 - 6倍の演算効率を実現している」― Xilinxのクラウドコンピューティング部門でディレクターを務めるアンディ・ウォルシュ(Andy Walsh)氏が言う"競合"とはずばりIntel + Alteraのことです。
Xilinx クラウドコンピューティング担当 ストラテジックマーケットデベロップメント ディレクター アンディ・ウォルシュ氏
Intelは2015年、2兆円近い金額を支払ってFPGAベンダのAlteraを買収し、これを母体にしてFPGAの開発に取り組んできました。現行モデルで20nmの「Arria 10」はCPU(Xeon)とFPGAをMCPで統合した製品で、XilinxのUltraScaleのように複数のFPGAをプーリングするタイプではありません。このためウォルシュ氏は「CPUパッケージにFPGAを集積すると、プーリング構成とは異なり、アプリケーション使用率が大幅に下がることになる」と批判しており、アクセラレータとして中途半端な役割しか果たせないと強調します。
一方、Intelが現在サンプル出荷中の「Stratix 10」は、IoTによるニーズの拡大をにらんだデータセンター向けの14nmのFPGAで、Intelが「業界最高の性能と電力効率」「 データセンター/クラウド事業者にかつてないパフォーマンスとイノベーションをもたらす製品」と強い自信をもって世に送り出そうとしているものです。ウォルシュ氏はこうしたIntelの主張に対し、少なくともマシンラーニングの推論(INT8を使用)においては、「 演算効率においてXilinxのほうが上」と反論しています。Stratix 10は2017年中に出荷が開始される予定ですが、正式リリース後にあらためて両者の性能を比較してみたいところです。
マシンラーニングの推論におけるXilinxのFPGAとIntel + AlteraのFPGAの性能比較。Xilinxは「2~6倍の性能差がある」と主張するが、Startix 10は現在サンプル段階なので、詳細は未定。リリース後の検証が待たれる
クラウドが多様化し、多くのアプリケーションワークロードが稼働するようになるにしたがい、ハードウェアの最適化が課題として議論されるケースが増えてきました。FPGAやGPUに対するニーズの増大もそうした影響を受けています。クラウドはハードウェアの呪縛からユーザを解放する存在と言われてきましたが、やはりクラウドであってもアプリケーションに適したハードウェア構成で動かしたいとユーザが思うのは自然の流れでしょう。アプリケーションやアルゴリズムに応じて自由に回路を書き換えられるオールプログラマブルなFPGA、そしてF1インスタンスのようなクラウド版FPGAの登場は、本当の意味での"Infrastructure as Code"の時代が到来したことのあらわれだといえそうです。