公開日:2009/07/15
【第117号】GPGPUに思うこと
最近のGPGPUの流行って本物なのでしょうか?
私は20年以上このHPC業界でいろいろなスパコンやアクセラレータを見てきました。その中でひとつ大きく言えることは、売れるのは技術がいいからでなくユーザ指向のものが売れるのです。
これまでGPUのようなアクセラレータはいくつか出てきました。FPGA、ClearSpeed、DRPなどなど。でもどれも爆発的なヒットにはなりませんでした。それは価格が高価だったこともありますが、それよりもユーザにとってとても使い難かったのが問題だったと思います。FPGAはANSI Cコンパイラはあったけど、論理回路の知識が必要だし、並列化も自分で考えないといけません。ClearSpeedはライブラリを提供したけれど、自分のプログラムを高速化するためにはSDKを使って自分のソフトを組み込まないといけませんでした。それらが足枷となり商用アプリベンダからも見向きもされませんでした。
PCクラスタだって10年前は今のように売れてはいませんでした。問題はプログラミングの難しさと商用アプリのサポート不足でした。一旦、MPIのような分散メモリ型のプログラミングモデルが普及し商用アプリベンダがPCクラスタをサポートし出すと急速にPCクラスタが普及したのです。
それでは今回のGPGPUはどうでしょうか?最初の黎明期は、“おたく”な人達がGPUの性能を計算に使うことを考えてアセンブラを書くように趣味でやっていました。CUDAが提供され始めると、ハードウエアの知識がある人には高速化し易い環境ができてきました。ここまでは他のアクセラレータとほぼ同じ道筋をたどってきています。次に大きく異なったのはコンパイラのサポートです。PGI社がディレクティブ形式でGPUをサポートしたことにより、アクセラレータの大きな壁を超えたのです。コンパイラのサポートにより、商用アプリベンダがよりサポートし易い環境ができたことは、大きなインパクトを与える出来事でした。商用アプリベンダは保守がし易いソースコードを望みます。もしCUDAそのものを使う場合、現在のソースコードにかなり手をいれなくてはならず大きな手間がかかり、またGPUのメーカーが仕様を変えた場合にも対応が面倒になります。今回のPGIコンパイラでその手間が一掃されることとなるのです。さらに今後OpenCLなどの標準化がすすめば、NvidiaだけでなくATIなどのGPUも自由に選択できる環境が整います。そうすれば、本当のアクセラレータとしてGPUが主流になる日も近いのではないでしょうか?まずはどこまで時代が進むかと見て行きたいと思います。
ちなみにNvidiaの次機種のGPUではECCが搭載され倍精度浮動小数点演算性能もかなり向上するようです。乞うご期待!
私は20年以上このHPC業界でいろいろなスパコンやアクセラレータを見てきました。その中でひとつ大きく言えることは、売れるのは技術がいいからでなくユーザ指向のものが売れるのです。
これまでGPUのようなアクセラレータはいくつか出てきました。FPGA、ClearSpeed、DRPなどなど。でもどれも爆発的なヒットにはなりませんでした。それは価格が高価だったこともありますが、それよりもユーザにとってとても使い難かったのが問題だったと思います。FPGAはANSI Cコンパイラはあったけど、論理回路の知識が必要だし、並列化も自分で考えないといけません。ClearSpeedはライブラリを提供したけれど、自分のプログラムを高速化するためにはSDKを使って自分のソフトを組み込まないといけませんでした。それらが足枷となり商用アプリベンダからも見向きもされませんでした。
PCクラスタだって10年前は今のように売れてはいませんでした。問題はプログラミングの難しさと商用アプリのサポート不足でした。一旦、MPIのような分散メモリ型のプログラミングモデルが普及し商用アプリベンダがPCクラスタをサポートし出すと急速にPCクラスタが普及したのです。
それでは今回のGPGPUはどうでしょうか?最初の黎明期は、“おたく”な人達がGPUの性能を計算に使うことを考えてアセンブラを書くように趣味でやっていました。CUDAが提供され始めると、ハードウエアの知識がある人には高速化し易い環境ができてきました。ここまでは他のアクセラレータとほぼ同じ道筋をたどってきています。次に大きく異なったのはコンパイラのサポートです。PGI社がディレクティブ形式でGPUをサポートしたことにより、アクセラレータの大きな壁を超えたのです。コンパイラのサポートにより、商用アプリベンダがよりサポートし易い環境ができたことは、大きなインパクトを与える出来事でした。商用アプリベンダは保守がし易いソースコードを望みます。もしCUDAそのものを使う場合、現在のソースコードにかなり手をいれなくてはならず大きな手間がかかり、またGPUのメーカーが仕様を変えた場合にも対応が面倒になります。今回のPGIコンパイラでその手間が一掃されることとなるのです。さらに今後OpenCLなどの標準化がすすめば、NvidiaだけでなくATIなどのGPUも自由に選択できる環境が整います。そうすれば、本当のアクセラレータとしてGPUが主流になる日も近いのではないでしょうか?まずはどこまで時代が進むかと見て行きたいと思います。
ちなみにNvidiaの次機種のGPUではECCが搭載され倍精度浮動小数点演算性能もかなり向上するようです。乞うご期待!
![]() |
【第116号】TOP500発表! | 【第118号】Condorを使ったCloud | ![]() |





