GPUコンピューティングの歴史とCUDAの誕生

2010年7月2日(金)
平野 幸彦

NVIDIA Tesla GPUスパコン、TOP500リスト2位に!!

スーパー・コンピュータ(スパコン)の高性能ランキング「TOP500」を運営するTOP500.Orgは2010年5月28日、NVIDIA Teslaを搭載したスパコンがTOP500の2位になったことを発表しました(ニュースURL)。これを公式に反映した2010年6月のTOP500リストは、ドイツのハンブルグで開催されたカンファレンス「ISC' 10」(International Supercomputing Conference)で、2010年5月31日に提示されました。

今回のニュースは世界のHPC(High Performance Computing)業界を駆け巡りましたが、GPUスパコンがTOP500の上位に入るという事実は、2009年9月に米国のサンノゼで開催された「NVIDIA GPU Technology Conference」において次世代GPUアーキテクチャ"Fermi"が発表された時点で、ある程度予測できたことでもあります。

さかのぼれば、2008年11月に東京工業大学のスパコン「TSUBAME 1.2」が、既存のシステムへの追加アクセラレータとしてTesla GPUを680個導入し、GPUスパコンとしては世界で初めてTOP500の上位にランクインしました(当時29位)。TSUBAME 1.2は、GPUコンピューティングがHPC業界で注目を集める大きなきっかけになったとともに、TOP500の歴史においても1つのターニング・ポイントになりました。

2008年12月、東京工業大学 学術国際情報センターにて。
東工大 松岡聡教授(左手前)、米NVIDIA CEO兼社長ジェン・スン・ファン(右手前)
図1: Tesla T10 GPUを680個搭載したTSUBAME1.2

近い将来を展望すると、東京工業大学が「TSUBAME 2.0」の導入開発をすでに表明しています。Fermi世代のGPUを4000個以上使うことで、世界最高クラスとなる2.4ペタFLOPSを実現する予定です。2010年11月には、米国のニュー・オリンズでスパコンのカンファレンス「SC10」が開催されます。ここでの上位ランク・インを目指して、世界各地で"TSUBAME"型のGPUスパコンが産声を挙げることが予想されます。

なぜGPUでコンピューティングなのか

GPUは、十数年前まではコンピュータ表示出力専用のLSIやASIC(特定用途向けIC)として、グラフィックス・コントローラやGUIアクセラレータといった名称で呼ばれていました。これがなぜGPUと呼ばれるようになり、汎用計算機能を備えるようになり、CPUを上回る浮動小数点演算能力を身に付け、スーパー・コンピュータに利用されるまでに発展したのでしょうか。

米NVIDIA(以下、NVIDIA)のグラフィックス製品を例に、簡単にGPUの歴史を振り返ってみましょう。

NVIDIA GPUの歴史

1995
NVIDIA初のグラフィックス・アクセラレータ 「NV1」を発表
1996
Direct 3Dのサポートにより、ゲーム開発業界での重要な役割を確立
1999
「NVIDIA Quadro」「GeForce 256」を発表し、GPUと命名
DirectX 7対応、T&L(座標変換&ライティング)機能実装
2001
業界初のプログラマブルGPU「GeForce3」を発表
DirectX 8対応、Vertexシェーダ/Pixelシェーダ搭載
2004
「GeForce 6800」を発表
DirectX 9、Shader Model 3.0対応
2006
コンピューティング統合開発環境「CUDA」を発表、GPU コンピューティング革命がスタート
「GeForce 8800」を発表、DirectX 10、Shader Model 4.0対応
2008
「GeForce GTX 200」グラフィック ス・プロセッサ・ファミリを発表
「Tesla 10」シリーズのコンピューティング・ソリューションを発表
2009
次世代CUDA GPUアーキテクチャ(コードネーム「Fermi」)を発表
2010
Fermi世代GPU「GeForce GTX 480」「GTX470」を発表。DirectX 11対応
Fermi世代Tesla GPU「C2050」「M2050」「S2050」を発表

画像表示コントローラからGPUへ

初期のPC用画像表示コントローラは、CPUがビデオ・メモリー(VRAM)に書き込んだテキストあるいはグラフィックス・データを、CRT(ディスプレイ)や組み込みフラット・パネルといった特定の表示装置に合わせたビデオ信号に変換するのが主な役割でした。

その後、WindowsやOS/2などのGUI(Graphical User Interface)対応OSの登場に伴い、CPU主体の描画処理の限界をカバーするために、グラフィックス・アクセラレータまたはGUIアクセラレータと呼ぶ、OSのAPI(Application Programming Interface)に対応したハードウエア描画機能を取り入れたASICが開発され、描画のパフォーマンスや機能が強化されました。

DirectX(Direct 3D)やOpenGLといった標準APIの発達とともに、3次元(3D)グラフィックスの機能が追加されるようになり、3次元オブジェクトを構成する各三角形(ポリゴン)の頂点座標の計算(Vertex Shading)、ポリゴンの位置の計算(Geometry Shading)、ポリゴン内の描画(Pixel Shading)、といった、3Dグラフィックスにおける描画パイプラインの各工程が、段階的にハードウエアとして実装されていきました。

こうした流れの中、NDIVIAは1999年8月31日にGeForce 256を発表し、その拡張された機能や強化されたパフォーマンスに見合った製品の呼称として、"GPU"という名称を提唱しました。

技術的な意味として、GPUは「1秒あたり1000万ポリゴン以上を処理できる、座標変換、ライティング、トライアングル・セットアップおよびクリッピング、レンダリングなどの各エンジンを統合したシングルチップ・プロセッサ」と定義されています。

図2: CUDAへとつながるNDIVIA GPUの歴史(クリックで拡大)
NVIDIA Tesla Quadro事業部 GPUコンピューティング担当 シニア・エンジニア

外資系コンピュータ・メーカーにてPCグラフィックス・サブシステムやASICの設計開発、経営企画部門、製品開発プロジェクト・マネージャなどを経験し、2007年NVIDIA入社。現在、GPUコンピューティングの技術的なサポートを担当。
 

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています