CUDA並列処理 プログラミング初体験

GPU コーナ
GPUで超高速!
スパコンにも膨大な単純計算を行う
オレ専用コンピュータにも
CUDA 並列処理
プログラミング初体験
森野 慎也
グラフィックス・
ボード
PCI Express
パソコン
RGB画像
CUDA
プログラム
GPU
画像ファイル
白黒画像
出力
画像ファイル
Linux
パソコン
(a)ハードウェア
(b)ソフトウェア
図 1 CUDA 環境を使った並列処理プログラムの実験構成
GPU(Graphics Processing Unit)は,もともとは
画像処理を行う専用プロセッサです.グラフィック
スを高速になめらかに表示するだけでなく,単純な
計算を各コアに行わせる並列処理にも向いていおり,
GPU を使ったスパコンもいろいろ作られています.
よく使われる NVIDIA 社の GPU を使った並列処
ク ー ダ
理 プ ロ グ ラ ム の 開 発 に は, 専 用 開 発 環 境 CUDA
(Compute Unified Device Architecture)を 使 い ま
す.CUDA は,GPU スパコン・プログラミングにも
使われています.
本稿では,この CUDA を使った並列処理プログラ
ミングを,市販 GPU ボードで試してみます(図 1).
最近のパソコン用グラフィックス・ボードは数百〜
数千個のコアを搭載しています.メモリ帯域も広く
なっているので,CUDA 並列処理プログラミングの
実験向きです.
(編集部)
準備
● GPU をパソコンとつなぐ
NVIDIA の GPU を使った汎用並列処理プログラム
を作成するには,CUDA という専用開発環境を使い
ます.
ゲ ー ム 用 の GPU ボ ー ド GeForce が 安 価 で あ り,
CUDA による並列処理プログラミングを試すには,
表 1 実験に使用した GPU ボード Quadro K2200 の仕様
項 目
型名
メーカ名
NVIDIA
プロセッサ名
Quadro K2200
アーキテクチャ
Maxwell
CUDA コア数
640
メモリ・バンド幅
[バイト /s]
PCI Express2.0(× 16)
写真 1 CUDA プログラミングの実験で使う GPU ボード Quadro
K2200
116
仕 様
Quadro K2200
グラフィックス・ボード
80G
メモリ・サイズ[バイト]
4G(GDDR5)
メモリ・インターフェース
128 ビット
消費電力[W]
60
接続インターフェース
PCI Express 2.0(× 16)
出力インターフェース
DisplayPort × 2,DVI-I,VGA
対応解像度
最大 3840 × 2160
出力画面数
最大 4
対応 API
CUDA,OpenCL,
DirectCompute,OpenGL,
DirectX
市場価格
60,000 円程度
2015 年 7 月号