NVIDIA_CUDAとは - わかりやすく解説 Weblio辞書 (original) (raw)

CUDA

開発元 NVIDIA
初版 2007年2月16日 (18年前) (2007-02-16)[1]
最新版 12.8.1 / 2025年3月 (11 か月前) (2025-03)[2]
対応OS Microsoft Windows, Linux, Android[3][4]
種別 GPGPU
公式サイト CUDA Zone
テンプレートを表示

CUDA(Compute Unified Device Architecture:クーダ)とは、NVIDIAが開発・提供している、GPU向けの汎用並列コンピューティングプラットフォーム(並列コンピューティングアーキテクチャ)およびプログラミングモデルである[5][6][7]。専用のC/C++コンパイラ (nvcc) やライブラリ (API) などが提供されている。なおNVIDIA製GPUにおいては、OpenCL/DirectComputeなどの類似APIコールは、すべて共通のGPGPUプラットフォームであるCUDAを経由することになる[8]

概要

CUDAの処理の流れ
1. メインメモリ(ホストメモリ)からデータをGPU用メモリ(デバイスメモリ)にコピーする。
2. CPUがGPUに対して処理を指示する。
3. GPUが必要なデータを取り込み各コアで並列実行する。
4. 結果をGPU用メモリからメインメモリにコピーする。
[9][10]

もともとリアルタイムグラフィックス表示用途、特にゲームグラフィックス用途に特化したGPUを開発していたのがNVIDIAやATI (現AMD) であるが、プログラマブルシェーダーの発展によるプログラマビリティの向上を受け、その高い処理性能をグラフィックス以外にも活用できるようにするためにNVIDIAが開発した技術がCUDAである。このような汎用コンピューティング向けのGPU活用技術をGPGPU (General-Purpose computing on Graphics Processing Units) と呼ぶ。

GPU向けのプログラミング環境としてはHLSLGLSLNVIDIA Cgを用いたものもあるが、こちらはDirect3DもしくはOpenGLをバックエンドとするリアルタイムCG描画専用のプログラミング環境となっており、変数にGPU特有の型しか使えない(特に出力として用いるテクスチャメモリのフォーマットに制約が大きい)など汎用的なプログラムの記述は困難である。CUDAでは、HLSLやGLSLと異なり、よりC言語に近い構文および言語機能(ポインタなどを含む)を採用しており、またDirect3D/OpenGLといったバックエンドを使うことなくプログラムロジックを記述できるため、汎用コンピューティングに適している。

GPUはシンプルな演算ユニットを多数搭載しており、ピーク理論演算性能 (FLOPS) は同一価格帯のCPUをしのぐものもある。そのため、並列性や演算密度の高い処理を行なう場合、少数で複雑な構成を備えた同規模のCPUと比べて高い処理性能が出せる。 その逆に複雑な分岐処理(演算密度の低い処理)はCPUと比較して苦手であり、またGPUへ入力データを供給する、あるいはGPUによる演算結果をCPU側へリードバックするには接続バス (PCI-Express) を通してデータを転送する必要があり、これがボトルネックとなりうる可能性もあるため、適用分野や問題を解くアルゴリズムを慎重に選ぶ必要がある[11]

C++の場合、ほとんどの用途においてThrustなどのCUDA-Xで提供している高レベルAPIを使用すれば十分である。しかし、自前でCUDAカーネルを実装するなど、低レベルのAPIを使い始めると、作成したプログラムを最大限最適化するためには、Warpや共有メモリなどのNVIDIA GPUデバイスアーキテクチャに関する深い知識も必要となる[12]行列積並列scanも性能を最大限出すための並列アルゴリズムは複雑で、GPUの機種別の最適化も必要なため、専門的な実装が必要で、NVIDIA側がそれらを提供している。

CUDAと初対応のGeForce 8 シリーズ(G8x)の発表は2006年11月8日[13]、最初のCUDA SDKのβ版のリリース日は2007年2月16日[1]、CUDA 1.0の提供開始は2007年7月17日[14]であり、後発のGPGPU関連技術にはOpenCL (1.0仕様公開は2008年[15]) やDirectCompute (DirectXコンピュートシェーダー。Windows 7/DirectX 11.0と同時に2009年に一般提供開始[16]) などが存在するが、それぞれ技術用語は異なるものの全体としてはCUDAに非常に似通った特徴を持つ。先発技術であるCUDAは、2014年時点で教育・研究機関での採用事例が多い[17]ほか、機械学習などの分野で産業界でも採用への取り組みが進んでいる[18]

