CUDA

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
CUDA
開発元 NVIDIA
最新版 5.0 / 2012年10月
対応OS Windows XP 以降, Linux, Mac OS X
種別 GPGPU
公式サイト NVIDIA CUDA zone
テンプレートを表示

CUDA(Compute Unified Device Architecture:クーダ)とは、NVIDIAが提供するGPU向けのC言語統合開発環境であり、コンパイラライブラリなどから構成されている。

目次

概要[編集]

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

GPU向けのプログラミング環境としてはCgを用いたものもあるが、こちらはCG描画用の専用のプログラミング環境となっており、変数にGPU特有の型しか使えないなど汎用的なプログラムの記述は困難である。CUDAでは、C言語ライクな言語を採用しているため、汎用コンピューティングに適している。

GPUはシンプルな演算ユニットを多数搭載している。そのため、並行性の高い演算処理を行う場合、少数で複雑な構成を備えた同規模のCPUと比べて高い処理性能が出せる。

対応言語[編集]

CUDA C はC言語C++の一部の構文のみ対応。C言語を拡張している。BLASインターフェイス経由でベクトル行列演算が可能。FFTライブラリも付属する。

CUDA Fortran は The Prortland Group から提供されている。Fortran 2003 を拡張している。

言語バインディング[編集]

C言語以外からCUDAを呼べるようにしたバインディングがある。

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

対応環境[編集]

ハードウェア[編集]

専用のドライバを必要とするため、GeForce8シリーズ以上(ネットブック/トップ用のNVIDIA IONを含む)もしくはNVIDIA TeslaNVIDIA Quadro。Teslaはハイパフォーマンスコンピューティング用、Quadroはワークステーション用。詳細は、CUDAを使用可能なGPU製品を参照。

OS[編集]

現時点での対応OSは32bit版及び64bit版Windows XP 以降、Fedora 7以降、Red Hat Enterprise Linux 3以降、SUSE Linux Enterprise Desktop 10-SP1、OpenSUSE 10.1以降、Ubuntu 7.04以降、Mac OS X 10.5.2以降である。

対応ソフトウェア[編集]

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

分散コンピューティング[編集]

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

MATLAB[編集]

MATLABとのコラボレーションもサポートされている。重いプログラムスクリプトの実行高速化に寄与する。公開されているプラグインと付属するデモスクリプトFFTでは、CUDAなしに比べて4分の1の実行時間になった。

出典[編集]

  1. ^ 日経エレクトロニクス 2007/10/8 「プロセサはマルチ×マルチへ」

関連項目[編集]

関連書籍[編集]

  • 青木尊之・額田彰 『はじめてのCUDAプログラミング』 工学社〈I/O books〉、2009年11月ISBN 978-4777514779NCID BB00109838
  • 岡田賢治 『CUDA高速GPUプログラミング入門』 小山田耕二・監修、秀和システム、2010年3月ISBN 978-4-7980-2578-0NCID BB01650115
  • Jason Sanders; Edward Kandrot (2011). CUDA by example : an introduction to general-purpose GPU programming. Addison-Wesley. ISBN 0131387685. OCLC 535495666. 
  • 『GPUプログラミング入門 = Introduction to GPU Programming : CUDA5による実装』 伊藤智義・編、講談社、2013年5月ISBN 978-4-06-153820-7

外部リンク[編集]