ここで話をProject Catapultに戻そう。
Intelが社運をかけて2015年にFPGA業界大手の一角であるAlteraを買収したように、プロセッサを構成する論理回路を自在に変更できるFPGAは大きな注目を集めている。
しかし、この背景には処理すべきデータ量が年々増大していくという問題がある。しかも、今後は自動運転の世界で求められる画像認識や衝突予測などの分野での即時応答性のニーズへの対応も考えれば、処理の遅延は致命的だ。大量のデータを効率よく、しかも素早く処理できるアーキテクチャの開発が急務となっている。
汎用のプロセッサアーキテクチャではなく、より用途に特化した処理をこなすための仕組みとして、TPUのような専用プロセッサや、今回のテーマであるFPGAのさらなる活用が出てきたわけだ。
Microsoftによれば、データセンター向けのサーバにFPGAを組み込む「Project Catapult」を開発していたのは、プロトタイピングも含めれば6〜7年間にもわたる非常に長い道のりだったようだが、実際にこの成果が初めて公表されたのは2016年9月に米ジョージア州アトランタで開催された「Ignite 2016」でのことだ。
「AIスーパーコンピュータ」のような名称で紹介されたProject Catapultは、「バージョン2」にあたる専用ボードを組み込んだシステムが現地で紹介されている。Microsoft ResearchのNExTプロジェクトでディスティンギッシュトエンジニア(Distinguished Engineer)であるダグ・バーガー氏の手で披露されたデモでは、「戦争と平和」の全文翻訳でFPGA利用時とAzureの一般的なサーバとでどの程度の時間がかかるかが比較された。
では、実際にProject CatapultはMicrosoft内部でどのように活用されているのだろうか。その1つが、2017年5月に米ワシントン州シアトルで開催された開発者向けイベント「Build 2017」における「Inside the Microsoft FPGA-based configurable cloud」というセッションで紹介されている。
「SDN(Software Defined Network)」というネットワーク内のデータの流れをソフトウェアで自動制御できる仕組みがあるが、これをFPGAを搭載した「Smart NIC」でさらに高速化しようというものだ。
AzureデータセンターではサーバごとにHyper-Vの仮想マシン(VM)が動作し、このVMは仮想的なスイッチを通してSDNに対応している。この処理をSmart NICを用いることで、サーバの処理全体をより高速化しようというのだ。
Microsoftによれば、2015年後半以降に新規展開されたAzureサーバについては全てこのSmart NICが搭載されており、さらにOCP(Open Compute Project)向けに同社が提案した「Project Olympus」向けにも50GbE対応のSmart NICを紹介している。
Smart NICを通じて展開されたFPGAは、前述の「ハードウェアマイクロサービス」のような形で、さまざまな計算処理の高速化に寄与している。「SDNオフロード」と呼ばれるSDNソフトウェア処理の軽減の他、DNNの高速化、BingのWeb検索ランキング処理、SQLの処理などはその一例だ。
特徴として、互いに接続されたFPGAは、サーバのCPUが実行されるコンピュータの処理プレーンとは別のプレーンとして存在し、CPUの介入なしに直接FPGA上のハードウェアマイクロサービス(HWMS)を利用できる点にある。
従って、待ち時間や余計な処理が走らず、さらにFPGAリソースの有効活用が可能なため、単位時間内により多くの処理をこなせるメリットがある。Bingでの活用は同社AIブログの中で2016年10月に紹介されているが、HWMSを最大限活用することでFPGAのリソースが余るため、これをさらに別の処理へと振り分けることが可能だという。
Copyright © ITmedia, Inc. All Rights Reserved.