News Center
汎用計算でのGPU利用が本格化、C言語開発環境が普及を後押し
[issued: 2008.03.18]
GPU(graphics processing unit)は、3Dグラフィックスなどの画像処理に用いられるチップである。その特徴は、数百に及ぶ演算ユニットを備えることで、高い演算性能を実現していることだ。CPUより高い演算性能を持つこのGPUを、汎用計算に用いようという動きがある。このような用途に用いられるGPUはGPGPU(general purpose computing on graphics processing units)と呼ばれている。
GPUを汎用計算用途で活用する場合に問題となるのは、プログラミング言語である。従来は「Cg」などのシェーダ言語が用いられていたが、これをC言語に置き換えることができれば、多くの開発者にとって敷居が低くなる。米NVIDIA社の「CUDA(compute unified device architecture)」は、GPU向けの統合ソフトウエア開発環境である。これを利用することにより、GPU向けのC言語プログラムを開発することができる。ここでは、2008年3月6日に東京大学で行われた「Japan CUDA カンファレンス 2008」で紹介されたGPGPUのさまざまな事例の概要を説明する。
GPUを汎用計算用途で活用する場合に問題となるのは、プログラミング言語である。従来は「Cg」などのシェーダ言語が用いられていたが、これをC言語に置き換えることができれば、多くの開発者にとって敷居が低くなる。米NVIDIA社の「CUDA(compute unified device architecture)」は、GPU向けの統合ソフトウエア開発環境である。これを利用することにより、GPU向けのC言語プログラムを開発することができる。ここでは、2008年3月6日に東京大学で行われた「Japan CUDA カンファレンス 2008」で紹介されたGPGPUのさまざまな事例の概要を説明する。
GPUの計算能力がもたらす
パラダイムシフト
カンファレンスの冒頭、NVIDIA社でチーフサイエンティトを務めるDavid B Kirk氏が「3Dグラフィックスの展望」と題した講演を行った。その中で同氏は、「当社はこれまでに、CUDAに対応したGPUを約5000万個出荷した。また、CUDAそのものは5万件以上がダウンロードされている」と述べ、CUDAの普及状況を説明。CUDAと同社GPUが、最も普及しているパラレルコンピューティングのプラットフォームであると主張した。次いで同氏は、CPUではなくGPUを計算用途に使うことのメリットについて以下のように説明した。
「2~3倍の高速化によって得られる効果は、『ただ単に速いだけ』というレベルだ。確かに演算については多少効率が上がるが、開発作業に大きな変化はない。それが5~10倍の高速化となると、その手法を導入する価値が十分にあるということになる。既存のソフトウエアの代わりに新たなプログラムを開発することを検討する意味もあるだろう。しかし、100倍の高速化となると、まったく意味が異なる。単に『速くなった』ということではなく、従来は実現不可能だったことが可能になるケースがあるからだ。つまり、従来は存在しなかった、まったく新たなアプリケーションが生まれる可能性がある。100倍高速化されるということは、10年先のコンピュータを手に入れたということと同義である。つまり、GPUを汎用計算用途に用いることで、パラダイムシフトが起きるということだ」。
実際、NVIDIA社が提供するGPUは、高い演算性能を実現している。CUDAに対応するGPUである「G80」は、IEEE 754に準拠した単精度浮動小数点ユニットを128個集積している。このGPUの演算性能は、理論値で約500ギガFLOPS(1ギガFLOPSは1秒当たり10億回の浮動小数点演算)である。同GPUを4個搭載したコンピューティングサーバー「Tesla S870」では、理論値としては、約2テラFLOPS(1テラFLOPSは1秒当たり1兆回の浮動小数点演算)の演算性能を備えることとなる。
Kirk氏は、この高い演算性能を活用した新たなアプリケーションとして以下の具体例を挙げた。
米Headwave社は、地震などによって得られた地下の情報を可視化するソフトウエアを提供している(図1)。地下の断面図などを可視化するには、テラバイトからペタバイトクラスの巨大なデータを処理する必要がある。そのため、従来のようにCPUのみで処理すると、断面図を得るために半日から1日といった長い時間を要していた。しかも、表示したい部分をあらかじめ設定したバッチ処理で対応しなければならなかった。それに対し、Headwave社では、この処理にGPUを適用した。新たにGPUによって大量のデータを処理する手法を導入したことで、可視化したい断面をインタラクティブに設定して表示することが可能になったという。
米Hanweck Associates社は、株価の変動をヒートマップとして可視化するソフトウエア「Volera」を提供している(図2)。これは、米国の株式市場におけるすべての株価の変動をGPUによって1秒以内に評価/計算して表示するというものだ。従来は存在しなかったアプリケーションであり、投資家の判断を助ける役割を果たすという。
米Evolved Machines社は、脳の神経回路の働きをシミュレーションし、その働きを盛り込んだ新しいタイプのデバイスを開発しようとしている。そのシミュレーションにGPUを用いている。GPUを用いることで、CPUを用いた場合と比較して、130倍高速なシミュレーションが可能になったという。
以上のように、CUDAが登場して1年余りの間に、工業や財務などの分野でGPUが汎用計算用途に用いられるようになった。一部はすでに商用化されており、GPGPUの急速な広がりを感じさせる。
「2~3倍の高速化によって得られる効果は、『ただ単に速いだけ』というレベルだ。確かに演算については多少効率が上がるが、開発作業に大きな変化はない。それが5~10倍の高速化となると、その手法を導入する価値が十分にあるということになる。既存のソフトウエアの代わりに新たなプログラムを開発することを検討する意味もあるだろう。しかし、100倍の高速化となると、まったく意味が異なる。単に『速くなった』ということではなく、従来は実現不可能だったことが可能になるケースがあるからだ。つまり、従来は存在しなかった、まったく新たなアプリケーションが生まれる可能性がある。100倍高速化されるということは、10年先のコンピュータを手に入れたということと同義である。つまり、GPUを汎用計算用途に用いることで、パラダイムシフトが起きるということだ」。
実際、NVIDIA社が提供するGPUは、高い演算性能を実現している。CUDAに対応するGPUである「G80」は、IEEE 754に準拠した単精度浮動小数点ユニットを128個集積している。このGPUの演算性能は、理論値で約500ギガFLOPS(1ギガFLOPSは1秒当たり10億回の浮動小数点演算)である。同GPUを4個搭載したコンピューティングサーバー「Tesla S870」では、理論値としては、約2テラFLOPS(1テラFLOPSは1秒当たり1兆回の浮動小数点演算)の演算性能を備えることとなる。
Kirk氏は、この高い演算性能を活用した新たなアプリケーションとして以下の具体例を挙げた。
米Headwave社は、地震などによって得られた地下の情報を可視化するソフトウエアを提供している(図1)。地下の断面図などを可視化するには、テラバイトからペタバイトクラスの巨大なデータを処理する必要がある。そのため、従来のようにCPUのみで処理すると、断面図を得るために半日から1日といった長い時間を要していた。しかも、表示したい部分をあらかじめ設定したバッチ処理で対応しなければならなかった。それに対し、Headwave社では、この処理にGPUを適用した。新たにGPUによって大量のデータを処理する手法を導入したことで、可視化したい断面をインタラクティブに設定して表示することが可能になったという。
米Hanweck Associates社は、株価の変動をヒートマップとして可視化するソフトウエア「Volera」を提供している(図2)。これは、米国の株式市場におけるすべての株価の変動をGPUによって1秒以内に評価/計算して表示するというものだ。従来は存在しなかったアプリケーションであり、投資家の判断を助ける役割を果たすという。
米Evolved Machines社は、脳の神経回路の働きをシミュレーションし、その働きを盛り込んだ新しいタイプのデバイスを開発しようとしている。そのシミュレーションにGPUを用いている。GPUを用いることで、CPUを用いた場合と比較して、130倍高速なシミュレーションが可能になったという。
以上のように、CUDAが登場して1年余りの間に、工業や財務などの分野でGPUが汎用計算用途に用いられるようになった。一部はすでに商用化されており、GPGPUの急速な広がりを感じさせる。
並列プログラミングは日本に一日の長
長崎大学工学部の情報システム工学科で準教授を務める濱田剛氏の講演では、「CUDA応用事例の最も初期の報告は日本発であった」という事実が紹介された。
「GPGPUが実用化されたきっかけを作ったのは、ピーク性能が518ギガFLOPSと非常に高いハードウエアであるG80がリリースされたことと、GPUの性能を容易に引き出すことができるCUDAがリリースされたことだ」(濱田氏)という。従来のCgを用いて汎用計算を行った場合、ハードウエアの演算性能を引き出すことが困難であった。そのため、実用的な演算をGPUで実行しても、CPUと比較して特段優れた高速化を図ることはできなかった。G80とCUDAがリリースされたことで、CPUと比較して実用レベルで格段に高い演算性能を初めて引き出すことが可能になったという。
濱田氏はCUDAがリリースされた直後の2007年3月、CUDAを用いた最初のGPGPUとして「N体シミュレーションにおける256ギガFLOPSの達成」という事例を報告した。これによって、GPU上での実用的なプログラムの高速動作を実証したという。
こうした事例がきっかけとなって、現在、海外ではGPGPUへの取り組みが活発化している。ところが、最初の事例を作った国内では、むしろ停滞している状態にあるという。濱田氏は「ドキュメントやコミュニティでのやりとりが英語であることが、敷居の高さを招いている」とその理由を指摘した。濱田氏は「国内では多体問題専用計算機である『GRAPE』を開発した実績がある」という例を引き、「GPGPUとGRAPEで使用できる並列化プログラミングのテクニックは、ほぼ同じだ。つまり、並列コンピューティングでは日本に一日の長がある」として、国内におけるGPGPUへの取り組みを促した。
国内でGPGPUを普及させるための動きもある。濱田氏は、理化学研究所と慶応大学、長崎大学などと共同で行われている「試行錯誤情報の共有」という取り組みと、「『KNOPPIX for CUDA』による啓蒙活動」について紹介した。現在、GPUの内部情報は公開されていない。そのため、試行錯誤しながらプログラムを改良すればするほど高速化が図れるという状況にある。試行錯誤の共有とは、そうした改良情報を共有することで、試行錯誤に要する労力を省くことを狙ったものだ。一方のKNOPPIX for CUDAは、CD-ROMからブートできるLinuxと、CUDAを1つのパッケージにまとめたものである(http://www.yasuoka.mech.keio.ac.jp/cuda/でダウンロード可能)。CUDAの開発環境を構築する手間を省くことにより、GPGPUへの敷居を下げる狙いだ。
濱田氏は、「私たちとCUDAでGPGPUを始めてみませんか?」というメッセージを掲げて講演を締めくくった。
(EDN Japan小野明久)
「GPGPUが実用化されたきっかけを作ったのは、ピーク性能が518ギガFLOPSと非常に高いハードウエアであるG80がリリースされたことと、GPUの性能を容易に引き出すことができるCUDAがリリースされたことだ」(濱田氏)という。従来のCgを用いて汎用計算を行った場合、ハードウエアの演算性能を引き出すことが困難であった。そのため、実用的な演算をGPUで実行しても、CPUと比較して特段優れた高速化を図ることはできなかった。G80とCUDAがリリースされたことで、CPUと比較して実用レベルで格段に高い演算性能を初めて引き出すことが可能になったという。
濱田氏はCUDAがリリースされた直後の2007年3月、CUDAを用いた最初のGPGPUとして「N体シミュレーションにおける256ギガFLOPSの達成」という事例を報告した。これによって、GPU上での実用的なプログラムの高速動作を実証したという。
こうした事例がきっかけとなって、現在、海外ではGPGPUへの取り組みが活発化している。ところが、最初の事例を作った国内では、むしろ停滞している状態にあるという。濱田氏は「ドキュメントやコミュニティでのやりとりが英語であることが、敷居の高さを招いている」とその理由を指摘した。濱田氏は「国内では多体問題専用計算機である『GRAPE』を開発した実績がある」という例を引き、「GPGPUとGRAPEで使用できる並列化プログラミングのテクニックは、ほぼ同じだ。つまり、並列コンピューティングでは日本に一日の長がある」として、国内におけるGPGPUへの取り組みを促した。
国内でGPGPUを普及させるための動きもある。濱田氏は、理化学研究所と慶応大学、長崎大学などと共同で行われている「試行錯誤情報の共有」という取り組みと、「『KNOPPIX for CUDA』による啓蒙活動」について紹介した。現在、GPUの内部情報は公開されていない。そのため、試行錯誤しながらプログラムを改良すればするほど高速化が図れるという状況にある。試行錯誤の共有とは、そうした改良情報を共有することで、試行錯誤に要する労力を省くことを狙ったものだ。一方のKNOPPIX for CUDAは、CD-ROMからブートできるLinuxと、CUDAを1つのパッケージにまとめたものである(http://www.yasuoka.mech.keio.ac.jp/cuda/でダウンロード可能)。CUDAの開発環境を構築する手間を省くことにより、GPGPUへの敷居を下げる狙いだ。
濱田氏は、「私たちとCUDAでGPGPUを始めてみませんか?」というメッセージを掲げて講演を締めくくった。
(EDN Japan小野明久)
Sponsor Links
Partner Solutions
EVENTS
-
CAEユニバーシティ
2008年 11月04日ー2008年11月28日
サイバネットシステム本社オフィス18階 (富士ソフトビル秋葉原) -
CAEユニバーシティ
2008年 10月06日ー2008年11月28日
サイバネットシステム本社オフィス18階 (富士ソフトビル秋葉原) -
ものづくり支援セミナー 「設計者目線のPLM "PTC/CoCreate 製品開発システム”」
2008年 09月10日ー2008年09月10日
ベルサール九段 イベントホール












