T1

CUDA 1.0 公開 ── 汎用 GPU 計算

GeForce 8800 Ultra 基板上の NVIDIA G80 GPU パッケージ(刻印 G80-450-A3)
出典Hyins (Wikimedia Commons) · Public domain · Commons で見る ↗

メタデータ

日付
年代
2000s
Tier
T1
出典数
10
関連項目
03

CUDA(Compute Unified Device Architecture)は、NVIDIA の GPU をグラフィックス用の API を通さずに、汎用の並列計算機として使うための仕組みである。NVIDIA は2006年11月、GeForce 8800(G80)とともに構想を発表し、2007年2月にバージョン0.8を最初の公開ベータとして出した。正式版の1.0は2007年6月で、Programming Guide 1.0 の表紙には 6/23/2007 の日付がある。のちの深層学習と生成 AI の計算基盤は、この6月の1.0から地続きになっている。

CUDA 以前 ── 絵を描くふりをして計算する

GPU を計算に使う試み自体は CUDA より古い。2000年代前半には、研究者が計算をグラフィックスの処理に見立て、グラフィックス API 経由で GPU に解かせていた。いわゆる GPGPU である。

CUDA 1.0 の Programming Guide は、それまでの障害を3つ挙げている。GPU はグラフィックス API を通してしかプログラムできず、初心者には学習の壁が高く、グラフィックス以外の用途には不向きな API の負担がかかった。DRAM のどこからでも読めるが、任意の場所へは書き込めなかった。そして一部の用途は DRAM の帯域に縛られ、GPU の演算能力を使い切れなかった。

この壁を学術側から崩しにかかったのが、Stanford の Brook である。Ian Buck らが SIGGRAPH 2004 で発表した論文「Brook for GPUs: Stream Computing on Graphics Hardware」は、C に簡単なデータ並列の構文を加え、GPU をストリーム処理のコプロセッサとして使うシステムを示した。Buck は同じ2004年に博士課程を終えて NVIDIA に移っている。NVIDIA は自社のブログで、Buck を Brook の開発責任者であり、CUDA の発明者だと紹介している。

2006年11月 ── G80 と同時の発表

2006年11月8日、NVIDIA は CUDA を GPU で計算するための新しいアーキテクチャとして発表した。NVIDIA 自身はこれを業界初の GPU 向け C コンパイラ開発環境と呼び、従来の手法より最大100倍速く複雑な計算問題を解けると述べている。いずれも同社の主張である。対応ハードウェアは同時に登場した GeForce 8800 と、今後の Quadro 製品とされた。

CUDA 1.0 の中身

Programming Guide 1.0 は CUDA を次のように定義している。

CUDA stands for Compute Unified Device Architecture and is a new hardware and software architecture for issuing and managing computations on the GPU as a data-parallel computing device without the need of mapping them to a graphics API.

ソフトウェアは層になっていた。ハードウェアドライバ、API とそのランタイム、そして数学ライブラリの CUFFT(高速フーリエ変換)と CUBLAS(線形代数)である。プログラマが書くのは C 言語の拡張で、ガイドはこれを学習曲線を最小にするための選択だとしている。

項目CUDA 1.0(2007年)の内容
対象 GPUGeForce 8 シリーズ、Quadro FX 5600/4600、Tesla
プログラミング言語C 言語への最小限の拡張
付属ライブラリCUFFT、CUBLAS
ブロックあたりの最大スレッド数512
マルチプロセッサあたりの共有メモリ16KB
ワープの大きさ32 スレッド
マルチプロセッサ数(GeForce 8800 GTX、Tesla C870)16
倍精度浮動小数点ネイティブ非対応(double は float に格下げ)

計算は「スレッド」を「ブロック」に束ね、ブロックを「グリッド」に並べる3段で組み立てる。同じブロックのスレッドはチップ上の共有メモリでデータを受け渡し、同期できる。マルチプロセッサは32スレッドの「ワープ」を単位に命令を発行する。この構成は、名前と数値を変えながら今日の GPU まで続いている。

倍精度が使えなかったことは、初期の CUDA が科学技術計算の全域を覆えなかったことを意味する。それでも単精度で足りる画像処理・信号処理・一部の物理計算では、すぐに使い道が見つかった。

版の推移

Windows 版のリリースノートに残る版の履歴は短い。

