Microsoft は、再プログラム可能なチップを自社のデータセンターの内部ネットワークに直接接続し、Web アプリケーションのパフォーマンスを向上させています。
Windowsの巨人であるGoogleは、この技術に非常に感銘を受けており、カスタマイズ可能なハードウェアが、現在自社のサーバーに搭載されているIntelの主力プロセッサよりも多くの計算処理を最終的にこなせるようになると考えています。これは、Googleが自社のデータセンターでIntel以外のCPUを稼働させる意向を示唆している中での発表です。
マイクロソフトは、 「クラウドスケールのアクセラレーションアーキテクチャ」と題された研究論文の中で、フィールドプログラマブルゲートアレイ(FPGA)を自社ネットワークに直接組み込むことで、Bing検索クエリの返答をはじめとするサービスのパフォーマンスがどのように向上するかを説明しています。この論文は本日オンラインで公開され、土曜日に開幕したIEEEコンピュータソサエティの第49回マイクロアーキテクチャシンポジウムで発表される予定です。
FPGAは、再プログラム可能なチップで、意思決定回路がぎっしり詰まっており、これらを相互にリンクさせることでシリコン上にアプリケーションを構成できます。アレイは、必要に応じて組み立てて新しいものを作ることができるレゴブロックの箱のようなものだと考えてください。ただし、おもちゃの宇宙ステーションや海賊船を作るのではなく、高速でデータを処理できる特殊なハードウェアを作ることになります。理想的には、汎用プロセッサ上で実行されるソフトウェアよりもはるかに高速です。
マイクロソフトは2010年からProject Catapultを通じてFPGAの活用を検討してきました。先月、AzureクラウドにIntel Altera FPGAチップを採用していることを公表しました。
ロジックアレイは、ホストサーバー内のドーターボード上に、専用のRAMとともに搭載されています。これらのボードは、PCIe Gen3インターフェースを介してホストCPUに接続されます。また、40Gbps QSFPリンクを介して近隣のスイッチに直接接続され、ネットワークとホストサーバーの従来型NICとの間でパケットの送受信を行います。このように、FPGAはアクセラレータとして機能し、マシンに出入りするデータを直接操作します。
Microsoftの設計では、FPGAを受信リクエストと送信データの直接パスに配置することで、NICからFPGAへ、そして内部システムバスを経由して再びFPGAへデータを転送する手間を省きます。アレイはシリコン上ですべてのタスクを単独で処理することも、必要に応じてホストのIntel x86プロセッサに情報を渡して処理させることも、転送中にデータに対して追加の操作を行うこともできます。
たとえば、FPGA は、データがボックス上で実行されているアプリケーションに到達する前に、その場でデータを暗号化および復号化できます。
FPGA-CPU-ネットワーク設計の基本概要...出典: Microsoft
マイクロソフトによると、その結果、この設計を採用したすべてのクラウドサービスのレイテンシが短縮されたという。「FPGAがネットワークスイッチと直接通信できるようになったことで、各FPGAはCPUソフトウェアを介さずに、ネットワーク経由でデータセンター内の他のすべてのFPGAと直接通信できる」とマイクロソフトの研究者は論文に記している。
「この柔軟性により、FPGA のグループをサービス プールにまとめることができます。」
Microsoftの研究者は、Bingウェブ検索データセンターでこの手法を採用した結果、サーバーが高負荷の検索クエリをより迅速に処理できるようになり、必要なマシン数も削減できることを発見しました。FPGAアクセラレーション設計は、「世界中のMicrosoftの実稼働データセンターにハイパースケールで導入されている」とのことです。
レドモンドの研究者たちは、FPGA の統合により、Web アプリケーションであれ、ソフトウェア定義ネットワークなどのローカル クラウド タスクであれ、他のクラウド コンピューティング プラットフォームでも同様の結果が得られると考えています。
「Configurable Clouds 設計により、再構成可能なロジックはデータセンターの第一級のリソースとなり、時間の経過とともにデータセンターの CPU よりも多くの計算作業を実行するようになる可能性もあります」と Microsoft は結論付けています。
ちなみに、Intel は FPGA を内蔵した x86 Xeon プロセッサの開発に取り組んでいます。®