研究Topics

高性能計算科学の未来を切り開く新たな扉:FPGA技術

藤田 典久 助教

(高性能計算システム研究分野)

 

藤田先生が所属する高性能計算システム研究分野の研究者は、計算機の性能をよりよくするために研究を行っている、いわば計算機開発の専門家です。

今回は藤田先生が専門に取り組んでいるFPGA(Field Programmable Gate Array)という、近年高性能計算システム研究分野で高い注目を集めている、新しいタイプの演算加速装置をご紹介します。

(2023.3.9 公開)

 

通信能力の高さが、FPGAの最大の特徴

コンピュータの演算処理装置というと、CPUやGPUが一般的に知られています。
CPUは汎用的な演算装置で、コンピュータからスマートフォンまで様々な機器に搭載され、計算を行なっています。GPUはゲームなどの3Dグラフィック処理を多用する機器で用いられてきたもので、CPUに比べて画像処理のパフォーマンスが高いことで知られています。

また、近年ではAIに関する計算を高速に行うために用いられています。機械の脳みそともいうべき中枢部には、これら集積回路(注1であるCPUやGPUが用いられていますが、その役割として重要なことが2つあります。1つは、演算処理で、もう一つは、他のコンピュータとの「コミュニケーション」という役割です。スーパーコンピュータでは複数のコンピュータを使って複雑で大規模な計算を行います。そのため、演算と通信を同時に速く処理していくことが、計算性能を加速させる上でとても重要となります。

さて話題のFPGAはというと、実は演算のパフォーマンスではそれほど他の演算加速装置の性能を上回ることはありません。
ではなぜ多くの研究者が注目しているのかというと、コミュニケーション能力が高いことにあります。コミュニケーション能力と聞くと、社会の人間同士にも言えそうなスキルですが、ここでいうコミュニケーションはコンピュータ間で情報をやり取りすることを指します。「スーパーコンピュータ」と聞くと、とても高性能な1台の計算機をイメージされることが多いかもしれませんが、現代のスーパーコンピュータは、図1にあるように複数のコンピュータを用いてシステムを構築しています。コンピュータの数は様々ですが、大規模なスーパーコンピュータでは10万を超えるコンピュータが用いられています。そして、コンピュータ間を高性能な通信網(ネットワーク)で接続しています。複数のコンピュータがネットワークを通じてコミュニケーションを取り、協調して1つの問題を解いていくのがスーパーコンピュータです。

図1

現在、大規模なFPGAクラスタはほとんど世の中に存在していません。
しかしこの通信システムの大きなアドバンテージを活かすと、より高性能なクラスタマシン、ひいてはスーパーコンピュータができる可能性を秘めているのです。藤田先生はFPGAの特性を活かした大規模なFPGAクラスタシステム構築のため、独自のCIRCUS(Communication Integrated Reconfigurable CompUting System)というシステムを提案しています。通信と演算をFPGAの中で1つに融合して、統一的に扱うパイプラインを構築することで、FPGAクラスタ上でより高性能な科学技術計算を実現できます。FPGAをいくつも並べたシステムを作ると、なぜ優れたマシンとなるのかを簡単に説明します。

図2

図3

コンピュータをネットワークに接続するには、通信を司るICチップを使います。通信用チップは、コンピュータの中で通信に関する専門的な処理を担います。そして、最終的に電気や光をケーブルの中を通すことでコンピュータ間の通信を行います。少しデフォルメしたイメージを図2と図3にのせます。

このように従来のでは、外部から接続されるケーブルとの通信は、CPUと別のチップが担当していました。しかしFPGAの場合は、この通信機能がすでに内蔵されているので、他のFPGAとの直接通信が可能となります。高性能計算で使われている演算加速装置の中でこのような特徴を持つのはFPGAだけであり、他の演算加速装置にはない特徴です。藤田先生は、このFPGAを複数並べた、いわゆるクラスタシステム(注2というものを構築する研究を行っています。

図4:FPGAのクラスタのイメージ図(ルーター機能の説明)

藤田先生が研究しているFPGAクラスタでは、図4のように縦横にFPGAを複数並べ、相互に高速な光通信ケーブルで接続してネットワークを構成します。このようなネットワークにおける通信では、たとえば図4のようにAからCまである情報を伝えようとしても、AとCは直接つながっていません。間にいるBが通信を中継しなければAとCが通信することはできません。このような中継機能をルータと呼びます。通常、ネットワークにはスイッチという専用の機器があり,通信の中継を行なって、多数のコンピュータ間で通信を行っています。しかし、FPGAが持つ通信性能を最大限活かすために、CIRCUSではFPGA間を直接接続し、スイッチを使わないネットワークを用いています。そして、CIRCUSの一部としてルータ機能を実装し、直接繋がっていないFPGA間でも高速な通信を実現しています。スーパーコンピュータでは、コンピュータ同士を数千から数万という規模で接続します。そのため、通信速度(性能)がシミュレーションなどを行う際の計算性能に大きな影響を与えます。FPGAは、機器それ自体に通信処理を行う機能が内蔵されており、非常に速度の速い通信が可能です。計算科学研究センターではFPGAの通信性能に注目し、FPGAを高性能計算で用いるために、さまざまな研究を行なっています。

また、演算装置では、どのような計算を行うか、何をどうするか命令を与えなければなりません。コンピュータに行って欲しい処理を開発する作業を「プログラミング」と言います。
プログラミングにはさまざまなプログラミング言語を用いて行います。CPUなどに比べて、FPGA開発においては、プログラミングをするための言語が開発の障害となっていました。FPGA上で動くプログラムの開発は難しく、FPGAに関する専門的な知識をもつ人でなければ開発を行えませんでした。しかし近年、FPGA開発環境も進歩しており、よりプログラミングしやすい開発環境へと発展しています。藤田先生のCIRCUSでは、OpenCLというプログラミング言語を用いる開発環境で通信を含めてFPGAプログラミングを統一的に扱っています。これがシステム開発におけるデバッグ注3のしやすさや、高い柔軟性といった大きな利点をもたらしているのです。

図5:FPGA(左)とスーパーコンピュータCygnus(右)

 

スーパーコンピュータCygnusを用いた宇宙輻射輸送コードART法の高速化!

筑波大学計算科学研究センターでは、FPGAとGPUを搭載したスーパーコンピュータCygnusが開発され、運用されています。CygnusはGPUとFPGAという2つの演算加速装置を同時に備えた世界的にも非常に珍しいスーパーコンピュータです。藤田先生は、このCygnusを利用して、さまざまなFPGAに関する研究を行なっています。Cygnusに加えて、筑波大学計算科学研究センターでは、小規模な実験的FPGAマシンとしてPre-PACS version. X (PPX)も運用しています。PPXは小規模なFPGAクラスタですが、多種多様な演算加速装置を搭載しており、実験的な開発や性能比較に用いています。

藤田先生はこれらの装置を通して、宇宙物理分野で用いるシミュレーションコードの高速化に取り組んでいます。このコードは、ART(Authentic Radiation Transfer)法と呼ばれるもので、宇宙空間を伝播する光の飛び方を計算するものです。ある空間を想定して、その中を飛ぶ光線(これをレイといいます)を用いてエネルギー伝搬の計算をします。空間内を格子状の領域で分け(メッシュ法(注4という)、隣り合うメッシュの間でレイをやり取りして計算を進めていきます。レイにそって計算するART法では、隣のメッシュへ小刻みに通信をすることが必要となるため、FPGAクラスタの通信面での利点が効いてくるのです。これによって、従来のGPU計算の性能を最大で10.6倍も高速化することに成功しました。

ART法を最大4つのFPGAを用いて計算した際の性能を図6に示します。計算性能は、広く演算加速装置として用いられているGPUと比べています。この実験では「Weak Scaling」と呼ばれる条件で性能を測定しています。「Weak Scaling」は、コンピュータ1台あたりの計算量を一定に保ったまま、計算に用いるコンピュータの台数を増やすことを指します。「Weak Scaling」では1台あたりの計算量は一定ですので、コンピュータの台数を増やしても計算時間が増えないことが理想です。言い換えると、計算全体で考えて、N台の計算機を使った時に1台の時と比べてN倍の性能が得られるべきだという測定条件です。

図6:FPGA使用時とGPU使用時における性能比較

まず、左端の1ノード注5では、通信はなく、FPGAがGPUに対して単純に演算処理の速度が速いことを示しています。このようにFPGAの能力を最大限活用した効率のよいプログラムを用いれば、1ノード実行時でもGPUに対して4.5倍も高速となることが証明されました。GPUを使用した計算では、右にいってノード数が増えるほど計算時間が増えているのがわかります。一方、青で表されているFPGAを使用した場合は、ほとんど変化せず、計算時間が短いままです。この測定はWeak Scalingの条件で測定していますので、計算時間の増加が少ないFPGAの方が計算の効率が良いことを示しています。これがFPGAの直接通信ができるという能力と、その通信能力を扱って高い性能でFPGA間通信ができるCIRCUSを用いた成果です。一方、藤田先生は、これらの研究を評価され、2022年度筑波大学若手教員奨励賞を受賞しています。https://www.ccs.tsukuba.ac.jp/news221128/

 

【用語】

  • 集積回路:半導体の表面に、微細で複雑な電子回路をのせた電子部品のこと
  • クラスタシステム:単一のシステムとして動作するように接合されたコンピュータの集合体のこ
  • デバッグ:コンピュータのプログラムの誤り=バグを見つけて、手直しをすること
  • メッシュ法:計算科学の数値解析において、対象を離散化するために縦横に等分割した線で区画化する手法のこと
  • ノード:通信の主体となる個々の機器のこと

さらに詳しく知りたい方へ Cygnus