米エヌビディア:カーク博士(チーフサイエンティスト)インタビュー
GPUコンピューティング5年後に570倍の速度、学生への教育が普及のカギ
2009.12.22−米エヌビディアのフェローでチーフサイエンティストのデイビッド・B・カーク博士(David B. Kirk)が、12月17日〜19日までパシフィコ横浜で開かれたコンピューターグラフィックス(CG)国際会議&展示会「SIGGRAPH Asia 2009」の基調講演のために来日、合わせて記者会見を開いた。講演の主題は「ヘテロジーニアスコンピューティングの効果」で、GPU(グラフィックプロセッサー)の最新技術によって、シミュレーションとビジュアライゼーションの境目がなくなり、さらに臨場感のあるCGがゲームや映画をはじめとするさまざまな世界でますます活躍すると論じた。ここでは、GPUコンピューティングに関するコメントをまとめた。
◇ ◇ ◇
カーク博士は、流体の乱流モデルなど複雑な物理現象をシミュレーションし、それをCGにフィードバックすることによりリアルな映像が可能になると説明した。その実例はハリーポッター映画での火炎の動きや、公開中の「2012年」における水の表現(大洪水のシーンなど)にみることができる。
これまでは、シミュレーションはCPU、ビジュアライゼーションはGPUと役割が分担されていたが、その両方をGPUで行えるようにすることが、同社が推進するGPUコンピューティングの基本的な考え方。どちらの映画でも、GPUで物理モデルを解析することにより、短時間で臨場感にあふれた映像を実現できたという。
その背景には、CPUをはるかに上回る勢いで高速化するGPUの進歩がある。「CPUは年率20−30%で高速化するので、2015年には単体でいまの3倍の性能に達するだろう。しかし、GPUはその50−100倍のペースで高速化するので、CPUとGPUを適切に組み合わせたGPUコンピューティングは、2015年にはいまの570倍の性能を実現できる」とした。
ただ、科学技術アプリケーションへの応用ではまだ課題が多い。「シーケンシャルに書かれたコードの中から並列処理の利点を生かせる部分をいかに見つけ出すか、コードにどのように並列処理を導入するかが課題になる。やや口はばったいが、その意味ではソフトウエア産業は1960年代のままだと思う。ハードウエア技術はマルチコアやGPGPUなど大きく変化したのに、ソフトウエアは変わっていない」と指摘。
「この課題を乗り越えるためには、プログラマーにまったく新しい並列プログラミング技法を教え込むことが必要だ。とくに、学生に対する教育がカギになると考えており、当社では大学教育の支援活動を展開。現在、実際に150の大学でCUDAが教えられている。CUDAについて書いてくれる執筆者を支援し、質の良い教科書が揃うようにも努力している。CUDAは学びやすく、短時間のレクチャーとハンズオントレーニングで基礎を身につけることができる。こうした教育活動が、GPUコンピューティングが大きく飛躍するきっかけになると確信している」と強調した。
一方、プログラミング技法としてのCUDA対OpenCL(いわば独自対標準)という観点では、「どちらを選ぶかは、プログラマー個人としてのスタイルの選択の問題。CUDAはパラレルC言語がベースであり、OpenCLはAPIベースのプログラミングという違いがある。APIベースだと、並列の細かいところを理解していなくてもプログラミングできる利点があるが、たくさんの設定が面倒だ。とはいえ、どちらが選ばれるにしても、シングルプロセッサー向けのプログラムを書き続けられるよりは、大いに歓迎すべきことですよ」と笑う。