FPGAを利用したアーキテクチャ事例 ~筑波大学Cygnus~

FPGAを利用したアーキテクチャ事例 ~筑波大学Cygnus~

AIや機械学習が注目される中、アルゴリズムだけでなく、ビジネスと研究機関でもハードウェアが注目されつつある。ビジネス界では、マイクロソフトがBing検索システムにFPGAを採用したり、研究機関では筑波大学でFPGAを搭載したスーパーコンピュータ「Cygnus」の稼働を開始したり、とハードウェアによる高性能の実現がしている例もある。本記事では、Cygnusの特徴や計算アーキテクチャについて紹介する。

Cygnusとは

まず、筑波大学は、これまでGPUを搭載したHA-PACSや、メニーコアを搭載したCOMAを開発・運用した実績をもち、これらの後継として今回Cygnusというスーパーコンピュータを2019年3月から稼働を開始した。Cygnusは大規模な計算をGPUだけで十分ではなく、FPGAを相補的に利用することで、HPC環境を実現することをモチベーションの一つに置いている。特に注目したいのは、GPUとFPGAを混載するシステムにより、高い演算性能を担保する点が上げられる。

FPGAを採用した理由

FPGAを採用した理由をシンプルに表現すると、ソフトウェアに最適に合わせたハードウェア回路を設計することで、システム全体として高性能を実現できる可能性があるからだ。機械学習でよく利用されるハードウェアであるGPUは、ひとつの入力に対し並列に処理できる能力は高い(SIMD)が、アプリケーションによっては適さない場合がある。また、FPGAは自律した通信機構を持つ一方で、GPUと比較した際に、CPUに戻るオーバヘッドを抑えることも挙げられる。

Cygnusのアーキテクチャ

次にCygnusのアーキテクチャについて簡単に紹介する。CPU+GPU搭載ノードであるDeneb 48ノードと、CPU+GPU+FPGA搭載ノードであるAlbireo 32ノードの合計80ノード2種類の計算ノードからなるシステムである。DenebはCPU Intel Xeon Gold 6126 x2台とGPU NVIDIA Tesla V100 x4 台からなり、infiniBand接続でノード間が接続される。

cygnusのアーキテクチャ

Albireoノードは上記にNallatech 520N with Intel Stratix10 x2 台が搭載され、4つの100Gbpsのチャネルがあり、隣接ノードのFPGA同士が2次元トーラスの形で繋がっている。

cygnusのアーキテクチャ

これらのノードが、次のようなイメージでinfiniBandで接続される。

cygnusのアーキテクチャ infiniBand

適用事例

HPC環境の適用例として、宇宙の初期天体生成シミュレーションがある。空間に分布する光源からの影響に計算するART法と多数の光源からの影響をシミュレーションするARGOT法があり、それぞれ、GPUとFPGAを利用し、アプリケーションに応じた相補的に利用している。今後は、HPC環境にFPGAを搭載し、ハードウェアレベルでも最適にすることで、アプリケーションを最適化することも考えられそうだ。

感想

FPGAは、小規模な組み込みシステムとして利用されるデジタル回路のイメージであったが、今回のような大規模かつ高性能な計算機の一部に利用されていることを知り、意外に感じたのでこれからも注目したい。