NVIDIAが「GPUコンピューティング2010」を開催
~GPUコンピューティングが生む新しいソリューションを紹介

NVIDIAフェローのデビッド・カーク氏

7月16日 開催



 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の異種混合(ヘテロジニアス)なアーキテクチャが、優れた性質を持つことをアピールした。

青い線が現在のTOP500スパコンのLINPACKスコア。同じコストをかけてFermi GPUベースのスパコンを作ると、緑色のラインが形成されるというスライド中国のDawning Nebulaeは、先月発表されたTOP500のスパコンランキングで2位に入った、TeslaベースのスパコンTOP500の150位のスパコンを、CPUベースからCPU+GPUのヘテロジニアス型スパコンへ変更した場合に、どの程度の省スペース化、ローコスト化、電気代の節約が可能になるかを示したスライド
GPU+CPUのヘテロジニアス型スパコンとx86ベーススパコンの、ワット当たりの性能を比較したもの。2倍以上の差があるとアピールするこちらはヘテロジニアス型サーバとx86ベースサーバの比較。浮動小数点演算性能だけでなく、コスト当たりの性能、電力当たりの性能の優位性を示している

 またカーク氏は、「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が走り続けられる環境になっている」と述べた。

GPUクラスタの利用が世界中に広がっていることを示すスライド。カーク氏は「TSUBAMEをはじめ、日本はとくに早期からGPUコンピューティングの導入が進んでいる」とする左がCUDA SDKのダウンロード数の推移。CUDA 2.3のラインが急速に伸びていることが分かる。右はCUDAの教育コースを設けている大学の数で、世界中で334校に上るというCUDAのソース、プログラムを、ほかのハードウェアで実行可能な形式へ変換するようなツールが、CUDAコミュニティから生まれている。これにより、CUDAが1社提供の技術であることに対する不安を払拭できるとしている

 講演の後半でカーク氏は、CUDAによるGPUコンピューティングが起こした、あるいは起こすであろう変化について、主に医療分野でのもので、MRIや薬剤開発に関する事例を紹介した。

 例えばMRIでは、これまで水素をスキャンして人体の構造を示してきたが、別のアプローチとしてナトリウムをスキャンするMRIを紹介。人間の大部分を占める水分のスキャンは容易である一方、細胞の健康度合いについては見て取ることができない。一方ナトリウムならば人間の細胞の健康状態を知り、体のなかで何が起きているかを知る上での指標になる。例えばがん治療において、現在は何カ月もかかっている治療の成果/効果を、数日あるいは数時間で把握できるようになる。

 しかし、ナトリウムは水素よりも少ないため、大量のデータを処理して、再構築していく必要がある。こうした処理のために、新しいアプローチも取り入れていかなければならない。以前は非現実的といわれたが、GPUへの最適化を行なうことで実現可能になり、多くの人命を救うことが可能になるだろうとした。

 分子学の分野では、例えば薬剤開発における素材の選別(スクリーニング)においても、CPU/GPU演算を使ってテストできたり、分子分析を行なって個々人にあった健康診断をすることもできるようになる。カーク氏は、ほかにもタンパク質凝縮の分析事例などを挙げ、「これらが実現出来れば、どのようなメカニズムであるかを効果的に、高い忠実度でシミュレーションでき、より効果的な薬剤をより信頼性の高い形で生み出せる。また、疾病のメカニズムを把握して防止することができるようになるだろう」とビジョンを掲げた。

 そして、「こうしたことを行なうためには、コンピュータサイエンスのスキルだけでなく、それぞれの分野のサイエンスに対する知見が必要である。コンピュータサイエンスの形を変えていくことができるし、みんなにとってメリットがある。今後、コンピュータサイエンスに携わるものにとってエキサイティングな時代になるだろう」と、科学者に向けてメッセージを送った。

