新しい計算処理モデルが普及の兆し

GPGPUのキラーアプリケーションは「グラフィックス」

2008/03/06

 高度な並列計算を得意とするGPUを、グラフィックス描画という本来の目的ではなく、より一般的な計算用途に使おうという「GPGPU」(General Purpose GPU)の利用が広がりを見せてきた。GPUは、CPUに比べて条件分岐などの処理が不得意であるほかキャッシュメモリを搭載しないなどプログラムの実行には不向き。その分、トランジスタをデータ処理に振り向けており、1つのGPUに計算処理ユニットが100以上も搭載されることもある。このため、物理シミュレーションなど科学計算に向く。

cuda01.png GPUとCPUの性能向上比較(出典:NVIDIAのCUDAマニュアル)

 CPUの処理能力が過去数年で数割ずつしか伸びていないのに対して、GPUの処理能力は年率2倍という、すさまじい進化スピードだ。用途や特性が違うため単純な比較は無意味だが、理論的な計算処理能力を比較すると、CPUが数十GFLOPSであるのに対して、GPUはすでに1チップで500GFLOPSを超える製品がある。

cuda02.jpg NVIDIAがGPGPU向け製品として提供するTeslaシリーズのグラフィックボードタイプの製品

 高い処理能力の割に安価なグラフィックボードを使い、実際にシミュレーションなどを行う動きは、4年ほど前に始まり、ここ2年ほど急速に普及の気配を見せ始めている。もともとは大学や研究機関の研究者たちが試行錯誤でGPUに並列計算を行わせていたが、こうした動きに目をとめた独立系GPUベンダのNVIDIAは、自社製品のハードウェアラインアップとして、2007年6月にGPGPU専用ボードやラックマウント型製品など「Tesla」シリーズをリリース。同時に「CUDA」(Compute Unified Device Architecture)と呼ぶ開発環境の提供を始めた。

科学計算でのGPU利用は本格化

kirk.jpg NVIDIAでチーフサイエンティストを務めるディビッド・B・カーク博士

 「GPUで計算したい人たちは、別にピクセルシェーダーの使い方を知る必要はない。CUDAを使うことでC言語を拡張した文法とライブラリで、並列処理プログラムが作れる」。そう話すのは、NVIDIAが主催する「NVIDIA Japan CUDAカンファレンス2008」で講演した同社チーフサイエンティストのディビッド・B・カーク博士だ。博士によれば、すでにCUDAは5万ダウンロードを数え、さまざまな分野で活用されている。

 CUDAはTeslaだけでなく、NVIDIAの全製品で利用できる。つまり、一般的なPCにグラフィックボードを指すだけでHPC環境が実現できるわけで、この手軽さから多くの研究者が計算用途でGPUを使い始めている。「今やほとんどあらゆる分野の科学領域で、計算やシミュレーションを行うことで研究内容を広げられる」(カーク博士)。

 カーク博士が挙げた実例は、例えば高分子の振るまいをシミュレーションする「NAMD」だ。NAMDは分子生物学などで使われるソフトウェアで7万人以上のユーザーがいる。NAMDでは、数万からときに数十万個の原子を扱うため、クラスタコンピュータを使った場合でも計算に数日かかることがある。GPUを使えば、こうした計算は100〜200倍に高速化できるという。CPUと4つのGPUで構成したシステムでNAMDを使うと、その計算能力は1TFLOPSに達するという。しかしも、GPU追加によるスケールアップの効率は99.7%と、ほぼリニアに性能が伸びたという報告がある(参考リンク)。

 MathWorks社製の数値計算向けスクリプティング環境「MATLAB」もGPUの利用によって17倍高速になるという。MATLABは行列やベクトルの演算を行うライブラリからなり、多くの研究者に利用されている。