対応プログラミング言語

NVIDIAとしては以下のプログラミング言語に対応している。[19]

SDKとしては以下の2種類を配布している。

C/C++のライブラリとして、CUDA ToolkitやHPC SDKには、BLASインターフェイス経由でベクトル行列演算が可能なcuBLAS[23]FFTライブラリcuFFT[24]STLベースの並列アルゴリズムライブラリThrustなどが付属している[25]

NVIDIAのCUDAコンパイラnvcc自体はLLVMベースであり、新しいプログラミング言語や新しいプロセッサのサポートを追加するコンパイラSDKも提供されている[26]

CUDA C/C++のソースコードの拡張子には通例.cuが使われ、ヘッダーの拡張子には.cuhが使われる[27]

CUDAバージョン7では、C++11規格のサポートが強化され、デバイスコードにおけるラムダ式の利用などが可能となっている[28][29]。CUDAバージョン8では、機械学習向けのライブラリが強化され、Pascalアーキテクチャの固有機能を利用した拡張が多数追加された[30][31]

言語バインディング

C++以外からCUDAを呼べるようにしたバインディングがある。ただし、CUDAの全ての機能が使えるのはC++である。一般にプログラミング言語のコンパイラはCPU上で動くバイナリしか生成されないので、GPU上で動くコードをどのようにして書くかという問題があり、そのプログラミング言語からC++に変換するか、LLVMのアセンブリ言語を生成するかなどが必要であるが、そのようなコンパイラ開発が行われているのはPython、Julia、Rustなどである。

他にも、Ruby, Lua, MATLAB, IDL, Mathematica などもある。

NVIDIAが開発しているNumba CUDAでは、PythonのNVIDIA GPU上の多次元配列(テンソル)が満たすべきAPI (CUDA Array Interface) を定義していて、TensorFlow[32]以外のほとんどのライブラリがこれに対応しているため、相互に利用することが可能である。[33]

CUDA Core Compute Libraries

CUDA Core Compute Libraries (CCCL) はCUDAの標準ライブラリ。C++版とPython版がある。CUDA ToolkitやHPC SDKに同梱されている。[34]

それぞれ以下のものが含まれている。

Thrust

Thrustは並列アルゴリズムのC++ライブラリ。C++17より並列アルゴリズムが標準C++ライブラリに追加になったが、それも、NVIDIAでは対応している[37]

以下の高階関数などが実装されている。関数は多数あるが、以下はごく一部の一例である。

高階関数のコールバック関数は関数オブジェクトを渡す。糖衣構文ラムダ式も使えるが2025年現在は制限事項だらけの不完全実装である[48]

並列foldや並列scanは、二項演算子の計算量が小さく、要素数が多い場合は、メモリ帯域がボトルネックとなり、メモリコピーの速度で動作する[49]。これらの前後に並列mapがあると余計なメモリコピーが発生し遅くなるため、transform_iteratorを使用することで、並列map → 並列X → 並列mapという処理を1つにまとめることができて、メモリコピー1回分の計算時間になる[50]

CUDA-X

NVIDIAはCUDA上で構築したライブラリの総称をCUDA-Xと呼んでいる。以下のものが含まれる。[51]

OpenGL/Direct3D相互運用

CUDAにはOpenGLおよびDirect3D 9/10/11との連携を可能にする相互運用APIが用意されている。詳しくは CUDA Runtime API :: CUDA Toolkit Documentation - 3.10. OpenGL Interoperability, CUDA Runtime API :: CUDA Toolkit Documentation - 3.16. Direct3D 11 Interoperability などを参照のこと。

開発ツール

