Enabling FPGAs in Hyperscale Data Centers

論文解説記事です。
IBM Research Zurichの”Enabling FPGAs in Hyperscale Data Centers”を取り上げます。IEEE掲載が2015年なので、かなり以前の論文ですが、Heterogeneous Computingの次にDisaggregated Computingが言われ始めて、FPGAもComputing Resourceの一つとしてオンデマンドに使える世界を目指そう、という研究の大御所がIBM Research Zurichで重要な論文を多数発表しています。

ここでは、従来PCI-express Busによって接続されていたFPGAデバイスを、スタンドアロンでデータセンターのネットワークに直接つなぐことで、ホストPCと一対一でなければならないなどホスト構成からの呪縛を解き、リソースを集中管理するためのアーキテクチャを提案しています。ここで、ネットワークアタッチドFPGAという言葉を使っています。

ネットワークアタッチドFPGAのアーキテクチャは以下です。

FPGAのFabricは3つのレイヤで構成されます。
1) User Logic
FPGAアプリケーションを実行するためのFPGAの領域。物理FPGA上に仮想FPGA (vFPGA) を複数実装できる。実装方法はパーシャルリコンフィグレーションを使う。

2) Network Service Layer
ネットワーク越しに、集中管理ホストからコマンドを受けるために、ネットワークの機能を搭載している必要があるので、Ethernet MAC及びL3-L4, つまりIP/TCP/UDPのプロトコルを実装します。また、テナント毎にisolationするためのOVNのトンネルエンドポイントなども実装します。

3) Management Layer
メモリ(DDR)を複数のvFPGA使うためと、リソースの管理 (デバイスのディスカバリ、登録、FPGAリコンフィグレーションなど) を、集中管理ホストとやりとりする機能を持ちます。これは、ソフトコアもしくはZynq上のARMのようなハードコアプロセッサで実現すると書かれています。

後半は、OpenStackのフレームワークを使って、FPGAをオンデマンドで借用したりデプロイする方法が提案されていますが、詳細は割愛します。

起動時にはManagement Layer部に、既定のIPアドレスを振って、vFPGAが使えるようなると、そこにアプリケーション用のIPアドレスを付与するとあります。その他にも必要な機能は、ホストマシンとVMになぞらえて考慮されているのが分かりやすいです。

一読してちょっと厳しいなと思うのが、vFPGAへのデプロイ時、現在のFPGAの技術だと、その都度パーシャルリコンフィグレーション用のビットストリームを合成しなくてはならない点です。Dynamic Partial Reconfiguration (DPR) は、少しずつ進化している点もあるのですが、やはり物理的な制約を抽象化することに成功はしておらず、合成のプロセスはほとんど全てやり直しという状況です。

さて、いまだにFPGAを仮想マシンのように貸し出すプラットフォームは商用化はされていません。色々な課題があり実現されていないわけですが、IBM Researchは継続して、Disaggregated FPGAに関する先駆的な提案や実験を行っています。出来れば他の論文も紹介する予定です。

貞末多聞

Reference
Weerasinghe, Jagath, et al. “Enabling FPGAs in hyperscale data centers.” 2015 IEEE 12th Intl Conf on Ubiquitous Intelligence and Computing and 2015 IEEE 12th Intl Conf on Autonomic and Trusted Computing and 2015 IEEE 15th Intl Conf on Scalable Computing and Communications and Its Associated Workshops (UIC-ATC-ScalCom). IEEE, 2015.