cuda03.jpg NVIDIAは並列計算向け開発環境を無償で提供しているが、プログラミング言語はCに独自拡張を施したもので、取っつきやすいという
cuda04.jpg 長崎大学工学部情報システム工学科 助教 濱田剛氏

 長崎大学工学部助教の濱田剛氏によれば、日本国内では「N体問題」と呼ばれる物理シミュレーションの分野で、早い段階からGPGPUの利用が始まっているという。N体問題は重力など互いに相互作用を及ぼし合う物質の系の時間発展をシミュレーションする分野で、銀河同士の衝突や流体の解析などを行う。日本では1990年に東京大学の天文学者らが作成した重力計算専用のスーパーコンピュータ「GRAPE」と、その活用の歴史が長いため、GPGPUの利用においても先行している面があるという。「GPGPUとGRAPEのアイデアはほぼ同じ。GRAPEで試行錯誤してきたノウハウが、GPGPUでも使える」(濱田氏)といい、この分野での日本の研究者からの貢献が期待されているという。

 濱田氏は講演で銀河衝突のデモンストレーションを行った。約6000個の質点を含む銀河が2つ衝突するシミュレーションをCPUで計算した場合、2秒間で1コマ進むという速度だったものが、GPUに切り替えたとたんに滑らかなアニメーションとなって銀河がうねりだした。実測値でCPUが0.2GFLOPS程度であるのに対して、GPUでは270〜470GFLOPSという値を叩きだした。

cuda05.jpg 濱田氏が行った銀河衝突のシミュレーション。CPUでは2秒で1コマ進む程度のスピードだったものが、GPUに処理を切り替えたとたんに滑らかなアニメーションとなって動き出した

GPGPUで可能となるコンピュテーショナル・グラフィックス

 気象シミュレーション、石油採掘現場での地震波解析、信号処理、金融工学など、GPGPUの応用分野は広いが、皮肉なことにカーク博士は、GPGPUが最も得意とするキラーアプリケーションの1つは「グラフィックスだ」という。

 博士がいうグラフィックスは、従来のコンピュータグラフィックスとは異なる。従来のポリゴンやシェーダを使ったグラフィックスを“コンベンショナル・グラフィックス”、GPUによって初めて可能になるグラフィックスを“コンピュテーショナル・グラフィックス”と博士は区別して呼ぶ。

 例えば翡翠や人間の肌のように、光が素材に浸透して、そこから再び色がついて反射光となるようなものは、その素材の質感をリアルに再現するのが難しかったが、プログラマブルなGPUを使うことで、今までは考えられなかったほどリアルなグラフィックスを、リアルタイムに扱えるようになるという。

 古くから使われているレイトレーシングのグラフィックスにも、GPGPUが新たな光を当てるという。光源からの出た光線を、物体に当たるまで追跡してグラフィックスを描き出すレイトレーシングは現実世界の光のあり方とは大きく異なるという。音が部屋に反響するように、光も壁や床で反射を繰り返して全体がぼんやり明るいグラデーションに包まれる。カーク博士は「こうした“グローバル照明”がないことが、現在のレイトレーシングのグラフィックスがリアルに見えない理由」という。GPGPUを使えば、膨大な計算が必要なグローバル照明も、リアルタイムで描画が可能になるという。

cuda06.jpg 肌の質感を再現したグラフィックス。実在の俳優からキャプチャしたモデルを作り込むのに非常に時間がかかっているが、作成したモデルのレンダリングはリアルタイムで可能で、この顔をアニメーションさせることもできるという
cuda07.jpg 従来のグラフィックスでは難しかった、細かな毛の影なども“コンピュテーショナル・グラフィックス”で可能になるという
cuda08.jpg 壁や柱に当たって何度も反射する光源の光を扱うことで、レイトレーシングもよりリアルな映像になる

関連リンク

(@IT 西村賢)

情報をお寄せください:

アイティメディアの提供サービス

キャリアアップ


- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

SEOは総合格闘技である――「SEOおたく」が語る普遍のマインド
SEOの最新情報を発信する「SEOおたく」の中の人として知られる著者が、SEO担当者が持つべ...

HubSpot CMSにWebサイトの「定石」を実装 WACUL×100のパッケージ第1弾を提供開始
WACULと100は共同で、Webサイトの「定石」をHubSpotで実装する「Webサイト構築パッケージ...

電通調査で「料理は面倒」が6割超 なぜそうなった?
電通の国内電通グループ横断プロジェクト「電通 食生活ラボ」は、「食生活に関する生活者...