CUDA Toolkitには_Visual Profiler_と呼ばれるパフォーマンス計測ツールが付属し、アプリケーションにおけるGPUの処理時間などの情報を収集して、性能改善に役立てることができる[52]。CUDA Toolkit 7.5では命令レベルでのプロファイリングがサポートされた[53]Nsight (旧称Parallel Nsight) と呼ばれる統合開発環境向けのアドインも提供されている。

メリット・デメリット

ここでは従来のCPUベースのプログラミングとの比較ではなく、類似のGPGPU関連技術とCUDAとの比較を行なう。

メリット

CUDAはNVIDIAが独自に開発を進めているGPGPU技術であり、NVIDIA製のハードウェア性能を最大限引き出せるように設計されている[54]。CUDAを利用することで、NVIDIA製GPUに新しく実装されたハードウェア機能をいち早く活用することができる。例えばKepler世代以降のGPUで使用可能なWarpシャッフル命令を使用することで、共有メモリを介するよりもさらに高速な並列リダクションを実行することができる[55][56]。CUDA同様の類似GPGPU技術として代表的なものはOpenCLDirectComputeが挙げられるが、いずれもハードウェアアーキテクチャを標準化しベンダーの違いを吸収するAPI層であるため、CUDAと比較すると抽象化の度合いは低いローレベルAPIではあるものの、ハードウェア特有の先進的機能を使った細やかなチューニングによりそのハードウェアの限界性能を引き出すのは難しい[57]

また、OpenCLやDirectComputeでは、カーネルと呼ばれるデバイス用並列処理プログラムコード片(並列実行の最小単位)を専用のOpenCL-CやHLSLといった言語で記述した上で、OpenCL APIやDirect3D APIを使用してカーネルを発行する必要があるため、準備のための手間が必要となるが、CUDAの場合はより抽象化されており、カーネルコードの発行をC/C++における通常の関数呼び出しに近い形で記述できるなど、より本質的なアプリケーションコードやアルゴリズムの実装のみに注力できるようになっている。

デメリット

