2009/12/08
Q1. GPU あるいは GPGPU コンピューティングとはなんですか?
A1. GPU とは画像演算処理装置のことで、PC に内蔵、または周辺機器として接続して使用します。
GPU が搭載する多数の演算器を一般の数値計算に転用して高速化をはかるのが、GPGPU コンピューティング (General Purpose = 汎用)です。
また、GPU クラスタ とは、比較的廉価な PC に高性能 GPU を接続したものを単位として構成した PC クラスタ のことです。
Q2. GPU クラスタは CPU のみの PC クラスタより廉価なのでしょうか?
A2. はい。
確かに、GPU カード一枚で、理論性能 1TFLOPS ~ 数十万円ですから、
CPU のみで 同 FLOPS の PC クラスタを構成するより廉価だといえます。
Q3. では、今後の高性能並列計算は GPU クラスタに移行してゆくのでしょうか?
A3. それほど単純ではありません。
装置だけを考えると GPU は非常に廉価なのですが、開発効率、つまり人件費を考えると、逆に GPU の方が高くつきがちです。
これには、GPU アーキテクチャの問題と、ソフトウェア資産の問題等が関係します。
Q4. GPU アーキテクチャの問題とは?
A4. GPU はあくまでも画像演算に最適なように設計されています。
数十のスレッド (並行的な計算の流れ) が同じ計算をしなければならないこと、メモリアクセスが非常に低速なこと、という制約があります。
問題毎に、これらの制約を踏まえたアルゴ リズムを設計する必要があり、人的コストは高くなりがちです。
Q5. ソフトウェア資産の観点はどうでしょう?
A5. GPU用の専用プログラミング言語 (CUDAなど) で記述する必要があります。
Fortran, OpenMP, MPI などの言語で記述された資産をそのまま使うことはできません。
また、CPU ではあたりまえに使えたデバッガが GPU では使えない点も、 GPU での開発の人的コストを上げる要因となるでしょう。
* 林圭佐, パラメータ推定を行うための極限的実装による無限粒子フィルタ,
次世代スーパーコンピューティングシンポジウム 2009, 2009年10月7-8日(木)
http://www.nsc.riken.jp/sympo2009/09/houkoku.html
http://www.nsc.riken.jp/sympo2009/poster-session/poster-session-list.html
* 林圭佐, 齋藤正也, 吉田亮, 樋口知之, GPGPUを活用したバイオロジカルパスウェイモデルの高速なパラ
メータ推定, 第76回数理モデル化と問題解決・第19回バイオ情報学合同研究発表会, 2009年12月16日-17日
http://daemon.ice.uec.ac.jp/MPSPortal/events/copy_of_7b2c7556demps78147a764f1a