GPGPU (General-purpose computing on graphics processing units; GPUによる汎用 はんよう 計算 けいさん )とは、GPU の演算 えんざん 資源 しげん を画像 がぞう 処理 しょり 以外 いがい の目的 もくてき に応用 おうよう する技術 ぎじゅつ のことである[1] [2] 。ビッグデータ などを含 ふく む科学 かがく 技術 ぎじゅつ 計算 けいさん に対 たい し大量 たいりょう の計算 けいさん を実行 じっこう できるというメリットのため、広 ひろ く使 つか われるようになった[3] 。2022年 ねん 、単一 たんいつ マシンとしては世界 せかい 初 はつ のエクサスケールコンピュータ となった米 べい HPE の「フロンティア 」にもベクトル計算 けいさん 用 よう にAMD のGPU が搭載 とうさい されるなど、世界 せかい 最速 さいそく を競 きそ うスーパーコンピュータ での利用 りよう も一般 いっぱん 的 てき である。
GPGPUは、GPU が持 も つベクトル計算 けいさん 機 き としての特性 とくせい を活 い かした汎用 はんよう 的 てき なストリーム・プロセッシング の一 いち 形態 けいたい である。GPUはコンピュータゲーム で多用 たよう されるリアルタイム画像 がぞう 処理 しょり 向 む けのデータ並列 へいれつ 計算 けいさん とパイプライン処理 しょり に特 とく 化 か した命令 めいれい 発行 はっこう 形態 けいたい を持 も ち、またGPUとメインメモリ 間 あいだ の帯域 たいいき 幅 はば は通例 つうれい 狭 せま く[注釈 ちゅうしゃく 1] 、固定 こてい 長 ちょう レジスタしか扱 あつか えない[注釈 ちゅうしゃく 2] (後述 こうじゅつ )ものの、GPUと直結 ちょっけつ されるVRAM 間 あいだ には十分 じゅうぶん 広 ひろ い帯域 たいいき 幅 はば を備 そな えておりSIMD やSIMT (英語 えいご 版 ばん ) による並列 へいれつ 計算 けいさん も行 おこな える[4] 。
GPGPUは制約 せいやく はあるもののHPC の分野 ぶんや で注目 ちゅうもく される応用 おうよう 技術 ぎじゅつ である。伝統 でんとう 的 てき に構築 こうちく されてきた、カスタムCPUとして開発 かいはつ されるベクトルプロセッサ を主体 しゅたい としたスーパーコンピュータ と比較 ひかく して、疎行列 そぎょうれつ で計算 けいさん 効率 こうりつ が低下 ていか する[注釈 ちゅうしゃく 3] 、可変長 かへんちょう ベクトル命令 めいれい が扱 あつか えずレジスタ長 ちょう で割 わ り切 き れない要素 ようそ を別途 べっと 考慮 こうりょ する必要 ひつよう があるという欠点 けってん はある[5] ものの、GPUを主体 しゅたい として計算 けいさん 機 き システムを構成 こうせい する方 ほう がコストパフォーマンス が高 たか くなることからHPC分野 ぶんや での導入 どうにゅう が進 すす んでいる[6] 。
しかし、GPU 特有 とくゆう の制約 せいやく は無 な くなりつつある。2023年 ねん 現在 げんざい ではプログラマブルシェーダー の発展 はってん によりCPUと同 どう 程度 ていど のプログラマビリティが実現 じつげん されており[7] 、OpenCLなどを用 もち いることでCPUとGPUでの相互 そうご で互換 ごかん 性 せい を持 も ったプログラムを作成 さくせい することも可能 かのう であることから[8] 、前述 ぜんじゅつ のランダムメモリアクセスに弱 よわ い、可変長 かへんちょう ベクトル命令 めいれい が利用 りよう できないという、伝統 でんとう 的 てき なベクトルプロセッサ と比較 ひかく した場合 ばあい の原理 げんり 的 てき な欠点 けってん 以外 いがい については改善 かいぜん されてきている。
最初 さいしょ の試 こころ みから一般 いっぱん 的 てき に使 つか えるAPIが完成 かんせい するまでに10年 ねん の歳月 さいげつ を要 よう した。
1998年 ねん : SGIのグラフィックスワークステーションを用 もち いた実験 じっけん [ 編集 へんしゅう ]
GPUという製品 せいひん カテゴリが登場 とうじょう する前年 ぜんねん でプログラマブルシェーダー も存在 そんざい しない1998年 ねん に、Ian Buck[9] によりSGI O2 R5000 とSGI Indigo2 R4400 Maximum IMPACTのグラフィックスアクセラレータ で、OpenGL のフレームバッファ を漸 やや 化 か 式 しき の各 かく 計算 けいさん ステップ用 よう に2枚 まい 用 もち いた単純 たんじゅん な流体 りゅうたい 計算 けいさん の高速 こうそく 化 か が試 こころ みられ、実際 じっさい に数 すう 倍 ばい 程度 ていど は高速 こうそく 化 か された[10] [11] 。この当時 とうじ のSGI のグラフィックスワークステーション にはジオメトリエンジン が独立 どくりつ したLSI チップとして搭載 とうさい されており、後 ご のGPUの原型 げんけい とも言 い える構成 こうせい となっていた[12] 。しかし固定 こてい 機能 きのう シェーダーしか存在 そんざい しない時代 じだい であったため非常 ひじょう に簡単 かんたん なモデルしか計算 けいさん できず、実用 じつよう には程遠 ほどとお い代物 しろもの であった。
固定 こてい 機能 きのう シェーダーを用 もち いて流体 りゅうたい 計算 けいさん を高速 こうそく 化 か する方法 ほうほう はGPGPUの着想 ちゃくそう 時 じ に試 こころ みられたのみであり、今日 きょう 的 てき なGPGPUの観点 かんてん からすると極 きわ めて特殊 とくしゅ でイメージが付 つ きづらいため、下記 かき にその研究 けんきゅう で実行 じっこう されたコードの引用 いんよう [10] と各行 かくこう の説明 せつめい を示 しめ す。概要 がいよう としてはOpenGLの標準 ひょうじゅん 機能 きのう の1つである2次元 じげん 畳 たた み込 こ みフィルタを漸 やや 化 か 式 しき の各 かく 計算 けいさん ステップにおける拡散 かくさん の操作 そうさ として転用 てんよう することで、各 かく 領域 りょういき の拡散 かくさん の計算 けいさん がハードウェアで並列 へいれつ 化 か されるというアイデアとなっていた。下記 かき のコードを見 み れば分 わ かる通 とお り、物理 ぶつり モデルを2次元 じげん 畳 たた み込 こ みフィルタとして表現 ひょうげん して標準 ひょうじゅん 機能 きのう に渡 わた すことしかできず、今日 きょう 的 てき なGPGPUと比較 ひかく すればブラックボックス な固定 こてい 機能 きのう シェーダーに並列 へいれつ 計算 けいさん を任 まか せるしかないため、全 まった く自由 じゆう が利 き かないことが分 わ かる。またRGBの各 かく 色 いろ 8bitを数値 すうち に割 わ り当 あ てるため、計算 けいさん 精度 せいど が重要 じゅうよう な科学 かがく 技術 ぎじゅつ 計算 けいさん として8bitを超 こ える精度 せいど で計算 けいさん するためにはRGBの各 かく 色 いろ 間 あいだ での桁 けた の繰 く り上 あ がりなども実装 じっそう する必要 ひつよう があったが、その際 さい に大 おお きなオーバーヘッドが生 しょう じて計算 けいさん が非常 ひじょう に遅 おそ くなってしまうという問題 もんだい があった。当時 とうじ はIan Buck自身 じしん も、これらの実用 じつよう に当 あ たって許容 きょよう できない制約 せいやく を緩和 かんわ するためには今後 こんご のグラフィックスハードウェアの進歩 しんぽ が必要 ひつよう であると述 の べている。
#define k .2 // 拡散 かくさん 係数 けいすう の定義 ていぎ
/* 畳 たた み込 こ みフィルタの定義 ていぎ */
float filter [] = {
0.0 , k , 0.0 ,
k , 1-4 * k , k ,
0.0 , k , 0.0
};
glConvolutionFilter2D ( filter ) // 畳 たた み込 こ みフィルタを設定 せってい
glEnable ( GL_CONVOLUTION ) // 畳 たた み込 こ みフィルタを有効 ゆうこう 化 か
glReadBuffer ( GL_FRONT ) // 読 よ み込 こ み側 がわ のフレームバッファ(1ステップの畳 たた み込 こ み計算 けいさん における現 げん ステップ(例 たと えばtと置 お く)の値 ね を保存 ほぞん するバッファ)
glDrawBuffer ( GL_BACK ) // 書 か き込 こ み側 がわ のフレームバッファ(1ステップの畳 たた み込 こ み計算 けいさん における次 つぎ ステップ(例 たと えばt+1と置 お く)の値 ね を保存 ほぞん するバッファ)
... Draw any initial conditions ... // 任意 にんい の初期 しょき 条件 じょうけん の描画 びょうが
glRasterPos ( 1 , 1 ); // ピクセル操作 そうさ のラスター位置 いち を(x,y)=(1,1)に設定 せってい
/* 畳 たた み込 こ み計算 けいさん の繰 く り返 かえ し実行 じっこう */
while ( 1 ) {
glCopyPixels ( 0 , 0 , Width , Height , GL_COLOR );
glxSwapbuffers ( dspy , wnd );
}
1999年 ねん -2000年 ねん : GPUとプログラマブルシェーダーの登場 とうじょう [ 編集 へんしゅう ]
続 つづ いて1999年 ねん のGeForce 256 の発売 はつばい によってジオメトリエンジン をグラフィックスアクセラレータ に統合 とうごう した「GPU」という製品 せいひん カテゴリが登場 とうじょう し、2000年 ねん 11月9日 にち にはアセンブリ言語 げんご で128個 こ の命令 めいれい のみ記述 きじゅつ 可能 かのう な原始 げんし 的 てき なプログラマブルシェーダー (シェーダーモデル 1.x)が登場 とうじょう した。2002年 ねん 、GPUの固定 こてい 機能 きのう シェーダーがプログラマブルシェーダー に置 お き換 か わったことでブレイクスルー が起 お きたと主張 しゅちょう し、ムーアの法則 ほうそく を超 こ える速度 そくど で進化 しんか するGPUのストリーム・プロセッサ としての未来 みらい を予感 よかん したIan Buckにより、再度 さいど GPUによるレイトレーシング計算 けいさん の高速 こうそく 化 か についての論文 ろんぶん が発表 はっぴょう された[13] 。
2002年 ねん : シェーダーモデル2.0への進化 しんか [ 編集 へんしゅう ]
2002年 ねん 12月20日 にち のシェーダーモデル 2.0の登場 とうじょう により、GPUのプログラマブルシェーダー で従来 じゅうらい より遥 はる かに長 なが い命令 めいれい 長 ちょう と浮動 ふどう 小数点 しょうすうてん 演算 えんざん が扱 あつか えるようになった直後 ちょくご の2003年 ねん 頃 ころ からGPGPUが大々的 だいだいてき に試 こころ みられ始 はじ め、2004年 ねん 8月 がつ には世界 せかい 初 はつ のGPGPU学会 がっかい 「GP2」(Workshop on General Purpose Computing on Graphics Processors)が開催 かいさい された[14] 。しかし当時 とうじ は画像 がぞう 処理 しょり 専用 せんよう に作 つく られていたGPU特有 とくゆう の制約 せいやく (演算 えんざん 精度 せいど の不足 ふそく や仮想 かそう メモリが扱 あつか えないなど)について酷評 こくひょう が相次 あいつ いでいた[要 よう 出典 しゅってん ] 。またGPUメーカーは歩留 ぶど まり向上 こうじょう のため画面 がめん 表示 ひょうじ に問題 もんだい がなければ計算 けいさん ミスがあってもGPUを出荷 しゅっか するため、計算 けいさん ミスを起 お こすようなGPUを検品 けんぴん して排除 はいじょ する必要 ひつよう が生 しょう じた[要 よう 出典 しゅってん ] 。
2007年 ねん : CUDAの提供 ていきょう 開始 かいし [ 編集 へんしゅう ]
その後 ご 、2005年 ねん にIan BuckらのチームがグラフィックスAPIを経由 けいゆ せずC言語 げんご ライクにGPGPUの処理 しょり を記述 きじゅつ できるCUDA の開発 かいはつ に着手 ちゃくしゅ [11] し、2007年 ねん 7月 がつ にCUDA 1.0を提供 ていきょう 開始 かいし したことで、以降 いこう 2008年 ねん 頃 ころ からGPGPUが普及 ふきゅう して行 い った[14] 。CUDAが有名 ゆうめい になったことで、NVIDIA はGPGPUでトップランナーの地位 ちい を占 し めることになった。GPGPUは2010年代 ねんだい 前半 ぜんはん 以降 いこう のビッグデータ ブームや仮想 かそう 通貨 つうか ブーム、2010年代 ねんだい 中盤 ちゅうばん 以降 いこう の人工 じんこう 知能 ちのう ブームを下 した 支 ささ えする存在 そんざい となり、2020年代 ねんだい にはブームのあまりの過熱 かねつ ぶりにGPU製品 せいひん の供給 きょうきゅう が不足 ふそく する事態 じたい まで発生 はっせい している[15] 。
この節 ふし は検証 けんしょう 可能 かのう な参考 さんこう 文献 ぶんけん や出典 しゅってん が全 まった く示 しめ されていないか、不十分 ふじゅうぶん です。 出典 しゅってん を追加 ついか して記事 きじ の信頼 しんらい 性 せい 向上 こうじょう にご協力 きょうりょく ください。(このテンプレートの使 つか い方 かた ) 出典 しゅってん 検索 けんさく ? : "GPGPU" – ニュース · 書籍 しょせき · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2015年 ねん 3月 がつ )
GPUは一般 いっぱん 的 てき に画像 がぞう 処理 しょり を専門 せんもん とする演算 えんざん 装置 そうち であり、多 おお くの場合 ばあい 、CPU と呼 よ ばれる主演 しゅえん 算 さん 装置 そうち の制御 せいぎょ の下 した で用 もち いられる動画 どうが 信号 しんごう 生成 せいせい 専用 せんよう の補助 ほじょ 演算 えんざん 用 よう IC である。動画 どうが 像 ぞう の実 じつ 時間 じかん 内 ない での生成 せいせい は高速 こうそく な演算 えんざん が要求 ようきゅう されるが、その多 おお くが定式 ていしき 化 か された単純 たんじゅん な演算 えんざん の繰 く り返 かえ しであるためハードウェア 化 か に向 む いており、GPUを設計 せっけい している数 すう 社 しゃ からは、高速 こうそく なメモリ ・インタフェース 機能 きのう と高 たか い画像 がぞう 演算 えんざん 能力 のうりょく を備 そな えたIC製品 せいひん のシリーズがいくつもリリースされている。GPUは民生 みんせい 用 よう に大量 たいりょう 生産 せいさん されているため、スーパーコンピュータに用 もち いられるベクトル型 がた のカスタムCPUからすれば非常 ひじょう に安価 あんか である[6] 。但 ただ し、GPGPUは完全 かんぜん なベクトル型 がた として設計 せっけい されていないx86 等 ひとし の一般 いっぱん 的 てき なCPUのSIMD 命令 めいれい と比較 ひかく して高 たか い並列 へいれつ 度 ど を誇 ほこ りスループット が高 たか いが、バスアクセスのためにレイテンシ も大 おお きくなることが欠点 けってん となる。従 したが って、一定 いってい 量 りょう のデータを常 つね に流 なが し込 こ みながら計算 けいさん させ続 つづ ける事 こと が最 もっと も理想 りそう 的 てき な利用 りよう 形態 けいたい (ストリーム・プロセッシング )であり、逆 ぎゃく にネットワークのパケット処理 しょり といった多数 たすう の小 ちい さいデータの各々 おのおの に対 たい して個別 こべつ に処理 しょり を行 おこな う場合 ばあい では効率 こうりつ は劇的 げきてき に悪化 あっか する。
特 とく に1990年代 ねんだい 中盤 ちゅうばん 以降 いこう は3D描画 びょうが 性能 せいのう が劇的 げきてき に向上 こうじょう し、それに伴 ともな いベクトル ・行列 ぎょうれつ 演算 えんざん を中心 ちゅうしん としたSIMD 演算 えんざん 機 き の色彩 しきさい が強 つよ くなってきた。2000年代 ねんだい に入 はい ると、表現 ひょうげん 力 りょく の向上 こうじょう を求 もと めて固定 こてい 機能 きのう シェーダーからプログラマブルシェーダー への移行 いこう が進 すす み、演算 えんざん の自由 じゆう 度 ど ・柔軟 じゅうなん 性 せい (プログラマビリティ)が飛躍 ひやく 的 てき に増 ま した。そこでこれをグラフィックス・レンダリング のみならず、他 た の数値 すうち 演算 えんざん にも利用 りよう しようというのがGPGPUのコンセプトである。GPGPUのコンセプトは2000年代 ねんだい の実験 じっけん 期 き を経 へ て、入力 にゅうりょく データをテクスチャデータに変換 へんかん して画像 がぞう 用 よう のシェーダーに処理 しょり させるという回 まわ りくどい工夫 くふう [16] が必要 ひつよう ない汎用 はんよう 計算 けいさん 用 よう の言語 げんご やコンピュートシェーダー が開発 かいはつ された後 のち 、2010年 ねん 頃 ころ のビッグデータ ブームの波 なみ に乗 の り産業 さんぎょう 応用 おうよう が開始 かいし され、2010年代 ねんだい 半 なか ばには一般 いっぱん 化 か した。
上記 じょうき の表 ひょう は 1CPU, 1MIC, 1GPU に限定 げんてい した表 ひょう である。なおAMD Radeon R9 295X2やAMD FirePro S10000、NVIDIA GeForce GTX TITAN ZやNVIDIA Tesla K80のようなデュアルGPUソリューションは除外 じょがい されている。
2015年 ねん 現在 げんざい 、GPUの浮動 ふどう 小数点 しょうすうてん 演算 えんざん 能力 のうりょく は単精度 たんせいど で8TFLOPS をオーバーした一方 いっぽう で、CPUはサーバー 向 む けでも単精度 たんせいど は1TFLOPS台 だい に留 とど まっている。GPUは構成 こうせい が単純 たんじゅん であるためにCPUよりも集積 しゅうせき 化 か の点 てん で有利 ゆうり であることから浮動 ふどう 小数点 しょうすうてん 演算 えんざん での効率 こうりつ がよく、またGPU専用 せんよう にローカル接続 せつぞく されたメモリIC (VRAM ) とのバンド幅 はば を広 ひろ く備 そな えるために、CPUと比 くら べて性能 せいのう 比 ひ で安価 あんか かつ成長 せいちょう の伸 の び率 りつ が高 たか い[19] 。さらにCPUよりも電力 でんりょく あたりの理論 りろん 演算 えんざん 性能 せいのう (ワットパフォーマンス、Performance per Watt )が高 たか いのもGPUの特徴 とくちょう である。またGPUの主 おも な使途 しと がゲーム(PCゲーム )と動画 どうが 再生 さいせい で、ゲームをしないユーザーにとって余 あま り気味 ぎみ の資源 しげん ということもあって注目 ちゅうもく されている。
2015年 ねん 現在 げんざい におけるGPGPU対応 たいおう のグラフィックスカード (グラフィックスチップ)単体 たんたい 製品 せいひん すなわちディスクリートGPU (discrete GPU, dGPU) としては、NVIDIA のNVIDIA GeForce およびNVIDIA Quadro シリーズや、AMD のAMD Radeon およびAMD FirePro シリーズなどが代表 だいひょう として挙 あ げられる(ただし後述 こうじゅつ するGPGPU対応 たいおう API をサポートするのはDirectX 10世代 せだい 以降 いこう の製品 せいひん となる)。CPU統合 とうごう 型 がた GPU (integrated GPU, iGPU) に関 かん しては、NVIDIAのNVIDIA Tegra シリーズ、AMDのAMD APU シリーズ、そしてインテル のIntel HD Graphics シリーズなどがGPGPUに対応 たいおう している。一方 いっぽう 、GPGPU専用 せんよう 製品 せいひん としては、NVIDIAのNVIDIA Tesla シリーズ、そしてAMDのAMD FirePro Sシリーズ(旧 きゅう AMD FireStream シリーズ)が挙 あ げられ、こちらは科学 かがく 技術 ぎじゅつ 分野 ぶんや のHPC 市場 いちば 向 む けにも投入 とうにゅう されるなど、従来 じゅうらい のベクトル計算 けいさん 機 き からの置 お き換 か えを視野 しや に置 お いた[独自 どくじ 研究 けんきゅう ? ] 製品 せいひん 展開 てんかい が行 おこ なわれている。
GPGPUアプリケーション 開発 かいはつ の環境 かんきょう およびAPIとしては、ハードウェア内部 ないぶ 構造 こうぞう 自体 じたい が汎用 はんよう 性 せい を増 ま したDirectX 10世代 せだい の統合 とうごう 型 がた シェーダーアーキテクチャGPUの登場 とうじょう 以降 いこう 、NVIDIAによるGPGPU専用 せんよう の統合 とうごう 開発 かいはつ 環境 かんきょう 「CUDA 」や、AMDによるGPGPU基盤 きばん 「AMD Stream 」(旧称 きゅうしょう ATI Stream )、そしてクロノス・グループ による標準 ひょうじゅん 規格 きかく 「OpenCL 」が現 あら われ、GPGPU活用 かつよう の幅 はば が広 ひろ がりつつある。
なお、DirectX (Direct3D /HLSL ) はバージョン11でGPUによる汎用 はんよう 演算 えんざん 用 よう のステージであるコンピュートシェーダー(DirectCompute )を、またOpenGL /GLSL はバージョン4.3で同様 どうよう のコンピュートシェーダーを導入 どうにゅう する[20] など、グラフィックスAPIのほうにも従来 じゅうらい のグラフィックスパイプライン に加 くわ えてGPGPU機能 きのう を活用 かつよう するための変化 へんか が現 あらわ れつつある。Metal やVulkan といった後発 こうはつ のローレベルグラフィックスAPIにも、コンピュートシェーダーが搭載 とうさい されている。
その他 た 、マイクロソフト の「C++ AMP 」や、PGI の「OpenACC 」[21] など、DirectCompute/OpenCL/CUDAといったローレベルAPIをバックエンドとしながら、従来 じゅうらい のC /C++ やFortran におけるOpenMP に近 ちか い高 こう レベル並列 へいれつ プログラミング環境 かんきょう を提供 ていきょう するアクセラレータ系 けい ライブラリ ・言語 げんご 拡張 かくちょう も出現 しゅつげん している。
GPUはメモリにシーケンシャルにアクセスし、かつ条件 じょうけん 分岐 ぶんき の無 な い計算 けいさん (演算 えんざん 密度 みつど の高 たか い処理 しょり )に強 つよ い。そのような例 れい に行列 ぎょうれつ 計算 けいさん がある。苦手 にがて な物 もの の代表 だいひょう として二分 にぶん 探索 たんさく がある。二分 にぶん 探索 たんさく は条件 じょうけん 分岐 ぶんき だらけなうえ、メモリにランダムアクセスする。ポインタ をたどる操作 そうさ もメモリにランダムアクセスするため、連結 れんけつ リスト や木 き 構造 こうぞう なども苦手 にがて である。密行 みっこう 列 れつ は得意 とくい だが、疎行列 そぎょうれつ は苦手 にがて で、東京大学 とうきょうだいがく 情報 じょうほう 基盤 きばん センター によると100倍 ばい 遅 おそ い[22] 。グラフ計算 けいさん においては、例 たと えば最短 さいたん 経路 けいろ 問題 もんだい では、完全 かんぜん グラフ のような密 みつ グラフに対 たい しては高速 こうそく に計算 けいさん できるが、頂点 ちょうてん から数 すう 本 ほん しか辺 あたり が出 で ていないような疎 うと グラフに対 たい しては遅 おそ い[23] 。
GPUはシェーダープロセッサ(ストリームプロセッサ[24] 、ストリーミングプロセッサ[25] とも)と呼 よ ばれる演算 えんざん ユニットを多数 たすう 持 も ち、複数 ふくすう のシェーダープロセッサをまとめてクラスタ としている。これらの演算 えんざん 器 き に命令 めいれい を与 あた えるインストラクション・ユニットはクラスタごとに1台 だい しか無 な く、クラスタを構成 こうせい するシェーダープロセッサはそれぞれ異 こと なるデータを与 あた えられ、そのデータに対 たい して同 おな じ命令 めいれい 内容 ないよう を一 いち 度 ど に実行 じっこう する。このようなSIMD型 がた データ処理 しょり は3次元 じげん 演算 えんざん やマルチメディア 処理 しょり に効果 こうか を発揮 はっき する一方 いっぽう で、命令 めいれい 中 ちゅう に条件 じょうけん 分岐 ぶんき による分岐 ぶんき が入 はい るとオーバーヘッド がかさみ、途端 とたん に効率 こうりつ を落 お としてしまう。今日 きょう のCPU では、このようなペナルティを最小限 さいしょうげん にするためにプリフェッチ/プリデコードや投機 とうき 実行 じっこう /レジスタ・リネーミングといった機能 きのう を備 そな えているが、GPUでは備 そな えていない(限定 げんてい 的 てき な条件 じょうけん 付 つ きで投機 とうき 的 てき 実行 じっこう を行 くだり なえるものもある。GPUでの動的 どうてき 分岐 ぶんき はDirectX 9.0c世代 せだい 以降 いこう でようやく現実 げんじつ 的 てき になった[26] [27] )。またPC向 む けのGPUではシェーダープロセッサごとに分岐 ぶんき するためのプログラムカウンターを持 も たないため、条件 じょうけん 分岐 ぶんき の際 さい は個別 こべつ に異 こと なる命令 めいれい を発行 はっこう するのではなく、実際 じっさい に命令 めいれい を実行 じっこう するか否 ひ かを分 わ けるためのマスクレジスタを使 つか って分岐 ぶんき する手法 しゅほう が採用 さいよう されている[28] [29] 。
また、シェーダープロセッサ間 あいだ でデータをやりとりする場合 ばあい 、遠 とお くのデータバス を経由 けいゆ することになり、それがボトルネックとなってしまう。この点 てん に関 かん しては、DirectX 10世代 せだい の統合 とうごう 型 がた シェーダーアーキテクチャ以降 いこう のハードウェアに搭載 とうさい されている、小 しょう 容量 ようりょう だがプロセッサグループ内 ない で共有 きょうゆう することのできる高速 こうそく なキャッシュメモリ (共有 きょうゆう メモリ)を介 かい することで、プロセッサグループ内 ない でのデータ交換 こうかん やメモリI/Oの効率 こうりつ を高 たか めることができる[30] [31] 。
一般 いっぱん のアプリケーションで条件 じょうけん 分岐 ぶんき が存在 そんざい しないものは珍 めずら しく、こういった制約 せいやく によってGPUはオフィススイート のようなアプリケーションの実行 じっこう には不向 ふむ きである。GPGPUの発展 はってん にはいかに効率 こうりつ を落 お とさず条件 じょうけん 分岐 ぶんき を行 おこ なうかというのが1つの課題 かだい となっている。原理 げんり 的 てき にはシンプルなアルゴリズム構造 こうぞう を持 も ったプログラムによって、並列 へいれつ データ処理 しょり に最適 さいてき 化 か することがGPGPUの特長 とくちょう を最大限 さいだいげん 引 ひ き出 だ すことにつながるといえる。
単精度 たんせいど 浮動 ふどう 小数点 しょうすうてん 演算 えんざん に関 かん してはCPUをはるかに上回 うわまわ る理論 りろん 演算 えんざん 性能 せいのう とスケーラビリティ を持 も つGPUだが、倍精度 ばいせいど 浮動 ふどう 小数点 しょうすうてん 演算 えんざん に関 かん しては様相 ようそう が異 こと なる。もともとGPUが扱 あつか う多 おお くの画像 がぞう 演算 えんざん (特 とく にリアルタイム3Dグラフィックス)では、整数 せいすう 演算 えんざん や単精度 たんせいど の浮動 ふどう 小数点 しょうすうてん 演算 えんざん で足 た りてしまうために浮動 ふどう 小数点 しょうすうてん 演算 えんざん 器 き は仮数 かすう 部 ぶ が24ビット 程度 ていど とそれほど広 ひろ くなく、単精度 たんせいど の演算 えんざん 器 き で倍精度 ばいせいど の浮動 ふどう 小数点 しょうすうてん 演算 えんざん を行 おこ なうには、分割 ぶんかつ して幾度 いくど も演算 えんざん 器 き を使 つか う必要 ひつよう があり、性能 せいのう を大 おお きく落 お とす要因 よういん となる。なお倍精度 ばいせいど 対応 たいおう が必須 ひっす とされる科学 かがく 技術 ぎじゅつ 計算 けいさん 分野 ぶんや を含 ふく めたHPC向 む けに設計 せっけい された製品 せいひん では、倍精度 ばいせいど 専用 せんよう の演算 えんざん 器 き を搭載 とうさい ・有効 ゆうこう 化 か しているものもある[32] 。
AMDは2006年 ねん に自社 じしゃ のGPU「R580 」をベースとした、単精度 たんせいど 浮動 ふどう 小数点 しょうすうてん 演算 えんざん 対応 たいおう のストリームプロセッシング向 む け製品 せいひん 「AMD Stream Processor」(第 だい 1世代 せだい AMD FireStream )を発表 はっぴょう [33] 、続 つづ いて2007年 ねん にR6xx コアを使用 しよう した業界 ぎょうかい 初 はつ の倍精度 ばいせいど 浮動 ふどう 小数点 しょうすうてん 演算 えんざん 対応 たいおう HPC向 む けGPUである「AMD FireStream 9170」(第 だい 2世代 せだい AMD FireStream )を発売 はつばい [34] した(ただし倍精度 ばいせいど の理論 りろん 演算 えんざん 性能 せいのう は単精度 たんせいど の場合 ばあい の1/5となる[35] )。また2008年 ねん に発売 はつばい されたRADEON HD 4850は1チップでは世界 せかい 初 はつ の1TFLOPS(単精度 たんせいど )を達成 たっせい し、このRADEON HD 4850にも使用 しよう されたR7xx コアを使用 しよう して低 てい 価格 かかく かつ高性能 こうせいのう を売 う りに、HPC分野 ぶんや 向 む けに第 だい 3世代 せだい AMD FireStream を発売 はつばい [36] することになった。2010年 ねん には、さらに高性能 こうせいのう 化 か した第 だい 4世代 せだい AMD FireStream を発売 はつばい している。2014年 ねん に発売 はつばい されたAMD FirePro S9100/S9150では倍精度 ばいせいど 演算 えんざん 性能 せいのう が強化 きょうか され、倍精度 ばいせいど の理論 りろん 演算 えんざん 性能 せいのう は単精度 たんせいど の場合 ばあい の1/2になっている[37] [38] 。
NVIDIAも、自社 じしゃ のGPU「G80 」をベースとした、単精度 たんせいど 浮動 ふどう 小数点 しょうすうてん 演算 えんざん 対応 たいおう のHPC向 む け製品 せいひん 「Tesla C870」を2007年 ねん に投入 とうにゅう 、さらに2008年 ねん に発売 はつばい された NVIDIA Tesla C1060 で倍精度 ばいせいど に対応 たいおう したが、単精度 たんせいど 933GFLOPSに比 くら べて倍精度 ばいせいど は1/12の78GFLOPSとなっており[39] 、倍精度 ばいせいど 演算 えんざん 性能 せいのう が極端 きょくたん に低 ひく かった。2010年 ねん に発売 はつばい された Fermi 世代 せだい の Tesla 20 シリーズ[40] [41] では倍精度 ばいせいど 演算 えんざん 性能 せいのう が強化 きょうか され、倍精度 ばいせいど の理論 りろん 演算 えんざん 性能 せいのう は単精度 たんせいど の場合 ばあい の1/2になったが、2012年 ねん に発売 はつばい されたKepler世代 せだい のTesla K20シリーズ[42] [43] 、2013年 ねん に発表 はっぴょう されたK40[44] 、2014年 ねん に発表 はっぴょう されたK80[45] [46] では倍精度 ばいせいど の理論 りろん 演算 えんざん 性能 せいのう は単精度 たんせいど の場合 ばあい の1/3となっている。
2020年 ねん 現在 げんざい でも、GPUにおける倍精度 ばいせいど 演算 えんざん に関 かん してはHPC向 む けを除 のぞ き、省 しょう 電力 でんりょく 性能 せいのう やゲーミング性能 せいのう を重視 じゅうし ・維持 いじ するために必要 ひつよう 最低限 さいていげん の性能 せいのう しか用意 ようい されないことが多 おお い[注釈 ちゅうしゃく 4] 。また倍精度 ばいせいど 専用 せんよう の演算 えんざん ユニットでは単精度 たんせいど の演算 えんざん を行 おこ なうことはできないため、単精度 たんせいど を優先 ゆうせん するか、それとも倍精度 ばいせいど を優先 ゆうせん するかはチップ設計 せっけい 段階 だんかい におけるトレードオフとなる。実際 じっさい 、NVIDIAのMaxwellアーキテクチャのGPUでは前 ぜん 世代 せだい に存在 そんざい した倍精度 ばいせいど 演算 えんざん 器 き が省略 しょうりゃく され、単精度 たんせいど 演算 えんざん 器 き を使 つか って倍精度 ばいせいど 演算 えんざん を行 おこ なうため、倍精度 ばいせいど 演算 えんざん のピーク性能 せいのう は単精度 たんせいど 演算 えんざん の1/32となる[48] 。このため、HPC向 む け以外 いがい のGPUは倍精度 ばいせいど の浮動 ふどう 小数点 しょうすうてん 演算 えんざん が不得意 ふとくい であると言 い える。
深層 しんそう 学習 がくしゅう の計算 けいさん においては計算 けいさん 精度 せいど が求 もと められないことから、半 はん 精度 せいど (16ビット)の演算 えんざん を高速 こうそく で行 おこな えるようにハードウェア側 がわ の対応 たいおう も進 すす みつつある[注釈 ちゅうしゃく 5] [50] 。深層 しんそう 学習 がくしゅう においては仮数 かすう 部 ぶ の細 こま かさよりも値 ね がオーバーフローしないほうが使 つか いやすいというメリットのため、指数 しすう 部 ぶ を増 ふ やしたBF16(bfloat16 (英語 えいご 版 ばん ) )と呼 よ ばれるフォーマットが考案 こうあん され、一部 いちぶ のGPU[注釈 ちゅうしゃく 6] でサポートされている[51] 。
GPUから派生 はせい した分野 ぶんや 特 とく 化 か 型 がた のプロセッサとして、ディープラーニングなどのAI計算 けいさん 能力 のうりょく に対 たい して既存 きそん のGPUでは消費 しょうひ 電力 でんりょく の大 おお きさが問題 もんだい になることから、計算 けいさん 精度 せいど を8ビットに抑 おさ えて、積 せき 和 わ 演算 えんざん に特 とく 化 か したTPU (テンソル・プロセッシング・ユニット )というプロセッサが実現 じつげん されており、人工 じんこう 知能 ちのう のアクセラレーターとして活用 かつよう されている[52] 。バッテリー駆動 くどう が基本 きほん となるスマートフォン のSoC にも電力 でんりょく 効率 こうりつ 向上 こうじょう の必要 ひつよう 性 せい からAIアクセラレータ が搭載 とうさい されている。
DirectX 11対応 たいおう となるEvergreen世代 せだい 以降 いこう のAMD GPU、およびFermi世代 せだい 以降 いこう のNVIDIA GPUでは、浮動 ふどう 小数点 しょうすうてん の演算 えんざん 精度 せいど はIEEE 754 規格 きかく に準拠 じゅんきょ したものとなっている。なおNVIDIA GPUおよびAMD GPUでは融合 ゆうごう 積 せき 和 わ 演算 えんざん 命令 めいれい (FMA) をサポートしているが、CPUで同 おな じ内容 ないよう の処理 しょり をFMAを使 つか わず実行 じっこう した場合 ばあい と比 くら べて、GPUによる演算 えんざん 結果 けっか が異 こと なることもある[53] [54] [55] [56] [57] 。
この節 ふし は検証 けんしょう 可能 かのう な参考 さんこう 文献 ぶんけん や出典 しゅってん が全 まった く示 しめ されていないか、不十分 ふじゅうぶん です。 出典 しゅってん を追加 ついか して記事 きじ の信頼 しんらい 性 せい 向上 こうじょう にご協力 きょうりょく ください。(このテンプレートの使 つか い方 かた ) 出典 しゅってん 検索 けんさく ? : "GPGPU" – ニュース · 書籍 しょせき · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2015年 ねん 3月 がつ )
この節 ふし は大言壮語 たいげんそうご 的 てき な記述 きじゅつ になっています。 Wikipedia:大言壮語 たいげんそうご をしない を参考 さんこう に修正 しゅうせい して下 くだ さい。(2015年 ねん 3月 がつ )
この節 ふし は言葉 ことば を濁 にご した曖昧 あいまい な記述 きじゅつ になっています。 Wikipedia:言葉 ことば を濁 にご さない およびWikipedia:避 さ けたい言葉 ことば を参考 さんこう に修正 しゅうせい してください。(2015年 ねん 3月 がつ )
メモリ環境 かんきょう についても、演算 えんざん 入力 にゅうりょく は少数 しょうすう の格子 こうし 点 てん データと幾分 いくぶん 大 おお きなテクスチャ・データだけであり[疑問 ぎもん 点 てん – ノート ] 、演算 えんざん 出力 しゅつりょく は画像 がぞう 1枚 まい 程度 ていど の大 おお きさのピクセルごとに3色 しょく [疑問 ぎもん 点 てん – ノート ] のデータを保持 ほじ しながら順次 じゅんじ それらを送 おく り出 だ すだけで済 す むため、相応 そうおう に大 おお きな[疑問 ぎもん 点 てん – ノート ] 外部 がいぶ の半導体 はんどうたい メモリ (グラフィックスメモリ/ビデオメモリ/デバイスメモリ/VRAM )とかなり広 ひろ い [疑問 ぎもん 点 てん – ノート ] メモリバンド幅 はば による接続 せつぞく で十分 じゅうぶん に対応 たいおう しており、演算 えんざん 対象 たいしょう データの局所 きょくしょ 性 せい が高 たか いのでグラフィックスメモリと内部 ないぶ キャッシュによってデータの読 よ み書 か き性能 せいのう が向上 こうじょう すると同時 どうじ に演算 えんざん も途切 とぎ れずに順次 じゅんじ 行 おこな える傾向 けいこう が強 つよ い。
基本 きほん 的 てき にGPUは、配列 はいれつ 構造 こうぞう の単純 たんじゅん なデータを半 はん 精度 せいど /単精度 たんせいど 程度 ていど の浮動 ふどう 小数点 しょうすうてん 演算 えんざん によって順番 じゅんばん に処理 しょり することで2次元 じげん の動画 どうが 像 ぞう データを実 じつ 時間 じかん 内 ない に生成 せいせい することに特 とく 化 か しているため、それ以外 いがい の用途 ようと ではあまり高 たか い性能 せいのう は期待 きたい できない。リアルタイム画像 がぞう 処理 しょり 専用 せんよう ICの流用 りゅうよう では、科学 かがく 技術 ぎじゅつ 計算 けいさん でも倍精度 ばいせいど 以上 いじょう の浮動 ふどう 小数点 しょうすうてん 演算 えんざん (拡張 かくちょう 倍精度 ばいせいど ・四 よん 倍精度 ばいせいど など)を必要 ひつよう とするものや、演算 えんざん の局所 きょくしょ 性 せい が低 ひく いものではそれほど高 たか い性能 せいのう は得 え られない。リアルタイム画像 がぞう 処理 しょり 専用 せんよう ではなく、GPUから派生 はせい して新 あら たに開発 かいはつ されたGPGPU用 よう のICでは、倍精度 ばいせいど 浮動 ふどう 小数点 しょうすうてん 演算 えんざん やより広 ひろ いメモリ空間 くうかん に対応 たいおう したものがあり、これらは広範 こうはん な科学 かがく 技術 ぎじゅつ 計算 けいさん への利用 りよう が期待 きたい される。なお、コンシューマー向 む けの画像 がぞう 処理 しょり 分野 ぶんや ではほとんど必要 ひつよう とされないメモリの冗長 じょうちょう 機構 きこう であるECC がHPC 分野 ぶんや では必須 ひっす とされるため、ICを共用 きょうよう する場合 ばあい に制約 せいやく となる[58] 。
GPUによるVRAMへのアクセスは、複数 ふくすう のプロセッサ群 ぐん によって並列 へいれつ 的 てき に発生 はっせい するため、連続 れんぞく したメモリ領域 りょういき に対 たい するコアレスアクセス(coalesce access、≒シーケンシャルアクセス)を行 おこ なうことで効率 こうりつ 化 か ・高速 こうそく 化 か できる[59] 。NVIDIA GPUでは32のハードウェアスレッドを束 たば ねるバッチ単位 たんい をWarp [60] と呼 よ び、AMD GPUでは64のハードウェアスレッドを束 たば ねるバッチ単位 たんい をWavefront [61] と呼 よ んでいるが、これらのユニット内 ない ではプロセッサが完全 かんぜん に同期 どうき して動作 どうさ するため、バッチ単位 たんい ごとにまとめて連続 れんぞく 領域 りょういき にアクセス(コアレスアクセス)することで効率 こうりつ が良 よ くなる。逆 ぎゃく に言 い えば、バッチ単位 たんい 内 ない のスレッドがそれぞれ遠 とお く離 はな れたばらばらのアドレスにアクセスするような非 ひ コアレスアクセス(≒ランダムアクセス)は効率 こうりつ が悪 わる くなる。
GPGPUの本質 ほんしつ は、大量 たいりょう の演算 えんざん 器 き によって実現 じつげん されるハードウェアマルチスレッド集合 しゅうごう を用 もち いたデータ並列 へいれつ 演算 えんざん により性能 せいのう を稼 かせ ぐ点 てん にある。例 たと えばNVIDIA GPUのFermi/Keplerマイクロアーキテクチャでは、演算 えんざん 器 き の最小 さいしょう 単位 たんい をCUDAコア (SP, streaming processor) と呼 よ び、また複数 ふくすう のCUDAコアを束 たば ねる単位 たんい をSMX (SM, streaming multiprocessor) と呼 よ んでいるが、GPUでの演算 えんざん は、複数 ふくすう のSMXに対 たい して同一 どういつ の命令 めいれい を発行 はっこう していき、各々 おのおの のハードウェアスレッドに割 わ り当 あ てられたデータに対 たい して並列 へいれつ 的 てき に演算 えんざん を行 おこ なうスタイルとなる[31] 。またWarp単位 たんい 内 ない における各 かく スレッドはすべて同一 どういつ の命令 めいれい を実行 じっこう する(SIMT (英語 えいご 版 ばん ) )[62] 。基本 きほん 概念 がいねん としてはAMD のVLIW やGraphics Core Next といったGPUアーキテクチャにおいても同様 どうよう である。
しかし、このGPGPUプログラミングが特 とく に従来 じゅうらい 型 がた のCPUプログラミングと異 こと なる点 てん は、共有 きょうゆう メモリ(shared memory、シェアードメモリ)の存在 そんざい である。共有 きょうゆう メモリは小 しょう 容量 ようりょう だが高速 こうそく で、ユーザープログラマーが明示 めいじ 的 てき に管理 かんり できるキャッシュメモリ(≒L1キャッシュ)の仕組 しく みを果 は たし、複数 ふくすう のコアでデータを共有 きょうゆう ・交換 こうかん する目的 もくてき に使用 しよう できる。なお各 かく APIにおいては、CUDAは共有 きょうゆう メモリ、OpenCLはローカルメモリ、DirectComputeはグループ共有 きょうゆう メモリ[63] 、そしてC++ AMPはタイル静的 せいてき メモリ[64] という名称 めいしょう で、それぞれ同等 どうとう 機能 きのう を備 そな えている。
例 たと えばFermi/Keplerマイクロアーキテクチャでは、1SMXあたり最大 さいだい 48KBの共有 きょうゆう メモリを使用 しよう できるが[65] 、外部 がいぶ にあるDRAMにキャッシュなしでアクセスする場合 ばあい と比 くら べて、共有 きょうゆう メモリのレイテンシ は(スレッド間 あいだ のバンクコンフリクトがないかぎり)100倍 ばい 小 ちい さくなる。そのため、複数 ふくすう のスレッドから参照 さんしょう されるデータの一時 いちじ 書 か き込 こ み場所 ばしょ として共有 きょうゆう メモリを活用 かつよう することにより、高速 こうそく な並列 へいれつ アルゴリズム(たとえば高速 こうそく に総和 そうわ を求 もと める並列 へいれつ リダクションなど)や、GPUプログラミングにおける高速 こうそく 化 か に必要 ひつよう なコアレスアクセス(≒シーケンシャルアクセス)を実現 じつげん することができるとNVIDIAは説明 せつめい している[66] 。しかしながら、最大 さいだい でも48KBしかない共有 きょうゆう メモリというハードウェア制約 せいやく がアルゴリズムの幅 はば に制限 せいげん をかけるため、共有 きょうゆう メモリの存在 そんざい はGPUプログラミングの難 むずか しさにもつながってしまう。また、共有 きょうゆう メモリに読 よ み書 か きする際 さい 、スレッド間 あいだ の同期 どうき をとるための処理 しょり もプログラマーが明示 めいじ 的 てき に記述 きじゅつ する必要 ひつよう がある。
なお、インテルCPUのL2キャッシュメモリはL1キャッシュメモリに比 くら べて容量 ようりょう が大 おお きく、またプロセッサコア側 がわ に直結 ちょっけつ されているが、NVIDIA GPUのL2キャッシュメモリはL1キャッシュメモリに比 くら べて容量 ようりょう がほとんど変 か わらず、またメモリ側 がわ に直結 ちょっけつ されているなど、データアクセス傾向 けいこう の違 ちが いがハードウェア設計 せっけい 思想 しそう の違 ちが いにも反映 はんえい されており、単純 たんじゅん にキャッシュメモリの容量 ようりょう だけを比較 ひかく して性能 せいのう の優劣 ゆうれつ を決 き めることはできない[67] [68] [69] 。
コンピュータのマザーボード とdGPUを接続 せつぞく するPCI Express 規格 きかく は、CPU-システムメモリ間 あいだ やGPU-ビデオメモリ間 あいだ と比 くら べてはるかに帯域 たいいき 幅 はば が狭 せま く、安易 あんい にGPGPUを導入 どうにゅう しようとするとデータ転送 てんそう がボトルネックとなって逆 ぎゃく に性能 せいのう の低下 ていか を招 まね いてしまう可能 かのう 性 せい もありうる[70] 。この点 てん に関 かん しては、NVIDIAが開発 かいはつ した独自 どくじ のインターコネクト技術 ぎじゅつ であるNVLink [71] [72] などの解決 かいけつ 策 さく が模索 もさく されている。
開発 かいはつ およびチューニングの難 むずか しさと移植 いしょく 性 せい [ 編集 へんしゅう ]
2015年 ねん 現在 げんざい 、GPGPU対応 たいおう プログラムの開発 かいはつ 環境 かんきょう ・API として代表 だいひょう 的 てき なものはCUDA 、OpenCL 、およびDirectCompute であり、GPGPU黎明 れいめい 期 き の開発 かいはつ 環境 かんきょう に比 くら べればはるかに開発 かいはつ しやすくなっている[73] ものの、依然 いぜん としてアクセラレーターとなるハードウェアを意識 いしき したGPGPU特有 とくゆう のプログラミング知識 ちしき が不可欠 ふかけつ である。また、規格 きかく によってある程度 ていど 標準 ひょうじゅん 化 か ・抽象 ちゅうしょう 化 か されているとはいえ、いずれもデバイスとの通信 つうしん を行 おこ なうローレベルのAPIを使 つか いこなさなければならないなど、通常 つうじょう の C /C++ や Fortran を用 もち いたソフトウェア開発 かいはつ とは次元 じげん の異 こと なる難 むずか しさがあり、導入 どうにゅう のハードルが高 たか い。特 とく に OpenCL と DirectCompute はハードウェアに共通 きょうつう にアクセスできる API を規定 きてい しているだけであり、CUDAよりもさらにローレベルの抽象 ちゅうしょう 度 ど である。この点 てん に関 かん しては、アクセラレーターの存在 そんざい を抽象 ちゅうしょう 化 か し、従来 じゅうらい のCPUベース並列 へいれつ プログラミング用 よう の共通 きょうつう 規格 きかく OpenMP に近 ちか い高 こう レベルプログラミング環境 かんきょう を提供 ていきょう する OpenACC や C++ AMP といった規格 きかく も徐々 じょじょ に整備 せいび されつつある[74] 。
CPU上 じょう で動作 どうさ するプログラムは組 く み込 こ み環境 かんきょう を除 のぞ き、ライブラリも含 ふく めて高 こう レベルに洗練 せんれん された開発 かいはつ 環境 かんきょう が整 ととの っていることが多 おお い。例 たと えばC++ 、Java 、C# 言語 げんご などの代表 だいひょう 的 てき な高級 こうきゅう 言語 げんご では、単純 たんじゅん な連続 れんぞく メモリの配列 はいれつ 構造 こうぞう だけでなく、リンクリスト ・二分 にぶん 探索 たんさく 木 き ・ハッシュテーブル といった基本 きほん 的 てき なデータ構造 こうぞう はプログラミング言語 げんご 標準 ひょうじゅん ライブラリで提供 ていきょう されていることがほとんどだが、GPUプログラミングの場合 ばあい は高速 こうそく に処理 しょり できないという理由 りゆう から[要 よう 出典 しゅってん ] 基本 きほん 的 てき には配列 はいれつ 構造 こうぞう しか用意 ようい されていない。フォトンマッピング 手法 しゅほう の開発 かいはつ 者 しゃ であるWann Jensen博士 はかせ によると、複雑 ふくざつ なデータ構造 こうぞう をGPU上 じょう で扱 あつか おうとするとCPUよりもはるかに困難 こんなん となる場合 ばあい が多 おお いと評 ひょう されている[75] 。他 ほか にも、GPUプログラミング言語 げんご であるHLSL 、GLSL 、およびOpenCL CではC++テンプレートのようなジェネリックプログラミング 機能 きのう がサポートされないため、生産 せいさん 性 せい が低 ひく い。なおBLAS やFFT に関 かん しては、NVIDIAによるCUDA実装 じっそう のcuBLAS[76] やcuFFT[77] 、およびAMDによるOpenCL実装 じっそう のclMath (clBLAS, clFFT) [78] が存在 そんざい する。そのほか、二分 にぶん 探索 たんさく 、ソート 、リダクション、スキャンといったよく使 つか われるアルゴリズムに関 かん しては、NVIDIAによるCUDA 実装 じっそう のC++テンプレートベース並列 へいれつ アルゴリズムライブラリThrust[79] や、AMDによるOpenCL /C++ AMP 実装 じっそう の同等 どうとう ライブラリBolt[80] が存在 そんざい するが、両者 りょうしゃ に互換 ごかん 性 せい はない。
また、GPUで演算 えんざん した結果 けっか をCPUで読 よ み出 だ して利用 りよう する場合 ばあい 、従来 じゅうらい アーキテクチャではGPUメモリからCPUメモリへのデータ転送 てんそう が必要 ひつよう となる。その逆 ぎゃく もまた然 しか りである。こうしたCPU-GPU間 あいだ のメモリ転送 てんそう にかかる処理 しょり 時間 じかん およびプログラミング上 じょう の手間 てま が、性能 せいのう のボトルネックやソフトウェア開発 かいはつ の難 むずか しさにつながるという問題 もんだい も抱 かか えている。これは物理 ぶつり 的 てき にメモリが分離 ぶんり されているdGPUとCPUによる構成 こうせい だけでなく、従来 じゅうらい 型 がた のオンボードグラフィックスやCPU内蔵 ないぞう GPUといった、物理 ぶつり メモリを共有 きょうゆう する構成 こうせい においても同様 どうよう である。CUDA[81] やOpenCL[82] にはソフトウェア(ドライバー)レベルでこの転送 てんそう の手間 てま を解決 かいけつ する仕組 しく みとして統合 とうごう メモリ (unified memory) 機能 きのう や共有 きょうゆう 仮想 かそう メモリ (shared virtual memory) 機能 きのう が用意 ようい されてはいるが、あくまでメモリ空間 くうかん のアドレッシングを仮想 かそう 化 か して転送 てんそう 処理 しょり を自動 じどう 化 か するだけの仕組 しく みであり、アプリケーションプログラマーが明示 めいじ 的 てき に転送 てんそう 処理 しょり を記述 きじゅつ してチューニング・最適 さいてき 化 か する場合 ばあい と比 くら べてパフォーマンス上 じょう の問題 もんだい もある[83] 。この点 てん に関 かん しては、AMDが推進 すいしん しているHSA (Heterogeneous System Architecture )[84] におけるhUMA (heterogeneous Uniform Memory Access) といった解決 かいけつ 策 さく が模索 もさく されている。
GPGPUプログラムの移植 いしょく 性 せい に関 かん しては、CUDAはNVIDIAハードウェア専用 せんよう であり、また DirectCompute (DirectX) はMicrosoftプラットフォーム(Microsoft Windows 、Xbox One など)専用 せんよう という制約 せいやく がある。一方 いっぽう でOpenCLは、GPUだけでなく対応 たいおう するあらゆるハードウェア・あらゆるプラットフォームへ展開 てんかい できる高 たか い移植 いしょく 性 せい を持 も っているが、性能 せいのう に関 かん するポータビリティは必 かなら ずしも確保 かくほ ・保証 ほしょう されず、場合 ばあい によってはデバイスやチップごとにコードをチューニングする必要 ひつよう がある[85] [86] [87] 。
GPGPUで性能 せいのう が向上 こうじょう するアプリケーションの例 れい として、下記 かき が挙 あ げられる。
実際 じっさい の演算 えんざん 内容 ないよう としては、行列 ぎょうれつ 演算 えんざん 、配列 はいれつ のリダクション、およびフーリエ変換 へんかん などが挙 あ げられる。
変 か わった例 れい ではカスペルスキー・ラボ が現在 げんざい [いつ? ] Radeon HD 2900で行 おこな っている実証 じっしょう 試験 しけん として、GPUのパワーを使 つか ってセキュリティソフト による大 おお まかなセキュリティチェックを行 おこな う機能 きのう を開発 かいはつ している。これによりCPUへの負担 ふたん を減 へ らすことができるとしている[5] 。
一方 いっぽう で、大量 たいりょう の条件 じょうけん 分岐 ぶんき が伴 ともな う創 そう 薬 やく 研究 けんきゅう や遺伝子 いでんし 解析 かいせき のような用途 ようと にはスカラー計算 けいさん 機 き が適 てき しており、ベクトル計算 けいさん 機 き やGPGPUベースの計算 けいさん 機 き には向 む かないとされている[90] 。
GPGPU技術 ぎじゅつ の話題 わだい は、コンピュータ(特 とく に資源 しげん やスペースの制約 せいやく が強 つよ いパーソナルコンピュータ)の進化 しんか において2000年代 ねんだい 中盤 ちゅうばん までのトレンドであり課題 かだい であった。しかし、デモンストレーションばかりが先行 せんこう し、実際 じっさい に活用 かつよう できるソフトウェアが発売 はつばい されることはなかった。そもそも、CUDAやOpenCLなどの汎用 はんよう APIや、それらに対応 たいおう するDirectX 10世代 せだい の統合 とうごう 型 がた シェーダーアーキテクチャGPUが出現 しゅつげん するまでは、GPGPU開発 かいはつ 環境 かんきょう は制約 せいやく の強 つよ いリアルタイムグラフィックス向 む けのAPIやシェーディング言語 げんご を直接 ちょくせつ 利用 りよう したものか、もしくは研究 けんきゅう 機関 きかん が独自 どくじ 開発 かいはつ した固有 こゆう のプログラミング言語 げんご 基盤 きばん であり、ハードルも高 たか く、決 けっ して開発 かいはつ 効率 こうりつ や再 さい 利用 りよう 性 せい が良 よ いとは言 い えなかった[91] [92] 。
2008年 ねん 秋 あき から、S3 がGPUを利用 りよう したGPGPU用 よう 写真 しゃしん 修正 しゅうせい ソフトウェア 「S3FotoPro」を発表 はっぴょう [93] 、また動画 どうが 編集 へんしゅう 加工 かこう ソフトでは動画 どうが エンコードソフトの代表 だいひょう 格 かく であるTMPGEnc がCUDAに対応 たいおう した[94] ことを皮切 かわき りに、サイバーリンク のPowerDirector 7がCUDAとATI Streamに対応 たいおう した[95] 。さらに、2009年 ねん にはSuper LoiLoScope (Pixel Shader 2.0を活用 かつよう ) が発売 はつばい [96] 、サイバーリンク がMediaShow Espresso (CUDAとATI Streamに対応 たいおう ) を発売 はつばい している。GPGPUを利用 りよう した無料 むりょう で利用 りよう 可能 かのう な動画 どうが エンコードソフトとして、AMDのATI AVIVO (完全 かんぜん 無料 むりょう ) やNvidiaのBadaboom (30日間 にちかん 無料 むりょう 体験 たいけん 版 ばん ) 、MediacoderのCUDAエンコーダが挙 あ げられる。
米 べい アドビ はCreative Suite 4 (CS4) の一部 いちぶ 製品 せいひん においてCUDAベースのGPUアクセラレーションをサポートしていたが[97] 、2010年 ねん 5月 がつ 28日 にち に発売 はつばい [98] したCreative Suite 5 (CS5) においてGPGPUを正式 せいしき にサポートした [要 よう 出典 しゅってん ] 。CS5はOpenCL ベースで開発 かいはつ されており、ほとんどすべての機能 きのう において [要 よう 出典 しゅってん ] GPGPUによる演算 えんざん を行 おこな うことができる。本来 ほんらい GPUは画像 がぞう 処理 しょり を得意 とくい とするため、画像 がぞう 処理 しょり を主体 しゅたい とする同社 どうしゃ のアプリケーションへの適性 てきせい は高 たか い。また、After Effects CCでは、レイトレーシング エンジンにNVIDIA OptiX (英語 えいご 版 ばん ) を採用 さいよう している[99] 。その他 た にも、V-Ray など、レイトレーシングのアクセラレータとしてGPUを活用 かつよう しているレンダラーが存在 そんざい する[100] 。AMDもOpenCLベースのレイトレーシングエンジンとして、Radeon ProRender (旧称 きゅうしょう AMD FireRender ) を開発 かいはつ ・公開 こうかい している[101] [102] [103] 。
オープンソース の統合 とうごう 型 がた 3DCG作成 さくせい ソフトウェアBlender では、GI レンダリングエンジンであるCyclesにおいてNVIDIA CUDAによるGPUレンダリングが可能 かのう となっている。なお、バージョン2.6時 じ 点 てん ではOpenCLによるGPUレンダリングも試験 しけん 的 てき に実装 じっそう が進 すす められている[104] 。また、Autodesk 3ds Max サブスクリプションなどに搭載 とうさい されている物理 ぶつり ベースのGIレンダリングエンジンであるNVIDIA Irayでは、CUDAベースのGPUアクセラレーションが行 おこ なわれる[105] [106] [107] 。
その他 た 、ビットコイン をはじめとした暗号 あんごう 通貨 つうか の採掘 さいくつ 処理 しょり にもGPUが使 つか われている[108] 。
このように、学術 がくじゅつ ・研究 けんきゅう 目的 もくてき や産業 さんぎょう 用途 ようと 以外 いがい にも、一般 いっぱん 的 てき なプロダクション向 む け・コンシューマー向 む けに関 かん してもGPGPU技術 ぎじゅつ を利用 りよう したソフトウェアが登場 とうじょう しており、GPGPUを一般 いっぱん の利用 りよう 者 しゃ が活用 かつよう できる環境 かんきょう が整 ととの ってきたといえる。しかし、万能 ばんのう に処理 しょり をこなすCPUと比較 ひかく して、GPUはピーキーな特性 とくせい を持 も ち、ソフトウェア開発 かいはつ においてはパイプライン処理 しょり や並列 へいれつ 計算 けいさん 等 とう の知識 ちしき だけでなく、ハードウェア仕様 しよう およびAPIの知識 ちしき も必要 ひつよう になるため、未 いま だにGPGPU活用 かつよう のノウハウが一般 いっぱん 化 か したとは言 い い難 がた いという面 めん もある。しかし、そうした特別 とくべつ な専門 せんもん 知識 ちしき を要求 ようきゅう される実装 じっそう についてはライブラリ ,フレームワーク ,処理 しょり 連携 れんけい 先 さき となるソフトウェア の背後 はいご に隠蔽 いんぺい するなど[注釈 ちゅうしゃく 9] して、一般 いっぱん 的 てき なアプリケーション を開発 かいはつ するソフトウェア 技術 ぎじゅつ 者 しゃ が内部 ないぶ の詳細 しょうさい を意識 いしき することなくGPGPUによる高速 こうそく 化 か を利用 りよう できるような配慮 はいりょ も行 おこな われている。
^ 処理 しょり を行 おこな うCPU と、データを置 お くメインメモリ の間 あいだ のバスの速度 そくど がコンピュータ 全体 ぜんたい の計算 けいさん 性能 せいのう の上限 じょうげん を規定 きてい することをフォン・ノイマン・ボトルネック と言 い う。GPU とメインメモリ についても同様 どうよう のボトルネックが発生 はっせい するため欠点 けってん として挙 あ げている。
^ つまり、固定 こてい 長 ちょう ベクトル命令 めいれい しか扱 あつか えず、固定 こてい 長 ちょう レジスタの長 なが さに一致 いっち しない端 はし 数 すう のデータについて別途 べっと 考慮 こうりょ が必要 ひつよう になるという問題 もんだい が発生 はっせい する。
伝統 でんとう 的 てき にスーパーコンピュータ で多用 たよう されてきた専用 せんよう 設計 せっけい のベクトルプロセッサ であれば可変長 かへんちょう ベクトル命令 めいれい が扱 あつか え、端 はし 数 すう のデータに対 たい して別途 べっと 考慮 こうりょ する必要 ひつよう がない上 うえ に効率 こうりつ よく計算 けいさん が行 おこな えるため、GPUが採用 さいよう する固定 こてい 長 ちょう レジスタは欠点 けってん となる。
^ 疎行列 そぎょうれつ にアクセスする際 さい に行 おこな われる、巨大 きょだい な配列 はいれつ データを大域 たいいき 的 てき にインデックス参照 さんしょう で引 ひ いてくるランダムメモリアクセスを多用 たよう する操作 そうさ は、一般 いっぱん 的 てき なスカラ型 がた のCPU やGPGPUにとってはフォン・ノイマン・ボトルネック により苦手 にがて な処理 しょり となる。
^ NVIDIAのRTX30シリーズでは単精度 たんせいど と倍精度 ばいせいど で演算 えんざん 器 き の個数 こすう に64倍 ばい の差 さ があり、理論 りろん 上 じょう の倍精度 ばいせいど の演算 えんざん 性能 せいのう も単精度 たんせいど の1/64となる[47]
^ 例 たと えばGPGPU向 む けのTesla P100 では半 はん 精度 せいど での演算 えんざん 性能 せいのう が2倍 ばい になるよう設計 せっけい されている[49]
^ NVIDIA Ampere A100 など
^ Direct X9以前 いぜん のシェーダーは固定 こてい 機能 きのう の演算 えんざん を提供 ていきょう するものであったが、DirectX 10以降 いこう のDirectComputeAPIではGPUをゲームなどでの汎用 はんよう 的 てき な計算 けいさん に用 もち いることが可能 かのう なコンピュートシェーダー が利用 りよう できる。[88] 。
^ 例 れい としてゲームエンジンのUnreal Engine 4 やLuminous StudioのパーティクルシステムにおいてGPGPU技術 ぎじゅつ の利用 りよう がある
[89] 。
^ 例 たと えばOpenACC やOpenMP などを用 もち いると並列 へいれつ 処理 しょり 用 よう に書 か かれていない通常 つうじょう のC言語 げんご のソースに対 たい して指示 しじ 行 ぎょう を追加 ついか することでGPUに処理 しょり をオフロードすることが可能 かのう である[109]
^ GPGPU | ビジネスパートナー | 東芝 とうしば デジタルメディアエンジニアリング株式会社 かぶしきがいしゃ
^ GPGPUソリューション | HPCシステムズはすべての研究 けんきゅう 開発 かいはつ 者 しゃ に計算 けいさん 力 りょく を提供 ていきょう します。
^ Hisa Ando 2017 , p. 19.
^ 株式会社 かぶしきがいしゃ インプレス (2016年 ねん 10月 がつ 6日 にち ). “【後藤 ごとう 弘 ひろし 茂 しげる のWeekly海外 かいがい ニュース】 NVIDIA次世代 じせだい SoC「Xavier」は進化 しんか 版 ばん DenverとVoltaを搭載 とうさい ”. PC Watch . 2023年 ねん 6月 がつ 19日 にち 閲覧 えつらん 。
^ “プロセッサ開発 かいはつ のセンス ~第 だい 4回 かい ベクトル・プロセッサ~ | 株式会社 かぶしきがいしゃ エヌエスアイテクス (NSITEXE,Inc.) ” (2023年 ねん 2月 がつ 22日 にち ). 2023年 ねん 6月 がつ 18日 にち 閲覧 えつらん 。
^ a b “「ベクトル型 がた スパコンは高 たか すぎる」、GPU利用 りよう のHPCが本格 ほんかく 化 か - @IT ”. atmarkit.itmedia.co.jp . 2023年 ねん 6月 がつ 21日 にち 閲覧 えつらん 。
^ 西川 にしかわ 善 よし 司 し (2019). ゲーム制作 せいさく 者 しゃ になるための3Dグラフィックス技術 ぎじゅつ 改訂 かいてい 3版 はん . インプレス. p. 76. ISBN 978-4295007869
^ Hisa Ando 2017 , p. 213.
^ 2005年 ねん からNVIDIA に所属 しょぞく しており、CUDA を考案 こうあん するなどGPGPUの第 だい 1人 ひとり 者 しゃ として業界 ぎょうかい を牽引 けんいん している。
^ a b “Ian Buck | Research Projects ”. graphics.stanford.edu . 2023年 ねん 5月 がつ 30日 にち 閲覧 えつらん 。
^ a b published, Alan Dang (2009年 ねん 9月 がつ 3日 にち ). “Exclusive Interview: Nvidia's Ian Buck Talks GPGPU ” (英語 えいご ). Tom's Hardware . 2023年 ねん 5月 がつ 30日 にち 閲覧 えつらん 。
^ ASCII. “業界 ぎょうかい に痕跡 こんせき を残 のこ して消 ぎ えたメーカー CG業界 ぎょうかい を牽引 けんいん したSGI (1/4) ”. ASCII.jp . 2023年 ねん 5月 がつ 30日 にち 閲覧 えつらん 。
^ “Ray Tracing on Programmable Graphics Hardware ”. graphics.stanford.edu . 2023年 ねん 5月 がつ 30日 にち 閲覧 えつらん 。
^ a b Inc, Aetas. “2009年 ねん ,本格 ほんかく 始動 しどう するGPGPUの世界 せかい ・前編 ぜんぺん ~GPGPUって何 なに ? ”. 4Gamer.net . 2023年 ねん 5月 がつ 29日 にち 閲覧 えつらん 。
^ 株式会社 かぶしきがいしゃ インプレス (2022年 ねん 1月 がつ 24日 にち ). “ビデオカードの品薄 しなうす と価格 かかく 高騰 こうとう に振 ふ り回 まわ された1年 ねん 、買 か い取 と り価格 かかく が購入 こうにゅう 時 じ より高値 たかね になる事 こと も ~ アキバのショップ店員 てんいん が語 かた る2021年 ねん その2 ~ ”. AKIBA PC Hotline! . 2023年 ねん 5月 がつ 30日 にち 閲覧 えつらん 。
^ 一 いち 乘 じょう , 宮田 みやた ; 誠史 せいじ , 高橋 たかはし ; 篤 あつし , 黒田 くろだ (2005). “Gpuコンピューティングの動向 どうこう と将来 しょうらい 像 ぞう ” . 芸術 げいじゅつ 科 か 学会 がっかい 論文 ろんぶん 誌 し 4 (1): 13–19. doi :10.3756/artsci.4.13 . https://www.jstage.jst.go.jp/article/artsci/4/1/4_1_13/_article/-char/ja/ .
^ AMD Radeon™ R9シリーズ・グラフィックス・カード , 2 ops/cycle × 1050 MHz × 4096 cores.
^ AMD FirePro™ S9170サーバーGPU
^ GPGPUのキラーアプリケーションは「グラフィックス」 - @IT
^ 4Gamer.net ― OpenGLはDirectX 11を超 こ え,OpenGL ESは据 す え置 お き型 がた ゲーム機 き と同等 どうとう 以上 いじょう に。Khronosの最新 さいしん 動向 どうこう レポート
^ PGI GPU用 よう アクセラレータコンパイラ 情報 じょうほう サイト - GPU / GPGPU / CUDA 対応 たいおう 、CUDA Fortran
^ これからの並列 へいれつ 計算 けいさん のためのGPGPU連載 れんさい 講座 こうざ (V) 疎行列 そぎょうれつ ベクトル積 せき を題材 だいざい としたCUDA最適 さいてき 化 か プログラミング
^ Harish, Pawan; Narayanan, P. J. (2007). “Accelerating large graph algorithms on the GPU using CUDA” . Lecture Notes in Computer Science (Springer Berlin Heidelberg) 4873 : 197-208. doi :10.1007/978-3-540-77220-0_21 . http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.4206 .
^ 【レビュー】549ドルのGeForce GTX TITAN対抗 たいこう 馬 ば 「Radeon R9 290X」をベンチマーク - PC Watch
^ 【4Gamer.net】[特集 とくしゅう ]「GeForce 8800」のポイントをブロックダイアグラムから探 さぐ る
^ 【4Gamer.net】 - 西川 にしかわ 善 よし 司 し の3Dゲームエクスタシー - ATI, Radeon X1000シリーズ発表 はっぴょう でSM3.0世代 せだい に突入 とつにゅう
^ 【後藤 ごとう 弘 ひろし 茂 しげる のWeekly海外 かいがい ニュース】GTCの目玉 めだま の1つ「Tegra 4/4i」のCPUアーキテクチャ
^ Kepler GPUアーキテクチャとプログラム最適 さいてき 化 か (2) GPUはどうやって命令 めいれい を処理 しょり しているのか | マイナビニュース
^ 【後藤 ごとう 弘 ひろし 茂 しげる のWeekly海外 かいがい ニュース】PlayStation 4で採用 さいよう されたAMDのGCNアーキテクチャ
^ コンピュータアーキテクチャの話 はなし (322) GPUが用 もち いるメモリのアクセス時間 じかん の短縮 たんしゅく 方法 ほうほう | マイナビニュース
^ a b 第 だい 5回 かい GPUの構造 こうぞう | G-DEP
^ 4Gamer.net ― 「GeForce GTX TITAN」登場 とうじょう 。500円 えん 玉 だま より大 おお きなモンスターGPUの“性能 せいのう 以外 いがい ”を徹底 てってい 解説 かいせつ
^ AMD、R580コアをベースにしたHPC専用 せんよう プロセッサ「Stream Processor」 | マイナビニュース
^ AMDのGPGPU戦略 せんりゃく は新 しん 章 しょう へ - ATI Streamの展望 てんぼう 、DirectX Compute Shaderの衝撃 しょうげき (1) Radeon HD 4000シリーズでネイティブGPGPU | マイナビニュース
^ AMD's RV670 does double-precision at half the speed | TG Daily
^ AMD FireStream™9250 - FirePro Server - 製品 せいひん 情報 じょうほう - 株式会社 かぶしきがいしゃ エーキューブ
^ AMD FirePro S9100 - FirePro Server - 製品 せいひん 情報 じょうほう - 株式会社 かぶしきがいしゃ エーキューブ
^ AMD FirePro S9150 - FirePro Server - 製品 せいひん 情報 じょうほう - 株式会社 かぶしきがいしゃ エーキューブ
^ NVIDIA Tesla C1060 - 株式会社 かぶしきがいしゃ 日本 にっぽん コンピューティングシステム
^ Tesla C2050 / C2070 GPUコンピューティングプロセッサ
^ NVIDIA TESLA C2050 - 株式会社 かぶしきがいしゃ エルザ ジャパン
^ 4Gamer.net ― NVIDIA,Keplerベースの新 しん 世代 せだい Teslaを発表 はっぴょう 。「GK110」コア採用 さいよう の「Tesla K20」が年内 ねんない に登場 とうじょう 予定 よてい
^ NVIDIA Tesla K20 | 株式会社 かぶしきがいしゃ エルザ ジャパン
^ NVIDIA、最 さい 上位 じょうい GPUアクセラレータ「Tesla K40」を発表 はっぴょう | マイナビニュース
^ SC14 - NVIDIAが最 さい 上位 じょうい の科学 かがく 技術 ぎじゅつ 計算 けいさん 用 よう GPU「Tesla K80」を発表 はっぴょう | マイナビニュース
^ “サーバー用 よう のGPUアクセラレーター、Tesla K40 と Tesla K80 ”. NVIDIA Corporation. 2015年 ねん 10月 がつ 28日 にち 閲覧 えつらん 。
^ “西川 にしかわ 善 よし 司 し の3DGE:GeForce RTX 30シリーズのアーキテクチャを探 さぐ る。CUDA Coreの増量 ぞうりょう とRT Coreの高性能 こうせいのう 化 か に注目 ちゅうもく だ ”. 4Gamer. 2023年 ねん 6月 がつ 21日 にち 閲覧 えつらん 。
^ 大原 おおはら 雄介 ゆうすけ (2015年 ねん 3月 がつ 18日 にち ). “【レビュー】NVIDIA GeForce GTX TITAN Xを試 ため す - Maxwell世代 せだい の新 しん フラグシップGPUの実力 じつりょく を探 さぐ る (13) ベンチマーク結果 けっか 「Basemark CL v1.1」 ”. マイナビニュース. 2015年 ねん 11月26日 にち 閲覧 えつらん 。
^ “【後藤 ごとう 弘 ひろし 茂 しげる のWeekly海外 かいがい ニュース】コンピューティングとグラフィックスへ分化 ぶんか するNVIDIA GPU - PC Watch ”. 2023年 ねん 6月 がつ 20日 はつか 閲覧 えつらん 。
^ Hisa Ando 2017 , p. 148,150.
^ Hisa Ando 2017 , p. 304.
^ Hisa Ando 2017 , p. 306.
^ 後藤 ごとう 弘 ひろし 茂 しげる のWeekly海外 かいがい ニュース: GeForce GTX 280の倍精度 ばいせいど 浮動 ふどう 小数点 しょうすうてん 演算 えんざん
^ 4Gamer.net ― AMD,世界 せかい 初 はつ のDX11 GPU「ATI Radeon HD 5800」を発表 はっぴょう 。HD 4800の大幅 おおはば な進化 しんか 形 がた
^ 4Gamer.net ― 「ATI Radeon HD 5800」徹底 てってい 分析 ぶんせき (3)~3Dグラフィックスに特 とく 化 か したAMD
^ 科学 かがく 技術 ぎじゅつ 計算 けいさん 向 む け演算 えんざん 能力 のうりょく が引 ひ き上 あ げられたGPUアーキテクチャ「Fermi」 (2) 科学 かがく 技術 ぎじゅつ 計算 けいさん 向 む けのさまざまな工夫 くふう | マイナビニュース
^ GTC 2014 - GPUの浮動 ふどう 小数点 しょうすうてん 演算 えんざん の精度 せいど :理論 りろん と実践 じっせん (前編 ぜんぺん ) | マイナビニュース
^ ハイブリッドアーキテクチャでスパコン市場 いちば に挑 いど むNVIDIA - 後藤 ごとう 弘 ひろし 茂 しげる のWeekly海外 かいがい ニュース(PC Watch, Impress社 しゃ 、2012年 ねん 4月 がつ 16日 にち 配信 はいしん 、2012年 ねん 4月 がつ 16日 にち 閲覧 えつらん )
^ How to Access Global Memory Efficiently in CUDA C/C++ Kernels | Parallel Forall
^ 【後藤 ごとう 弘 ひろし 茂 しげる のWeekly海外 かいがい ニュース】NVIDIA新 しん 世代 せだい GPU「Maxwell」のSMアーキテクチャ - PC Watch
^ 【後藤 ごとう 弘 ひろし 茂 しげる のWeekly海外 かいがい ニュース】 AMDの新 しん GPUアーキテクチャ「Graphics Core Next」の秘密 ひみつ
^ NVIDIA GPUの構造 こうぞう とCUDAスレッディングモデル
^ Variable Syntax (Windows)
^ tile_static Keyword
^ 高速 こうそく 演算 えんざん 記 き 第 だい 25回 かい 「Kepler解説 かいせつ その2 〜Kepler世代 せだい の新 しん 機能 きのう 〜」 | G-DEP
^ Using Shared Memory in CUDA C/C++ | Parallel Forall
^ コンピュータアーキテクチャの話 はなし (336) CPUと異 こと なるGPUにおけるコアと2次 じ キャッシュの関係 かんけい 性 せい | マイナビニュース
^ コンピュータアーキテクチャの話 はなし (337) 実 じつ はそれほど速 はや くはないGPUのメモリアクセス時間 じかん | マイナビニュース
^ 「Skylake-K」とはいかなるCPUなのか。「Core i7-6700K」ベンチマークで新 しん 世代 せだい マイクロアーキテクチャの実態 じったい を探 さぐ る - 4Gamer.net
^ 【1カ月 かげつ 集中 しゅうちゅう 講座 こうざ 】骨 ほね まで理解 りかい するPCアーキテクチャ(GPU編 へん ) 第 だい 4回 かい ~GPGPU性能 せいのう 引 ひ き上 あ げのカギとなるCPUとGPUの連携 れんけい - PC Watch
^ 【後藤 ごとう 弘 ひろし 茂 しげる のWeekly海外 かいがい ニュース】NVIDIAの次期 じき GPU「Pascal」の概要 がいよう - PC Watch
^ [GTC 2016]西川 にしかわ 善 よし 司 し の3DGE:Teslaとして登場 とうじょう した新 しん 世代 せだい GPU「Pascal」,その詳細 しょうさい に迫 せま る - 4Gamer.net
^ » アクセラレータプログラミングの未来 みらい
^ 4Gamer.net ― 見 み えてきたAMDの次世代 じせだい GPUアーキテクチャ。なぜAMDはVLIWを捨 す てるのか
^ レンダリング手法 しゅほう について-CPU or GPU? | KeyShot™総合 そうごう サイト
^ cuBLAS - NVIDIA CUDA ZONE
^ cuFFT - NVIDIA CUDA ZONE
^ clMath - AMD
^ Thrust - NVIDIA CUDA ZONE
^ Bolt C++ Template Library - AMD
^ スパコン最大 さいだい の学会 がっかい 「SC13」に見 み る先端 せんたん 技術 ぎじゅつ (5) SC13 - CPU-GPU統一 とういつ メモリを実現 じつげん したCUDA 6(後編 こうへん ) | マイナビニュース
^ OpenCL* 1.2 の活用 かつよう : インテル® プロセッサー・グラフィックスでバッファーコピーを最小限 さいしょうげん に抑 おさ えてパフォーマンスを向上 こうじょう する方法 ほうほう | iSUS
^ NVIDIA CUDA 6.0 Unified Memory Performance | Acceleware Ltd.
^ 【後藤 ごとう 弘 ひろし 茂 しげる のWeekly海外 かいがい ニュース】AMD、新 しん GPU「Tonga」がHSAの最終 さいしゅう 形 がた であることを明 あき らかに - PC Watch
^ » コンパイラ、そしてもっと:アクセラレーター・プログラミング
^ KAKEN - GPUによるFFT計算 けいさん の自動 じどう チューニング手法 しゅほう の研究 けんきゅう (22680002) - 2011年度 ねんど 研究 けんきゅう 実績 じっせき 報告 ほうこく 書 しょ
^ GPUとXeon Phi、どちらが計算 けいさん 処理 しょり アクセラレータに最適 さいてき か? - 実際 じっさい の実行 じっこう 性能 せいのう を比較 ひかく するワークショップを首都 しゅと 大学 だいがく 東京 とうきょう が開催 かいさい (4) アクセラレータの課題 かだい と問題 もんだい 点 てん が語 かた られたパネルディスカッション | マイナビニュース
^
清原 きよはら 隆行 たかゆき 『HLSL シェーダーの魔 ま 導 しるべ 書 しょ シェーディングの基礎 きそ からレイトレーシングまで』翔 しょう 泳 およげ 社 しゃ 、2021年 ねん 6月 がつ 9日 にち 、454頁 ぺーじ 。ISBN 978-4798164281 。
^ 西川 にしかわ 善 よし 司 し (2019). ゲーム制作 せいさく 者 しゃ になるための3Dグラフィックス技術 ぎじゅつ 改訂 かいてい 3版 はん . インプレス. p. 44. ISBN 978-4295007869
^ ベクトル型 がた スパコンの存在 そんざい 意義 いぎ ――地球 ちきゅう シミュレータのいま (1/2) - ITmedia エンタープライズ
^ "これからの並列 へいれつ 計算 けいさん のためのGPGPU連載 れんさい 講座 こうざ (I) GPUとGPGPUの歴史 れきし と特徴 とくちょう ", 東京大学 とうきょうだいがく 情報 じょうほう 基盤 きばん センター, 大島 おおしま 聡史 さとし
^ SIGGRAPH 2005 - GPUをCPU的 てき に活用 かつよう するGPGPUの可能 かのう 性 せい (5) GPGPU向 む けプログラミング言語 げんご の登場 とうじょう が始 はじ まる | マイナビニュース
^ [1]
^ [2]
^ [3]
^ [4]
^ 4Gamer.net ― NVIDIA製 せい GPUが「Photoshop」「After Effects」「Premiere Pro」の最新 さいしん 版 ばん 「CS4」アクセラレーションをサポート。ムービーでその効果 こうか をチェック
^ ZDNet Japan Staff (2010年 ねん 4月 がつ 12日 にち ). “アドビ、クリエイティブ製品 せいひん の最新 さいしん 版 ばん 「CS5」を5月28日 にち に一斉 いっせい 発売 はつばい ”. CNET Japan. 2010年 ねん 8月 がつ 18日 にち 閲覧 えつらん 。
^ GPU changes (for CUDA and OpenGL) in After Effects CC (12.1) | After Effects region of interest
^ GPUレイトレーシング | NVIDIA
^ [SIGGRAPH 2014]NVIDIAがゲーム向 む けのリアルタイム大局 たいきょく 照明 しょうめい ,IntelはHaswell用 よう DX12ドライバのデモを一般 いっぱん 展示 てんじ セクションで披露 ひろう - 4Gamer.net
^ AMDは新 しん GPU「Radeon Pro」を,NVIDIAは360度 ど ビデオ用 よう SDKをアピール。プロセッサメーカーによる「SIGGRAPH 2016」の展示 てんじ をレポート - 4Gamer.net
^ Radeon ProRender Technology - AMD
^ Doc:JA/2.6/Manual/Render/Cycles/GPU Rendering - BlenderWiki
^ NVIDIA iray | NVIDIA
^ NVIDIA iray - Design Rendering with CUDA Parallel Processing | NVIDIA
^ NVIDIA Advanced Rendering: NVIDIA Iray
^ Bitcoinマイニングはまさに軍拡 ぐんかく 競争 きょうそう 、素人 しろうと お断 ことわ りの現状 げんじょう とは? - GIGAZINE
^ Hisa Ando 2017 , p. 232.
代表 だいひょう 的 てき なGPGPU対応 たいおう ハードウェア
GPGPU基盤 きばん ・プログラミング言語 げんご ・APIなど
採用 さいよう 事例 じれい
その他 た