ハードウェアベンダーに依存しないOpenCLやDirectComputeと比較すると、CUDAはNVIDIA製のGPUでしか使えないという制約がある。このため、CUDAの機能に過度に依存したプログラムを書くと、アプリケーションのポーティング・移植が困難になる可能性がある(ベンダーロックイン[58]。AMDはCUDAアプリケーションをAMDおよび他のGPUプラットフォーム向けにソースコードレベルで移植しやすくするためのC++用APIとして、HIP (Heterogeneous-Compute Interface for Portability) の提供を開始した[59][60]が、CUDAと完全な互換性を持っているわけではない。

また、最初からグラフィックス連携用途を想定して設計されたDirectComputeと比較すると、(相互運用APIが用意されているとはいえ)GPU演算結果をグラフィックス用途に直接利用する場合はオーバーヘッドが大きくなる[61]

対応環境

ハードウェア

DirectX 10世代(G80世代)以降の統合型シェーダーアーキテクチャを採用したNVIDIA製GPUがCUDAに対応している[注釈 1]

実行には専用のデバイスドライバーを必要とする。詳細は、 CUDA GPUs | NVIDIA Developer Zone を参照。なお、ハードウェアの世代/アーキテクチャ(Compute Capability, CC)によって利用可能なGPU命令やリソースサイズ上限、倍精度浮動小数点対応可否などの制約が異なる。また、上位のCCを持つハードウェアでは、下位のCC向けにコンパイルされたCUDAコードを実行できるが、その逆は不可能となっている。

PTX (Parallel Thread Execution)

CUDAは実行環境デバイスの世代(Compute Capability)に応じた専用バイナリコードを生成できるほかに、PTX (Parallel Thread Execution) と呼ばれるNVIDIA独自のGPU中間命令(中間言語)を生成することができる。PTXを利用することで、実行時にCUDAドライバーによって実行環境に合わせた最適なコードを生成することができるようになる[62]

OS

CUDA Toolkit 6.5の対応OSは、Windows XP (32bit版のみ)、Windows 7Windows 8.1Windows Server 2008 R2Windows Server 2012 R2Fedora 20、OpenSUSE 13.1、RHEL (Red Hat Enterprise Linux) 5/6、CentOS 5/6、SLES (SUSE Linux Enterprise Server) 11-SP3、Ubuntu 12.04/14.04、Mac OS X 10.8/10.9/10.10である[63]

CUDA Toolkit 7.0の対応OSは、Windows 7、Windows 8.1、Windows Server 2008 R2、Windows Server 2012 R2、Fedora 21、OpenSUSE 13.1/13.2、RHEL 6/7、CentOS 6/7、SLES 11/12、Ubuntu 12.04/14.04/14.10、OS X 10.9/10.10である[64]

CUDA Toolkit 7.5の対応OSは、Windows 7、Windows 8.1、Windows 10、Windows Server 2008 R2、Windows Server 2012 R2、Fedora 21、OpenSUSE 13.2、RHEL 6/7、CentOS 6/7、SLES 11/12、SteamOS 1.0-beta、Ubuntu 14.04/15.04、OS X 10.9/10.10/10.11である[65]

CUDA Toolkit 8.0 GA2の対応OSは、Windows 7、Windows 8.1、Windows 10、Windows Server 2008 R2、Windows Server 2012 R2、Windows Server 2016、Fedora 23、OpenSUSE 13.2、RHEL 6/7、CentOS 6/7、SLES 11/12、Ubuntu 14.04/16.04、OS X 10.11/10.12である[66]

CUDA Toolkit 9.2の対応OSは、Windows 7、Windows 8.1、Windows 10、Windows Server 2012 R2、Windows Server 2016、Fedora 27、OpenSUSE Leap 42.3、RHEL 6/7、CentOS 6/7、SLES 12、Ubuntu 16.04/17.10、OS X 10.13である[67]

CUDA Toolkit 10.2の対応OSは、Windows 7、Windows 8.1、Windows 10、Windows Server 2012 R2、Windows Server 2016、Windows Server 2019、Fedora 29、OpenSUSE 15、RHEL 6/7/8、CentOS 6/7/8、SLES 1512 SP4、Ubuntu 16.04/18.04、OS X 10.13である[68]

CUDA Toolkit 11.8の対応OSは、Windows 10、Windows 11、Windows Server 2016、Windows Server 2019、Windows Server 2022、Fedora 35、OpenSUSE 15、RHEL 7/8/9、CentOS 7、SLES 15、Ubuntu 18.04/20.04/22.04、Debian 11、KylinOS(英語版) 10、Rocky 8/9、WSL-Ubuntu 2.0である[69]。CUDA Toolkit 11.0以降、macOSはサポート対象外となった[70][71][注釈 3]。ただしリモートデバッグ用のツールだけはmacOS上でもサポートされている[70][72][73]

CUDA Toolkit 12.1の対応OSは、Windows 10、Windows 11、Windows Server 2019、Windows Server 2022、Fedora 37、OpenSUSE 15、RHEL 7/8/9、CentOS 7、SLES 15、Ubuntu 18.04/20.04/22.04、Debian 10/11、KylinOS 10、Rocky 8/9、WSL-Ubuntu 2.0である[74]

NVIDIA OptiX

CUDA基盤上に実装されたプログラマブルGPUレイトレーシングエンジンとして、NVIDIAはOptiX(英語版)を公開している[75]。OptiX 3.xまではFermi世代以降、OptiX 4.xはKepler世代以降のNVIDIA GPU上で利用可能[76]。OptiX 6/7はMaxwell世代以降のNVIDIA GPU上で利用可能[77]。なお、After Effects CCではレイトレーシングエンジンにOptiXを採用している[78]

対応ソフトウェア

CUDAの演算処理技術を利用するには、上述のハードウェア・OSのサポートに加えて、アプリケーションが対応していることが必要。一部アプリケーションベンダーより対応ソフトが出ている。

分散コンピューティング

これらはBOINCクライアント上でCUDAを利用する。

MATLAB

MATLABとのコラボレーションもサポートされている。MATLABではParallel Computing Toolboxを介してGPUを使用できる[83]。重いプログラムスクリプト実行の高速化に寄与する。ただしCUDAの初期化およびメインメモリ-VRAM間のデータ転送に時間がかかるため、短いスクリプトの場合は逆にトータル処理時間でみるとCPUだけ使用するときよりも遅くなる場合もある。Intel Xeon X5650を使った場合と比べて、NVIDIA Tesla C2050を使うことでFFTが最大3.5倍高速化されたとの説明がある[84]

OpenCV

OpenCV 2.2[85]でCUDAを使ったアクセラレータであるgpuモジュールが追加された。OpenCV 3.0ではcudaモジュールに改称された。

脚注

注釈

  1. ^ 2023年現在、これらのブランドは消失してNVIDIAブランドに統合されているものもあるが、便宜上ここでは旧ブランド名を用いている。
  2. ^ Keplerアーキテクチャ採用。
  3. ^ macOS 10.14以降ではCUDAドライバーがインストールできなくなっているため、旧バージョンの利用も不可能である。

出典

  1. ^ a bNVIDIA® CUDA™ Unleashes Power of GPU Computing - Press Release”. nvidia.com. 2025年1月26日閲覧。
  2. ^CUDA Toolkit Archive”. NVIDIA. NVIDIA (2025年3月). 2025年3月25日閲覧。
  3. ^ NVIDIA CodeWorks for Android | NVIDIA Developer
  4. ^ NVIDIA GameWorks Documentation - NVIDIA CUDA for Android
  5. ^ What Is CUDA | NVIDIA Official Blog
  6. ^ Accelerated Computing | NVIDIA Developer
  7. ^ 開発者向けのCUDA並列コンピューティングプラットフォーム | NVIDIA
  8. ^ 第3回 CUDAとGPUコンピューティングの広がり | Think IT
  9. ^ 日経エレクトロニクス 2007/10/8 「プロセサはマルチ×マルチへ」
  10. ^ 第7回 CUDAプログラミングモデル② | G-DEP:
  11. ^ HPCシンポジウムで見えたTSUBAME2.0の設計思想 (1) ポストペタスケールへ向けGPUをどう活用していくのか
  12. ^ 第6回 CUDAプログラミングモデル① | G-DEP
  13. ^ NVIDIA Unveils CUDA™-The GPU Computing Revolution Begins | Press Release | NVIDIA
  14. ^ NVIDIA CUDA 1.0、GPUコンピューティング向けに機能を強化 | NVIDIA
  15. ^ 並列プログラミング規格「OpenCL 1.0」が標準として批准 - @IT
  16. ^ 西川善司の3Dゲームファンのためのグラフィックス講座。台頭するDirectCompute技術 - GAME Watch
  17. ^ NVIDIA GPUコンピューティング応用事例のご紹介
  18. ^ 【GTC2014】NVIDIA、基調講演でCUDAを自動車にもたらす開発キット「JETSON TK1」の提供開始など発表 / NVLink、3Dメモリで、帯域幅問題を解消する新GPU「Pascal(パスカル)」も計画 - Car Watch
  19. ^NVIDIA HPC SDK Version 25.1 Documentation — HPC SDK 25.1 documentation”. 2025年3月18日閲覧。
  20. ^CUDA Python 12.8.0 documentation”. nvidia.github.io. 2025年3月18日閲覧。
  21. ^HPC SDK”. NVIDIA Developer. 2025年3月18日閲覧。
  22. ^CUDA Toolkit - Free Tools and Training”. NVIDIA Developer. 2025年3月18日閲覧。
  23. ^ cuBLAS - NVIDIA CUDA ZONE
  24. ^ cuFFT - NVIDIA CUDA ZONE
  25. ^ Thrust - NVIDIA CUDA ZONE
  26. ^ CUDA LLVM Compiler | NVIDIA Developer
  27. ^2.3. Supported Input File Suffixes — NVIDIA CUDA Compiler Driver 12.8 documentation”. 2025年3月18日閲覧。
  28. ^ NVIDIA Pushes CUDA 7 RC With C++11 Features, Runtime Compilation - Phoronix
  29. ^ The Power of C++11 Programming in CUDA 7 | Parallel Forall
  30. ^ CUDA 8 PERFORMANCE OVERVIEW - November 2016, NVIDIA
  31. ^ CUDA 8.0 新機能のご紹介 - GTC Japan 2016
  32. ^Support the __cuda_array_interface__ protocol · Issue #29039 · tensorflow/tensorflow”. 2025年3月18日閲覧。
  33. ^CUDA Array Interface (Version 3) — Numba CUDA documentation”. nvidia.github.io. 2025年3月18日閲覧。
  34. ^CUDA Core Compute Libraries — cccl 2.5 documentation”. nvidia.github.io. 2025年3月18日閲覧。
  35. ^CUDA C++ Core Libraries — cccl 2.5 documentation”. nvidia.github.io. 2025年3月18日閲覧。
  36. ^CUDA Python Core Libraries — cccl 2.5 documentation”. nvidia.github.io. 2025年3月18日閲覧。
  37. ^ NVIDIA HPC Compilers C++ Parallel Algorithm
  38. ^thrust::transform — thrust 2.5 documentation”. nvidia.github.io. 2025年3月18日閲覧。
  39. ^std::transform - cppreference.com”. en.cppreference.com. 2025年3月18日閲覧。
  40. ^thrust::copy_if — thrust 3.0 documentation”. nvidia.github.io. 2025年3月18日閲覧。
  41. ^std::copy, std::copy_if - cppreference.com”. en.cppreference.com. 2025年3月18日閲覧。
  42. ^thrust::reduce — thrust 2.5 documentation”. nvidia.github.io. 2025年3月18日閲覧。
  43. ^std::reduce - cppreference.com”. en.cppreference.com. 2025年3月18日閲覧。
  44. ^thrust::inclusive_scan — thrust 2.5 documentation”. nvidia.github.io. 2025年3月18日閲覧。
  45. ^std::inclusive_scan - cppreference.com”. en.cppreference.com. 2025年3月18日閲覧。
  46. ^thrust::sort — thrust 2.5 documentation”. nvidia.github.io. 2025年3月18日閲覧。
  47. ^std::sort - cppreference.com”. en.cppreference.com. 2025年3月18日閲覧。
  48. ^14.7.2. Extended Lambda Restrictions — CUDA C++ Programming Guide”. 2025年3月18日閲覧。
  49. ^Single-pass Parallel Prefix Scan with Decoupled Look-back | Research”. research.nvidia.com. 2025年3月17日閲覧。
  50. ^thrust::transform_iterator — thrust 2.5 documentation”. nvidia.github.io. 2025年3月18日閲覧。
  51. ^CUDA-X”. NVIDIA Developer. 2024年3月11日閲覧。
  52. ^ 第3回 CUDAとGPUコンピューティングの広がり | Think IT(シンクイット)
  53. ^ CUDA 7.5: Pinpoint Performance Problems with Instruction-Level Profiling | Parallel Forall
  54. ^ コンパイラ、そしてもっと:アクセラレーター・プログラミング
  55. ^ Faster Parallel Reductions on Kepler | Parallel Forall
  56. ^ Kepler GPUアーキテクチャとプログラム最適化 (10) Keplerから搭載されたレジスタ内のデータの入れ替え命令 | マイナビニュース
  57. ^ 第3回 CUDAとGPUコンピューティングの広がり | Think IT
  58. ^ ASCII.jp:OpenCLでCUDAを追撃!? AMD「ATI Stream」が狙うものは
  59. ^ AMDがSC15にて、「Boltzmann Initiative」を発表 – AMD GPU用C++とCUDAコンパイラー - 株式会社エーキューブ
  60. ^ HIP : C++ Heterogeneous-Compute Interface for Portability - GPUOpen
  61. ^ SIGGRAPH ASIA 2009 - 非プラットフォーム依存パラレルの本命、「OpenCL」最新事情 (6) OpenCLはCUDAやDirectComputeと競合するのか | マイナビニュース
  62. ^ "GeForceの父" David Kirk博士、東大で並列コンピューティングについて講演 (4) CUDAの動作の仕組み | マイナビニュース
  63. ^ CUDA Toolkit 6.5
  64. ^ CUDA 7.0 Downloads | NVIDIA Developer
  65. ^ CUDA 7.5 Downloads Archive | NVIDIA Developer
  66. ^ CUDA Toolkit 8.0 - Feb 2017 | NVIDIA Developer
  67. ^ CUDA Toolkit 9.2 Download | NVIDIA Developer
  68. ^ CUDA Toolkit 10.2 Download | NVIDIA Developer
  69. ^ CUDA Toolkit 11.8 Downloads | NVIDIA Developer
  70. ^ a b Release Notes :: CUDA Toolkit Documentation (v11.0)
  71. ^NVIDIA CUDA Toolkit Release Notes”. CUDA Toolkit Documentation. 2020年7月26日閲覧。
  72. ^ Installation Guide Mac OS X :: CUDA Toolkit Documentation
  73. ^ NVIDIA CUDA Toolkit - Developer Tools for macOS | NVIDIA Developer
  74. ^ CUDA Toolkit 12.1 Downloads | NVIDIA Developer
  75. ^ NVIDIA® OptiX™ Ray Tracing Engine
  76. ^ NVIDIA OptiX™ Legacy Downloads | NVIDIA Developer
  77. ^ How to Get Started with OptiX 7 | NVIDIA Technical Blog
  78. ^ GPU changes (for CUDA and OpenGL) in After Effects CC (12.1) | After Effects region of interest
  79. ^ 4Gamer.net ― NVIDIA製GPUが「Photoshop」「After Effects」「Premiere Pro」の最新版「CS4」アクセラレーションをサポート。ムービーでその効果をチェック
  80. ^ Premiere Pro CCでは、2基のNVIDIA Quadro M6000上でCUDAを活用することで、1基のIntel Xeon E5-2697 v3を用いる場合と比較して、最大で24倍の速度性能向上を提供できるとしている。Adobe Premiere Pro CC – さらにスピーディーなビデオ編集 | NVIDIA
  81. ^ ただし、CUDAによって必ずしも処理が高速化するわけではない。CUDA/OpenCL/Mercury Playback Engine について(Adobe Premiere Pro)
  82. ^ Doc:JA/2.6/Manual/Render/Cycles/GPU Rendering - BlenderWiki
  83. ^ NVIDIA CUDA に対応した GPU に対する MATLAB GPU 演算のサポート - MATLAB & Simulink
  84. ^ Using GPUs in MATLAB » Loren on the Art of MATLAB
  85. ^ OpenCV 2.2 Released - ROS robotics news

関連項目

関連書籍

外部リンク

ウィキメディア・コモンズには、**CUDA**に関連するカテゴリがあります。

並列計算
総論 クラウドコンピューティング グリッド・コンピューティング 高性能計算 コンピュータ・クラスター 分散コンピューティング
並列レベル タスク データ ビット 命令
スレッド スーパースレッディング(英語版ハードウェアマルチスレッディング 同時マルチスレッディング ハイパースレッディング SIMT
理論 アムダールの法則 グスタフソンの法則 コスト効率性(英語版) Karp-Flatt metric(英語版) Parallel slowdown(英語版) Speedup(英語版
要素 スレッド ファイバー プロセス PRAM Instruction window(英語版
調整 キャッシュコヒーレンシ 同期 バリア マルチプロセッシング メモリコヒーレンス キャッシュ無効化 Application checkpointing(英語版
プログラミング スレッド (コンピュータ) 並列プログラミングモデル Implicit(英語版) Explicit(英語版並行性 フリンの分類 SISD SIMD MISD MIMD SPMD(英語版Lock-freeとWait-freeアルゴリズム 累積和
ハードウェア スーパーコンピュータ スーパースカラー ベクトル計算機 マルチプロセッシング 対称型 非対称型(英語版マルチコア メモリ NUMA COMA(英語版) 分散型(英語版共有型 分散共有型 MPP Beowulf
API Ateji PX(英語版Boostスレッド C++ AMP Charm++(英語版) Cilk(英語版) Coarray Fortran(英語版) CUDA Dryad(英語版) Global Arrays(英語版) Intel Cilk Plus(英語版Intel Threading Building Blocks MPI OpenACC OpenCL OpenHMPP(英語版OpenMP PVM POSIXスレッド UPC
問題 Embarrassingly parallel(英語版) Grand Challenge(英語版) Software lockout(英語版
並行計算 カテゴリ:並行計算 カテゴリ:並列コンピューティング