時期版内容
2006年11月──GeForce 8800 とともに CUDA を発表
2007年2月0.8最初の公開ベータ
2007年6月0.9、1.01.0 で正式版
2007年12月1.1Toolkit アーカイブに記載
2008年8月2.0同上

NVIDIA の CUDA Toolkit アーカイブは、いまも最古の項目として「CUDA Toolkit 1.0 (June 2007)」を掲げている。2026年9月の時点で、同じ一覧の先頭は13.4.2である。

開かれた規格との競争

CUDA は NVIDIA の GPU でしか動かない。これに対し、Apple が提案した OpenCL は、2008年12月9日に Khronos Group が1.0として批准・公開した。Khronos はこれを、さまざまなプロセッサを対象とする初のオープンでロイヤリティフリーな並列プログラミング規格と位置づけ、策定には NVIDIA も参加した。

それでも主流は CUDA に残った。このサイトの NVIDIA のページが論じるとおり、乗り換えを高くつかせているのは言語仕様そのものより、CUDA の上に積み上がったライブラリとツールの厚みである。

深層学習との出会い

CUDA の当初の想定は科学技術計算だった。転機は5年後に来る。2012年、Toronto 大学のチームが GeForce GTX 580 を2枚使い、CUDA で書いた畳み込みのコードで学習させたネットワークが画像認識コンテスト ILSVRC で大差をつけた(AlexNet)。チームはそのコードを論文とともに公開している。

以後、深層学習の計算は GPU と CUDA の上で回るのが標準になり、その延長に2022年の H100 や2024年の Blackwell B200 がある。用語としての GPU と 深層学習 も参照。会社の歩みは NVIDIA に、同時代のハードウェアは ハードウェアの年表 にある。

よくある質問

CUDA はいつ公開されたのですか。
2006年11月に GeForce 8800 とともに発表され、2007年2月にバージョン0.8が最初の公開ベータとして出ました。正式版の1.0は2007年6月で、Programming Guide 1.0 には6月23日の日付があります。
CUDA とは何ですか。
NVIDIA の GPU を、グラフィックス API に作業を置き換えることなく、データ並列の計算機として使うためのハードウェアとソフトウェアの仕組みです。プログラムは C 言語の拡張で書き、ドライバ、ランタイム、数学ライブラリ(CUFFT、CUBLAS)がそれを支えます。
CUDA を作ったのは誰ですか。
NVIDIA は、Stanford でストリーム計算言語 Brook の開発を率い、2004年に NVIDIA に入った Ian Buck を CUDA の発明者として紹介しています。Brook は SIGGRAPH 2004 の論文で発表されました。
CUDA 1.0 はどの GPU で動いたのですか。
GeForce 8 シリーズ、Quadro FX 5600/4600、Tesla です。これらは倍精度浮動小数点をネイティブには扱えず、double 型は float に格下げされました。

出典

  1. 一次資料NVIDIA CUDA Compute Unified Device Architecture Programming Guide, Version 1.0 (6/23/2007) — NVIDIA

    CUDA の定義、それ以前の3つの障害、対応 GPU、ソフトウェア階層、スレッド・ブロック・グリッド、512スレッド・16KB・ワープ32、倍精度の扱い

    取得日: 2026-10-05

  2. 一次資料NVIDIA CUDA Release Notes, Windows, Version 1.0 — NVIDIA

    版の履歴(2007年2月の0.8が最初の公開ベータ、6月に0.9と1.0)

    取得日: 2026-10-05

  3. 一次資料CUDA Toolkit Archive — NVIDIA Developer

    取得日: 2026-10-05

  4. 一次資料CUDA Toolkit — NVIDIA Developer

    取得日: 2026-10-05

  5. 一次資料Ian Buck — author page, NVIDIA Blog

    Buck が2004年に NVIDIA に入ったこと、Brook の開発責任者だったこと、NVIDIA が彼を CUDA の発明者と紹介していること

    取得日: 2026-10-05

  6. 二次資料Nvidia Announces Cuda GPU Architecture — Game Developer, Nov 8, 2006

    2006年11月の発表、業界初の GPU 向け C コンパイラ環境、最大100倍という NVIDIA の主張

    取得日: 2026-10-05

  7. 三次資料CUDA — Wikipedia

    取得日: 2026-10-05

最終更新:

共有