GPUをグラフィック以外の処理に活用する
「CUDA」の誕生
GPUをもっと汎用に、という動きは2003年頃から顕著になってきていた。例えば2003年7月に開催されたSIGGRAPH 2003には“Computation on GPUs”というセッションがあり、線形代数計算をGPUに実装したり、疎行列をGPUに解かせるといった発表がされていたし、当時のATIのCEOを勤めていたDave Orton氏もこの頃からGPUをグラフィック以外の汎用処理に向けて使うというアイディアを語るようになってきていた。
これを後押ししたのは、当時のCPUの性能の上がらなさである。2003年といえばインテルがNorthwoodを発表した年であり、この頃はまだ「次のPrescottでは5GHz超えでさらに性能が上がる」などといわれていたが、ご存知の通り翌2004年に発表されたPrescottのお陰で、CPUの業界には急速に閉塞感が漂うことになった。
冷静に考えれば「AMDもあるだろう?」という気もするのだが、この2003~2004年はAMDも130nm SOIプロセスの立ち上げに失敗しており、性能を上げる以前に製品が出ないと騒いでいた頃なので仕方ないともいえる。
その一方で演算性能そのものはまだまだ足りないと認識されており、「だったらGPUを使えばいいのでは?」というのは誰しも考え付くことである。
もちろん、いきなり転用しようとしても無理がある。先にも述べたが、グラフィック用途をメインにしている従来のGPUでは、扱えるデータ型が8bitの整数か16~24bit程度の浮動小数点演算であり、これは汎用に使うにはあまりに不便すぎる。
32bitの整数や32/64bitの浮動小数点演算ができないとアプリケーションの移植は困難極めるだろうし、ある程度汎用で使えるようにするためには制御構造や演算命令などの見直しも必要である。
このあたり、どの程度の命令や機能を搭載するか、あるいはどんな形で利用できるようにするかといった基本的な仕様の策定には相応に時間がかかる。
そうしたこともあり、GPGPUの利用が可能となるシェーダーモデル4.0に対応したDirectX 10の発表は、Windows Vistaにあわせた2006年までずれ込んだ。
グラフィックの観点から言えば、バーテックス・シェーダーとピクセル・シェーダーを統合したユニファイド・シェーダー構造になったことがよく取りざたされるが、GPGPU的に見ると以下の拡張により、かなり自由にプログラミングができるようになった。
- 実行命令数の制限がなくなり、命令スロット数も非常に大きくなった
- 一時レジスター(32→4096)や定数レジスター(224→65536)の数が大幅に増やされた
- 動的なフロー制御の制約がなくなった
- 整数演算あるいはビット演算が追加された
またすべてのシェーダーが直接ローカルメモリー(つまりビデオカード上のメモリー)にアクセスして値を読み取ったり、あるいは結果を直接書き戻したりすることも可能になった。ようやく汎用プロセッサーとしてこれを使うための準備が整ったことになる。
このDirectX 10(シェーダーモデル4.0)に先に対応したのはNVIDIAだった。2006年にG80コアのGeForce 8800シリーズをリリースし、翌2007年6月にはこれに対応したCUDA(Compute Unified Device Architecture)を発表、すぐにダウンロード開始される。
CUDAはツールキットとして提供されるライブラリー(とツール群)であり、これを使ってNVIDIAのGPUで汎用計算をさせるものだ。要するにCgの汎用版と考えればよい。
ATIはこれに先駆け、R500ベースのRadeon X1000シリーズをGPGPU的な使い方にできるATI Stream SDKと呼ばれるライブラリーを2006年9月に発表している。
ただこのATI Stream SDKはR600コアへの対応がやや遅れたうえ、発表された時点では一般的なカードでは動かない(ATIのFireStreamシリーズ専用)ということもあり、普通にGeForce 8000シリーズカードを買えば使えたCUDAに比べると入手性が格段に落ちた。
またStream SDKはスタンフォード大の開発したBrookという言語をベースに構築されており、Cベースで記述できたCUDAよりも取っ付きが悪かったことも否めない。
結局2007年頃から、さまざまな研究機関は一斉にNVIDIAのグラフィックカードをまず少量購入、この上でCUDAを使ってアプリケーションの移植や性能の評価を始めることになる。
本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事
-
第868回
PC
物理IPには真似できない4%の差はどこから生まれるか? RTL実装が解き放つDimensity 9500の真価 -
第867回
PC
計算が速いだけじゃない! 自分で電圧を操って実力を出し切る賢すぎるAIチップ「Spyre」がAI処理を25%も速くする -
第866回
PC
NVIDIAを射程に捉えた韓国の雄rebellionsの怪物AIチップ「REBEL-Quad」 -
第865回
PC
1400WのモンスターGPU「Instinct MI350」の正体、AMDが選んだ効率を捨ててでも1.9倍の性能向上を獲る戦略 -
第864回
PC
なぜAMDはチップレットで勝利したのか? 2万ドルのウェハーから逆算する経済的合理性 -
第863回
PC
銅配線はなぜ限界なのか? ルテニウムへの移行で変わる半導体製造の常識と課題 -
第862回
PC
「ビル100階建て相当」の超難工事! DRAM微細化が限界を超え前人未到の垂直化へ突入 -
第861回
PC
INT4量子化+高度な電圧管理で消費電力60%削減かつ90%性能アップ! Snapdragon X2 Eliteの最先端技術を解説 -
第860回
PC
NVIDIAのVeraとRubinはPCIe Gen6対応、176スレッドの新アーキテクチャー搭載! 最高クラスの性能でAI開発を革新 -
第859回
デジタル
組み込み向けのAMD Ryzen AI Embedded P100シリーズはZen 5を最大6コア搭載で、最大50TOPSのNPU性能を実現 -
第858回
デジタル
CES 2026で実機を披露! AMDが発表した最先端AIラックHeliosの最新仕様を独自解説 - この連載の一覧へ