左の従来型MRIは、螺旋状にスキャンしたデータを、近似値を取りながらグリッド化し、フーリエ変換して画像を構築する。大規模演算が可能なGPUなら螺旋状に配置されたデータからLS(Least-Squares:最小2乗)法を使って、直接データのサンプリングを行なえるので、より高精度なMRIの映像を得ることができるという
薬剤のスクリーニング、タンパク質の凝縮計算など、GPUの活用で薬剤開発においてもより効果的なものが、より早期に開発可能になることをビジョンとして掲げたレガシーコードのGPUへの再実装化、古いソフトを書き換えて並列処理に即した形で新しいソフトウェアを開発する、アルゴリズムや数値法を再考して違ったやり方を生み出す、という3つのアプローチをコンピュータサイエンス従事者に向けて訴えた

●演算だけでなくバンド幅の重要性を説いた東工大教授二氏

 カーク氏に続き、東京工業大学・学術国際情報センターの松岡聡教授が先月6月16日に発表されたTSUBAME2.0の概要を、同・青木尊之教授がマルチGPUによる大規模CFDアプリケーション開発と実行性能についての講演を行なった。主に松岡氏がハードウェアの観点、青木氏がアプリケーションの観点での講演だったが、両氏にともに単純な演算性能だけでなく、ネットワークのバンド幅の重要性を説いた。

 松岡氏は、TSUBAME2.0でGPUへの依存度を高めたことについて、「HPCのワークロードのうち、計算密度が高い「密問題」は、従来からあるアクセラレータの領域、メモリアクセスなどのバンド幅が重要になる「粗問題」は特殊なベクトル型スパコンの領域。そしてスカラの場合は両問題に対してそこそこの性能となるので、両方をうまく満たそうと思うとコスト、電力、スペースが巨大なものになる」という問題を挙げ、GPUはメモリバンド幅が広く、ベクトル計算に利用可能で、同時に計算部分もオーバープロビジョンしているので、両方のアプリケーションにおいて効率を発揮する可能性があるので「GPUに賭けた」と説明した。

 しかし一方で、メモリ量が少ない、通信のオーバーヘッドが生じる、GPUに向けてアルゴリズム(ベクトルのプログラム手法)をどう変えるか、といった課題があり、ここが研究課題となっている。

 その上で、TSUBAME2.0を設計するに当たっては、単にGPUを載せただけのスパコンではないことをアピールした。GPUは計算ユニットとしては良い物が手に入るが、それに合わせて「ネットワーク系、I/O、ストレージのバンド幅といった足腰」(松岡氏)を大幅に強化したバランスの良いアーキテクチャとなることを試みた。

 ただ、そうしたリッチなI/Oアーキテクチャを持った製品は今の市場にないため、さまざまなメーカーとの協業が行なわれた。例えば計算ノードは東工大が提案した設計を基にHPがデザインした未発表の製品を採用する。こうした協業体制について松岡氏は「GPUスパコンとはこのようなものであるべき、という我々の提案に対し、多くのメーカーが耳を傾け、新規開発してくれた」と述べている。

東京工業大学・学術国際情報センターの松岡聡氏従来の大学の大型計算機センターが持っているスパコンは世界のトップスパコンのだいたい10分の1ぐらいを推移していたのに対し、TSUBAME2.0は同世代の世界一のスパコンに匹敵する性能を持っていることを紹介2.4PFLOPSで世界2位になれるという浮動小数点演算性能が注目されるTSUBAME2.0だが、本当に重要なのはネットワークやI/O系、ストレージ周りの性能がデザイン上の要になっているとする

 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)へスケーリングするにおいても重要になるベクトル計算の技術が育まれることを望んでいる」と述べて講演を締めくくった。

TSUBAME2.0のシステム概要。3GPUを持つHP製ノードを1,408基搭載。各種ノードとHDDなどはフルバイセクション・ノンブロッキングの光QDR Infinibandで結合されるTSUBAME1に対して倍精度浮動小数点演算は30倍。ほかに合算メモリバンド幅が約40倍、ネットワークバイセクション、ストレージ性能などの「足腰の性能」を高めているのがTSUBAME2.0の大きな特徴となる理研が開発中の「京」に対して、演算性能は4分の1程度のTSUBAME2.0だが、面積は50分の1と、演算性能に比較すると省スペースに収まっている
TSUBAME2.0では仮想技術を使うことで、同一ノード上でCPU演算、GPU演算のアイソレーションが行なえる。これにより、さらに効率よく計算ノードを利用できる「みんなのスパコン」と称されたTSUBAME1同様、TSUBAME2.0も共同利用プログラムが提供される

 続いて登壇した青木氏は、冒頭で「2年前にNVIDIAが行なったラウンドテーブルミーティングに登壇した時は、やっと流体計算がGPUでできた頃だった。この2年間のGPUの広がりはすごい。ただ、もうGPUを使って速いというのは驚くことではない。それを使って、今までできなかったことや新しいことを実現して、はじめてGPUが有効に使われたといえる」と、単にGPUコンピューティングを導入するだけでなく、そこで生まれるイノベーションの重要性を述べた。

 講演では、同氏の研究室ならびに共同で行なわれた研究のなかから、溶解金属の凝固計算、気液二層流計算、メソスケールの気象予測モデル「ASUCA」について説明があった。

 溶解金属の凝固計算は、解けた金属が固まる際に、どのように固まるかをシミュレートするもの。それにより金属材料としての性質などが決まるので、工業製品開発において、とくに重要視されるものといえる。

 これを計算するのにはフェーズフィールド法が使われる。この計算法を用いて、界面において液体か固体か分からないような部位も計算するようになってきているが、この計算が非常に重く、3次元計算は非現実的なものだったという。

 これに対し、シングルGPUでCPUの100倍のスピードで計算できる。これにより、CPUで2~3カ月かかるような計算も、数時間で完了することから、いろいろなパラメータを割り当てて試すことができることを利点として挙げている。

 続いて、みずほ情報総研と疎行列計算の共同研究を行なっていることを挙げた上で、気液二相流計算について紹介した。気液二相流計算とは、液体と気体が混ざり合うような部分をシミュレートするもので、CFD計算でも一番難しいものだという。これをみずほ情報総研と開発した疎行列計算の解法を用いることで、384×384×160の領域の計算を、8個のGPUを使って90分で解けたことを紹介。これは「GPU計算をやってて良かったと思える」(青木氏)、非常に革新的なものとなっている。

東京工業大学・学術国際情報センターの青木尊之氏青木氏の研究室や、企業などとの共同で行なわれた、GPUコンピューティング適用の研究事例金属の樹枝状凝固成長の計算では、シングルGPUでCPUの100倍という性能を達成している
GPUを使って計算時間が短くなったことで、さまざまなパラメータを変更してテストできるようになる利点を紹介した気体と液体が混ざる気液二相流計算の事例。圧力を求めるポアソン方程式の解法に疎行列計算が用いられるが、これはみずほ情報総研と共同研究した、BiCGStab(クリロフ部分空間法)と、前処理にAMGを組み合わせた手法を使っているこれによって実現されたミルククラウン(ここでは写真の紹介に留まるが、実際には動画でデモが行なわれた)。384×384×160の問題を8個のGPUを使って90分で解いたという

 最後の気象計算は、気象庁が開発を進めている次世代気象モデル「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は逆でメモリが足りない。質的にまったく異なる計算が、これから普通になっていくと思う」と述べて、講演を締めくくった。

今年3月に発表された気象庁の次世代メソスケール気象予測モデル「ASUCA」のGPU化に言及ASUCAのコードをすべてGPUによる並列処理へと置き換えたが、その際に同じ時間発展のループにある関数、変数をすべてGPUのビデオメモリ上に置く工夫を施したことを示したスライド松岡氏、青木氏の講演で共通するのが、GPUにはバンド幅のギャップがあるという課題。GPU-ビデオメモリ間の帯域は広いが、PCI ExpressやInfinibandなどの帯域が非常に狭い
領域分割を用いて、同じ問題をGPUの数を増やして実行した場合の性能推移。何の工夫もせずにスケールアップすると青い線のようにGPUの数が増えるに従って性能の伸びが鈍化する。演算と通信のオーバーラップなどの工夫を施すことで緑色の線のようにGPUの数を増やした際の性能向上度合いを延ばすことができるこちらはASUCAにおける性能向上を示したもので、先のグラフとは異なり、同一GPU数(120個)で問題サイズを拡大していった際のデータ。グラフでは3.2TFLOPSに達しているが、演算性能は課題ではなく、TSUBAME1.2ではすでに通信がボトルネックになってこれ以上の性能が出せないところまで来ているという

