ニュース
» 2010年12月02日 00時00分 UPDATE

「Echelon」はFermiの100倍:米NVIDIAのCEOが絶賛する“日本のCUDA” (1/2)

エヌビディア ジャパンは、12月1日に「GPU コンピューティング 2010 Winter」を開催、基調講演で米NVIDIA CEOのジェンスン・ファン氏がCUDAについて訴求した。

[長浜和也,ITmedia]

日本でも実績を増やすCUDA環境

kn_gtcjp_01.jpg 米NVIDIA CEOのジェンスン・ファン氏

 「グラフィックスではなく汎用のGPUコンピューティングに注目していく」と述べた米NVIDIA CEOのジェンスン・ファン氏による基調講演の内容は、2010年9月に米国で行われた「GPU Technology Conference」の同氏による基調講演とほぼ共通した。CUDA環境で開発されたGPUコンピューティングは、自動車産業、建築、インテリアでにおけるデザインシミュレーションや、流体シミュレーション結果のリアルタイム表示、医薬品開発、天体運動シミュレーション、そして天気予報に用いる大気シミュレーションなど、高度な並列演算処理を必要とする領域で広く使われている。

 このケーススタディとして、東京工業大学 学術国際情報センターの青木尊之氏が、同大学のTSUBAME 2.0でフルGPU演算を実行する次世代気象モデルを紹介した。気象の数値予報では、風速や気圧、水蒸気の挙動を求める“力学過程”と、雲の形成や降雨などの動きを求める“物理過程”に分かれて演算が行われる。従来、力学過程の演算ではメモリアクセスが膨大に発生して、プロセッサのピーク演算能力が引き出せない一方で、物理過程の演算では、浮動小数点演算で非常に高い負荷が発生するという。

 青木氏は、次世代気象モデルの開発において、GPUコンピューティングの浮動小数点演算能力の高さとメモリバンド幅の広さに注目し、まず、計算負荷の高い“雲”物理過程の計算モジュールだけをGPUで行うようにした。この結果、CUDA環境に移植した計算モジュールでは従来の20倍という性能向上が確認されたが、その一方で、従来のままCPUで演算している力学過程の影響が残り、気象モデル全体の演算能力は30%の向上にとどまった。

 この問題を解決するため、TSUBAME 2.0の稼働にあわせて、青木氏はすべての過程でCUDA環境に移植を行い、GPU上で演算を行うモデルを開発した。なお、この移植作業においては、FORTRANで書かれていたコードをまずC++に変更し、それからCUDAのコードに移植したという。CUDA環境に完全移行した気象モデルをTSUBAME 2.0で動かした場合、その演算能力は単精度計算で145TFlops、倍精度計算で76.1TFlopsに達したと青木氏は説明している。

kn_gtcjp_02.jpgkn_gtcjp_03.jpg 気象モデルをCUDA環境に移植する作業では、まず浮動小数点演算の負荷が高い物理過程の一部だけを移植し、その結果を検討して、力学過程も含めたすべての処理を移植した(写真=左)。移植作業では、オリジナルコードのFORTRANをCUDAと親和性の高いC/C++に移植してから、CUDA環境に移植した。左下のグラフでは、格子数と演算性能の関係を1コアGPU(倍精度演算)と12コアCPU(倍精度演算)、GPU(倍精度演算)、GPU(単精度演算)で比較し、右下のグラフではGPU、CPUそれぞれのコア数と演算性能の関係をCPU(倍精度演算)、GPU(倍精度演算)、GPU(単精度演算)で比べている(写真=右)

 天気予報では、一定の地域を格子状に区切った1つ1つのメッシュごとに大気の状態を計算で求めるが、シミュレーションを行うシステムの性能によって、この格子サイズは増減する。現在、気象庁で行っている数値予報では、一般的に721×577×50というサイズでシミュレーションが行われているが、CUDA環境に移植した気象モデルをTSUBAME 2.0で実行した場合、4792×4696×48というサイズで単精度演算が実行できたという。(記事掲載当初、格子サイズの値に間違いがありました。おわびして訂正いたします)

 このほか、2つに分けられた気体と液体で、仕切りを取り外してそれぞれがどのように動くのかを演算するシミュレーションで、従来から使われているSPH法などの粒子法ではなく、格子に区切ったメッシュ法によるシミュレーションも紹介され、粒子法による演算ではできなかった液体内に気泡が混入する状況や、気泡の影が描画される状況が示された。

kn_gtcjp_04.jpgkn_gtcjp_05.jpg CUDA環境に移植した次世代気象モデル「ASUCA」で実際に観測された台風のシミュレーションを実施する。格子サイズは4792×4696×48で、実際のスケールに置き換えると水平方向に500メートル四方の精度で演算ができた(写真=左)。格子単位で演算するメッシュ法で実施した気体と液体の流体シミュレーション。現在主流の粒子法では再現できない「液体の中の気泡」がGPUコンピューティングによるメッシュ法では求めることができるという(写真=右)

       1|2 次のページへ

Copyright© 2016 ITmedia, Inc. All Rights Reserved.