「GPGPU」の可能性を探る:ゲームだけが用途じゃない!(1/5 ページ)
画像処理専用の演算ユニットとして活用されてきたGPU。これまで、その主たる用途として連想されるのは、コンピュータゲームであった。しかし、「その能力の高さを、ほかの用途にも活用できるのではないか」と考えるのは自然なことだ。この「GPGPU」の具現化 /実用化に向け、ICベンダー、EDAツールベンダーらは、どのような施策を進めているのだろうか。
「GPGPU」という概念
デスクトップ型、ラップトップ型、ノート型といった形態を問わず、昨今のパソコンでは、マルチコアプロセッシングが主要な技術となっている。シングルコアのプロセッサのクロック周波数を高めることを追求するというアプローチは、かなり以前に“収穫逓減”の状態に達した。そのため、現在では、一般的なパソコン製品には、マルチコアのCPUが使われている。
そして、パソコン製品によっては、クワッドコアのCPUに加えて、数十〜数百のコア(ストリーミングプロセッサ)から成る処理ユニットが含まれていることがある。この処理ユニットがGPU(Graphics Processing Unit)である。このGPUのチップは、主に米AMD(Advanced Micro Devices)社や米NVIDIA社から供給されている。
英国では、約100ポンド(約1万3000円)支払えば、コア数が192個のGPU、クロック速度が1566MHz、1Gバイトのグラフィックスメモリー(RAM)を内蔵し、そのRAMへのメモリー帯域幅が57ギガバイト/秒で、PCIe(Peripheral Component Interconnect Express)に対応したグラフィックスカードを購入することができる。
グラフィックスカードの例としては、NVIDIA社の「GeForce GTS 450」などがある。これは、熱狂的にゲームが好きなユーザーにとってはミッドレンジに当たる製品である。その種のユーザーの場合、グラフィックスカードに500〜800米ドル支払ってもよいと考えている。それだけの金額を支払えば、2個のGPU(3200個以上の処理コア)と2Gバイトのグラフィックスメモリーを搭載し、その市場にかかわるユーザーが望むすべてのハイエンドポリゴン描画仕様を満たす「ATI Radeon HD 5970」(ATIはAMD社が買収した企業の名前)などのカードを購入することができる。つまり、数百米ドル支払えば、PCIeスロットを利用して、 TFLOPS(1TFLOPSは1秒間に1兆回の浮動小数点演算処理を行う能力)クラスのコンピューティング能力を得ることが可能なのだ。
本誌読者の多くは、ある種のゲームマニアのように、「いかに速く画面を塗りつぶすことができるか」ということに関心があるわけではないだろう。実際、 GPUの能力は、組み込みシステムの設計やシミュレーションに使用するソフトウエアの高速化などを目的として利用することもできる。このようなGPUの利用法は、一般にGPGPU(General-Purpose Computation on GPUs)と呼ばれている。また、そのためのツールもすでに存在し、普及しつつある。
並列処理で威力を発揮
GPGPUに対する期待は高まっているが、いくつか理解しておくべきこともある。まず注意しなければならないのは、GPUに含まれる個々のストリーミングプロセッサは、もともと画像処理向けに設計されているということだ。ポリゴンの計算とレンダリング、テクスチャマッピング、ピクセル値の計算と画面上への高速表示といったタスクに特化しているという意味である。
GPUで処理したいと思っているタスクが、本質的に並列性が高く、GPUのアーキテクチャにうまくマッピングできるものであったとしよう。そうであるなら、GPUをその目的に適応させるための作業を行えば、まず間違いなくそれに見合うだけの成果が得られる。
最新のGPUは、適用可能なタスクの範囲を広げるために、より多くの機能を搭載するようになった。そうした機能の1つとして、ECC(誤り検出訂正)が挙げられる。
GPUがグラフィックスデータのみを処理している場合、メモリーの読み出し/書き込みでエラーが1つ発生したとしても、おそらくは1つのピクセルまたはポリゴンの色が一瞬変わってしまう程度の影響しかなく、それほど大きな問題にはならないであろう。しかし、高性能コンピューティングでは、1つのエラーが大きな問題になる。そのため、GPUのメーカーらは早速これに対処すべくECC機能をGPUに実装したのである。
GPGPUでは、多くのデータに同一の処理操作を施すSIMD(Single Instruction Multiple Data)のような形でGPUを使用する。AMD社もNVIDIA社も、自社のGPUを、高性能のグラフィックス処理だけでなく、広範囲の用途に適用可能なものとするための取り組みを行っている。
NVIDIA社の社長兼CEO(最高経営責任者)を務めるJen-Hsun Huang氏は、2010年9月に同社がカリフォルニア州サンノゼで開催した『GPU Technology Conference』の基調講演において、上述したような移行が始まった時期を4年前だとした。
「われわれは、3Dグラフィックスプロセッサが、より一般的なものに進化する可能性を持っていることに気が付いた。全体のコードのうち、5%のコードが実行時間の大部分を占めるアプリケーションは数多く存在している。そのようなアプリケーションに対しては、並列処理用に、マルチコアCPUと、多数のコアを搭載するGPUを組み合わせたアーキテクチャが有効だ。そのため、われわれは、高性能コンピューティングをより手ごろな価格で提供するための取り組みを行っている」(Huang氏)。
Copyright © ITmedia, Inc. All Rights Reserved.