●さまざまなソリューションが登場した展示ブース

 このGPUコンピューティング2010においては、GPUコンピューティング(CUDA)に関するソリューションを提供するさまざまなベンダーが出展。各ブースではハードウェやCUDAの活用事例などを紹介した。

 とくに、国内外の大手メーカーが、GPUベースのサーバー、ワークステーションをこぞって展示していたのが特徴的といえる。また、大手メーカーではパフォーマンス密度を向上させることで、より省スペースに高パフォーマンスを実現できるハードウェアを展示しているのが目に留まった。

 ここでは、ブースでの展示内容の中から興味深いものをピックアップして写真で紹介していきたい。

エルザジャパンブースで展示されたNextIOのGPUコンピューティングソリューション。PCI Expressを仮想化することで複数のホストからGPUベースの計算ノードへアクセスできるというもの。右の写真は実際に仮想GPU上で実行されたデモでパフォーマンスの高さを示していた同じくエルザジャパンブースでは、テクノロジー・ジョイントが提供するARソリューションを展示。これはReality Serverを用いたもの。iPhone/iPadなどのモバイル端末からデータを送り、クラウドサーバでレンダリングを行ない、端末側で3Dデータを返す仕組みになっている
日本ユニシスが展示したのはGPUのCAD/CAMへの応用例。これは距離分布を色分け表示するもので、設計データの検査などに応用できることを目指している。既存のCPU実行に比べ、8倍の高速化を実現したというこの2枚も日本ユニシスが紹介したもの。リバースエンジニアリング(製造物からCADデータへ変換)への適用を目指したもので、左がノイズ除去、右がデータのセグメンテーション(なめらかな領域を分割する)というもの
JCCギミックのブースでは、HMPPというGPGPU向けのコードジェネレータの紹介を行なっていた。その事例の1つが、多視点3D復元アプリケーションで、複数の方向から撮影された画像から3Dモデルを生成するもの。生成途中の写真でもGPUとCPUの速度差を見て取ることができるJCCギミックが展示したリアルタイム3D顔復元アプリケーションのデモ。ステレオカメラの映像を読み取り3D画像の復元をリアルタイムに行なう
日立ブースで展示された、魚眼レンズで撮影された映像の復元を行うデモ。CPU、GPUそれぞれで実行可能なデモプログラムによって、その性能差を示していたIBMのSystem x iDataPlexはTeslaを2枚搭載可能な2Uラックサーバで、ラックを90度回転することでパフォーマンス密度アップを図る工夫を行なっている
デルもいくつかのGPUベースサーバ/ワークステーションを紹介したが、注目されるのは3Uラックに16個のGPUを搭載可能なPowerEdgeシリーズの新製品。2Uのホストマシンと合わせて、合計5Uで形成されるサーバとなる。8月に発表される予定とのことエルザジャパンが展示したAppro Green Blade Systemは、2CPU+2GPUのブレードサーバを、5Uサイズに5ノード搭載可能なシステム。5Uサイズで10CPU+10GPU環境を詰め込める同じくエルザジャパンのAppro 1326G4(Opteron)/1426G4(Xeon)は、2CPU+4GPUを1Uラックに収納したもの
HPのZ800はTeslaを2枚搭載可能なワークステーション。CPUはXeonで、その冷却は水冷で行なっているNECが発売するSupermicro製GPUサーバ。Xeon5600番台を2基、Teslaを最大4枚搭載可能なシステムとなっているサードウェーブが発売する「Fractica XE」は、Core i7-900番台をCPUに、Tesla最大3枚やAMDのFireStreamなどをカスタマイズして搭載可能なワークステーション
同じくサードウェーブが展示した「Fractica LEi X58モデル」。こちらは省スペース性が特徴で、Tesla最大2枚などを搭載可能ユニットコムが展示したTesla C2050対応製品。ユニットコムではハードウェアだけでなく、GPGPUショールームを設けたり、セミナーを実施するなどGPGPUに力を入れている

(2010年 7月 20日)

[Reported by 多和田 新也]