そして、午後は、Scalable Parallel Programming with CUDAと題して、最近注目度の高い、NVIDIAのCUDAによるGPUの並列プログラミングのチュートリアルが行われた。講師は、Ian Buck氏ほか4名のNVIDIAの人と、並列プログラムで有名なイリノイ大学のWen-mei Hwu教授である。
大量の浮動小数点演算器を搭載する最近のGPUは、うまくプログラムを書けば汎用CPUに比べて圧倒的に高い性能を発揮する。NVIDIAがGPUのプログラム用に開発したCUDAは、このようなプログラムを容易に書くことができるツールとして注目を集めている。このチュートリアルでは、最初の紹介に続いて、CUDAで書いたプログラムの同社のミッドレンジからハイエンドのGPUでの実行と、汎用CPUでの実行のデモが行われた。
CUDAで書かれた重力多体問題の計算のデモンストレーション |
このデモでは、汎用CPUに比べるとGPUは圧倒的に速いが、汎用CPUもマルチコアにするとかなり速くなるという印象であった。
続いて、NVIDIAの3人の講師が、CUDAの並列プログラミングモデル、ツールキットとライブラリ、そして性能を上げるためのチューニング手法について説明を行った。引き続いて、イリノイ大学のHwu教授がMRIの画像処理について説明を行った。
脳腫瘍の治療の効果を見るには、現状では6~12週間後に再度MRIを撮って検査するが、ナトリウムの分布を見るMRIを使えば1週間程度で、薬が効いているかどうかを判定することができるという。しかし、ナトリウムの分布を見るには、通常のMRIと比べて1000倍程度の大量のデータを処理する必要がある。このため、この計算をGPUの処理によって高速化する研究を行った。CUDAを使って3ステップの最適化を行うことにより、汎用CPUと比較して100~350倍の性能が得られたという。
そして、最後の発表では、NVIDIAのIan Buck氏が登壇し、CUDAは発表以来1年あまりであるが、最初の10ヶ月で7万近いダウンロードがあり、普及が進んでいる。そして最近正式版をリリースしたCUDA2.0ではマルチコアのCPUに対応する機能が追加されており、今後のエンハンスの方向として、科学技術計算で多く使用されているFORTRANのサポート、複数GPUやGPUクラスターのサポート、デバッガやプロファイラなどの開発ツールの充実を挙げた。
CUDAの今後の開発方向 |
そして、最後の講演者全員で会場からの質問に答えて、午後のチュートリアルを終了した。