NVIDIAは7月16日、GPUコンピューティング普及に向けたイベント「GPUコンピューティング2010」を開催した。基調講演では、同社フェローのデビッド・カーク氏、東京工業大学の松岡聡教授、青木尊之教授が登壇。GPUコンピューティングによって生まれる革新や、東工大が発表したTSUBAME2.0の概要などが紹介された。
●かつて解決できなかったものを解決するGPUコンピューティングデビッド・カーク氏の講演では、同社が従来から繰り返しアピールしてきた、GPUコンピューティングを導入することで得られるパフォーマンス向上のアピールを中心に、それを取り巻くエコシステムや新しいソリューションの紹介が行なわれた。
パフォーマンスに関する話題としては、現在のTOP500スパコンのなかでGPUベースのスパコンは非常に少ないものの、仮に同じコストをかけてGPUベースで構築した場合、500位のスパコン(スーパーコンピュータ)のコストでも現在の10位に迫るような性能をもたらすことができるとする。
また、パフォーマンスだけでなく、省スペース性やコスト、消費電力の少なさなどにも言及。ここでは、先月発表されたTOP500スパコンで2位にランクインした、中国の「Dawning Nebulae」を取り上げている。Nebulaeは4,640個のTeslaを搭載したスパコンで、1.27PFLOPSを実現している。このスパコンは非常に省スペースで、低コスト、そして消費電力が少なくて済むことを紹介した。
パフォーマンス向上の事例もそうした点を踏まえたものとなっており、従来のx86ベースのスパコンに対する、ワット当たりのパフォーマンスや、コスト当たりのパフォーマンスなどを取り上げた。TOP500で2位のNebulae、19位のIPE/CAS(中国科学院プロセス工学研究所のスパコン)と、x86ベースで構築されたTOP500で1位のJaguar、6位に入っているNASA Pleiadesとの比較を通して、CPU/GPUの異種混合(ヘテロジニアス)なアーキテクチャが、優れた性質を持つことをアピールした。
またカーク氏は、「CUDAはトップレベルのスパコンへの採用例こそ少ないものの、個々の研究所や大学あるいは大学の研究室レベルではGPUベースの計算機が導入されており、その傾向が数年前より広がってきている」とし、世界中でCUDAの導入事例やSDKのダウンロード数が急増していることを紹介した。
このような成長を遂げている理由として、CUDAのエコシステムやコミュニティに参加する人が増え、活発に研究開発が行われていること。そして、CUDAを教育する機関も増えており、CUDAのノウハウを身につけたソフトウェア開発者が増えていることを挙げている。
CUDAに関して、NVIDIA固有のアーキテクチャという不安があることに対しては、カーク氏は「CUDAはエコシステムの観点で作られており、協業パートナーがいて、同じコードに向かっているという環境のなかにCUDAがある。そして、オープンソースでツールが公開されているため、さまざまな大学や開発者が、ここに組み込むツールを開発し、うまくフィットしている」と不安の払拭に努めた。
具体的には、CUDAプログラムは、CUDAコンパイラであるNVCCやランタイムライブラリなどで構成されるCUDAツールキットを用いて、GPU上で実行されるアセンブリ言語であるPTXへと変換されているわけだが、CUDAを取り巻くエコシステムのなかから、このPTXからCPU上へ実行可能なプログラムへと変換する「Ocelot」や、CUDAのソースコードをCPU上で実行可能なソースへ翻訳する「MCUDA」、CUDAのソースをOpenCLのソースへ翻訳する「SWAN」といったツールが出ていることが紹介された。これらのツールが存在することで、「仮に明日NVIDIAがなくなったとしてもCUDAは存在し続ける。ほかのツールも存在し続ける。他社のGPUでさえCUDAが走り続けられる環境になっている」と述べた。
講演の後半でカーク氏は、CUDAによるGPUコンピューティングが起こした、あるいは起こすであろう変化について、主に医療分野でのもので、MRIや薬剤開発に関する事例を紹介した。
例えばMRIでは、これまで水素をスキャンして人体の構造を示してきたが、別のアプローチとしてナトリウムをスキャンするMRIを紹介。人間の大部分を占める水分のスキャンは容易である一方、細胞の健康度合いについては見て取ることができない。一方ナトリウムならば人間の細胞の健康状態を知り、体のなかで何が起きているかを知る上での指標になる。例えばがん治療において、現在は何カ月もかかっている治療の成果/効果を、数日あるいは数時間で把握できるようになる。
しかし、ナトリウムは水素よりも少ないため、大量のデータを処理して、再構築していく必要がある。こうした処理のために、新しいアプローチも取り入れていかなければならない。以前は非現実的といわれたが、GPUへの最適化を行なうことで実現可能になり、多くの人命を救うことが可能になるだろうとした。
分子学の分野では、例えば薬剤開発における素材の選別(スクリーニング)においても、CPU/GPU演算を使ってテストできたり、分子分析を行なって個々人にあった健康診断をすることもできるようになる。カーク氏は、ほかにもタンパク質凝縮の分析事例などを挙げ、「これらが実現出来れば、どのようなメカニズムであるかを効果的に、高い忠実度でシミュレーションでき、より効果的な薬剤をより信頼性の高い形で生み出せる。また、疾病のメカニズムを把握して防止することができるようになるだろう」とビジョンを掲げた。
そして、「こうしたことを行なうためには、コンピュータサイエンスのスキルだけでなく、それぞれの分野のサイエンスに対する知見が必要である。コンピュータサイエンスの形を変えていくことができるし、みんなにとってメリットがある。今後、コンピュータサイエンスに携わるものにとってエキサイティングな時代になるだろう」と、科学者に向けてメッセージを送った。
●演算だけでなくバンド幅の重要性を説いた東工大教授二氏
カーク氏に続き、東京工業大学・学術国際情報センターの松岡聡教授が先月6月16日に発表されたTSUBAME2.0の概要を、同・青木尊之教授がマルチGPUによる大規模CFDアプリケーション開発と実行性能についての講演を行なった。主に松岡氏がハードウェアの観点、青木氏がアプリケーションの観点での講演だったが、両氏にともに単純な演算性能だけでなく、ネットワークのバンド幅の重要性を説いた。
松岡氏は、TSUBAME2.0でGPUへの依存度を高めたことについて、「HPCのワークロードのうち、計算密度が高い「密問題」は、従来からあるアクセラレータの領域、メモリアクセスなどのバンド幅が重要になる「粗問題」は特殊なベクトル型スパコンの領域。そしてスカラの場合は両問題に対してそこそこの性能となるので、両方をうまく満たそうと思うとコスト、電力、スペースが巨大なものになる」という問題を挙げ、GPUはメモリバンド幅が広く、ベクトル計算に利用可能で、同時に計算部分もオーバープロビジョンしているので、両方のアプリケーションにおいて効率を発揮する可能性があるので「GPUに賭けた」と説明した。
しかし一方で、メモリ量が少ない、通信のオーバーヘッドが生じる、GPUに向けてアルゴリズム(ベクトルのプログラム手法)をどう変えるか、といった課題があり、ここが研究課題となっている。
その上で、TSUBAME2.0を設計するに当たっては、単にGPUを載せただけのスパコンではないことをアピールした。GPUは計算ユニットとしては良い物が手に入るが、それに合わせて「ネットワーク系、I/O、ストレージのバンド幅といった足腰」(松岡氏)を大幅に強化したバランスの良いアーキテクチャとなることを試みた。
ただ、そうしたリッチなI/Oアーキテクチャを持った製品は今の市場にないため、さまざまなメーカーとの協業が行なわれた。例えば計算ノードは東工大が提案した設計を基にHPがデザインした未発表の製品を採用する。こうした協業体制について松岡氏は「GPUスパコンとはこのようなものであるべき、という我々の提案に対し、多くのメーカーが耳を傾け、新規開発してくれた」と述べている。
TSUBAME2.0の具体的な性能に関しては発表時のレポートに詳しいが、TSUBAME1やその類似マシンと比べ、演算性能において30倍ぐらいの性能向上を果たしている。ただ、「重要なのは演算性能ではなく、それに対するバンド幅向上が大切」と松岡氏は述べる。実際にTSUBAME2.0では、TSUBAME1に対してメモリバンド幅が約40倍、ネットワークバイセクションは200Tbpsを達成している。I/O性能も数十倍の速度となっている。
一方で設置面積は省スペースに収まっており、全体で200平方m程度、ネットワークラックを含めて50ラックに収まっている。理研を中心に神戸で開発されている次世代スパコン「京」に対して、TSUBAME2.0の演算性能は4分の1程度だが、面積は50分の1ぐらいで済んでいることから、その性能密度の差が分かる。
このほか、TSUBAME2.0はクラウドの動的プロビジョニングを可能にするため、仮想マシンを含めたさまざまな機構を導入している。なかでも重要なポイントとして挙げられたのが仮想技術である。現行TSUBAMEと同様にTSUBAME2.0も外部のユーザが利用できる、いわゆる“みんなのスパコン”となる。現行TSUBAMEは2,000人ぐらいのユーザがおり、TSUBAME2.0はさらに増えることが見込まれている。
問題は、それらのユーザには多様なニーズがあることで、例えばCPUを中心に使いたいユーザがノードを占有してしまうと、そのノードのGPUが使えなくなってしまう。そこで、仮想化を利用してリソース共有するようになっており、CPU中心の計算とGPU中心の計算を同一ノードで分離して走らせることができるようになっている。
松岡氏はこうした共同利用プログラムについて「日本最先端のスパコン環境を提供し、学術だけでなく産業においても、今後ペタからエクサ(EFLOPS)へスケーリングするにおいても重要になるベクトル計算の技術が育まれることを望んでいる」と述べて講演を締めくくった。
続いて登壇した青木氏は、冒頭で「2年前にNVIDIAが行なったラウンドテーブルミーティングに登壇した時は、やっと流体計算がGPUでできた頃だった。この2年間のGPUの広がりはすごい。ただ、もうGPUを使って速いというのは驚くことではない。それを使って、今までできなかったことや新しいことを実現して、はじめてGPUが有効に使われたといえる」と、単にGPUコンピューティングを導入するだけでなく、そこで生まれるイノベーションの重要性を述べた。
講演では、同氏の研究室ならびに共同で行なわれた研究のなかから、溶解金属の凝固計算、気液二層流計算、メソスケールの気象予測モデル「ASUCA」について説明があった。
溶解金属の凝固計算は、解けた金属が固まる際に、どのように固まるかをシミュレートするもの。それにより金属材料としての性質などが決まるので、工業製品開発において、とくに重要視されるものといえる。
これを計算するのにはフェーズフィールド法が使われる。この計算法を用いて、界面において液体か固体か分からないような部位も計算するようになってきているが、この計算が非常に重く、3次元計算は非現実的なものだったという。
これに対し、シングルGPUでCPUの100倍のスピードで計算できる。これにより、CPUで2~3カ月かかるような計算も、数時間で完了することから、いろいろなパラメータを割り当てて試すことができることを利点として挙げている。
続いて、みずほ情報総研と疎行列計算の共同研究を行なっていることを挙げた上で、気液二相流計算について紹介した。気液二相流計算とは、液体と気体が混ざり合うような部分をシミュレートするもので、CFD計算でも一番難しいものだという。これをみずほ情報総研と開発した疎行列計算の解法を用いることで、384×384×160の領域の計算を、8個のGPUを使って90分で解けたことを紹介。これは「GPU計算をやってて良かったと思える」(青木氏)、非常に革新的なものとなっている。
最後の気象計算は、気象庁が開発を進めている次世代気象モデル「ASUCA」のコードをフルGPU化した事例で、3月24日にこの成果が発表されている。
気象予測計算は、流体計算である力学過程と、物理的な動きをシミュレートする物理過程に分かれており、後者は比較的容易にGPU化が可能であるという。早期にGPU化が行なわれ、世界的に使われている「WRF」という次世代気象予測モデルにおいても、GPU化されたのはこの物理過程の部分だった。しかし、これではボトルネックが発生してしまうので、全体を速くしなければ意味がないとし、青木氏の研究室がASUCAの完全GPU化に取り組むことになった。
FORTRANで書かれていたASUCAのコードをすべてC言語に書き換え、GPU化していく作業が行なわれたが、ここで重要なのが、刻々と変化する気象の計算をするに当たり、時間発展のループに入っている関数をすべてGPU化し、そこで扱われる風圧や気圧などの変数をすべてビデオメモリ上に載せる必要がある点だ。それをやらないとCPU-GPU間のメモリアクセスが発生して、そこがボトルネックとなる。
これも松岡氏の講演で登場したバンド幅の重要性を示すものといえる。例えばTSUBAME1.2の場合、Tesla S1070のビデオメモリバンド幅は102GB/secと高速だが、Teslaが接続されるPCI Expressは2GB/sec、その先のノード間通信のInfinibandは1GB/secと、非常に帯域が狭くなる。
同じ問題をGPUの数を増やしてどれだけ速くなるか、ということをストロングスケーリングというが、単純にこれをやっても、どこがでGPU-GPUの通信によって高速化が止まってしまう。
こうした問題を解決するために、領域分割を行なって複数のGPUで問題計算をさせることになるが、分割した領域の端(袖)の部分は隣のGPUで計算させている領域の情報が必要なる、といった事態が生じる。そのため、CPU上にバッファメモリを設けて袖領域の部分を共有する、袖領域を先に演算して通信を開始し、同時にほかのGPUの影響を受けない部分の計算をオーバーラップさせて実行する、といった工夫が行なわれている(そのあたりの詳しいことは昨年末のSIGGRAPH ASIAレポートで紹介している)。さらにASUCAのコードにおいては、その計算の順序の入れ替えなども行ない、通信時間を隠蔽することに尽力しているという。
青木氏は「我々は早い時期からGPU計算に取り組んでいるが、今までのCPUよりも明らかに大きな計算ができる。従来は、計算時間を要していたので大きな問題規模ができなかったが、GPUは逆でメモリが足りない。質的にまったく異なる計算が、これから普通になっていくと思う」と述べて、講演を締めくくった。
●さまざまなソリューションが登場した展示ブース
このGPUコンピューティング2010においては、GPUコンピューティング(CUDA)に関するソリューションを提供するさまざまなベンダーが出展。各ブースではハードウェやCUDAの活用事例などを紹介した。
とくに、国内外の大手メーカーが、GPUベースのサーバー、ワークステーションをこぞって展示していたのが特徴的といえる。また、大手メーカーではパフォーマンス密度を向上させることで、より省スペースに高パフォーマンスを実現できるハードウェアを展示しているのが目に留まった。
ここでは、ブースでの展示内容の中から興味深いものをピックアップして写真で紹介していきたい。
(2010年 7月 20日)
[Reported by 多和田 新也]