CUDA4.0とVisual Studio 2008で改めて環境構築

はじめに

前回はCUDA2.2のインスコを行ったが、この度CUDA4.0がリリースされたので、共同研究者に伝える意味でも改めてインスコ。
環境はCUDA4.0+Visual Studio 2008 proです。CUDA4.0RC2のときはVisual Studioは2010しか使えなかった気がしますが、正式版のCUDA4.0となり晴れてVisual Studio2008でもコンパイル可能になったようです(RC2の時にはVC9用の*.slnファイルが無かったように記憶しています)。
  1. OS:Windows 7 64bit
  2. マシン:TSUKUMOのG-GEAR
  3. C++コンパイラ:Visual Studio 2008 Pro
  4. グラフィックボード:GeForce GTX580
  5. グラフィックボードドライバ:270.81
  6. CUDA 4.0

CUDA4.0のインスコ

すでにVS2008はインスコ済み。また、先日CUDA3.2もインスコしたばかり。 この状態で、CUDA4.0をインスコする。CURA3.2は残したままで共存できるようだ(Visual Studio上では共存できないっぽいが)。 NVIDIAのホームページから次のものをダウンロードして順にインストールした。
  1. Developer Drivers for WinVista and Win7 (270.81)
  2. CUDA Toolkit
  3. CUDA Tools SDK
  4. GPU Computing SDK code samples
すべて64bitのものを選んだ。 続いて、Visual Studioにパスを通す。
まず、既に過去にCUDAのディレクトリを設定している場合は、それらを全て削除する。その上で、次を追加した。方法は、メニューから「ツール」→「オプション」でダイアログを開き、「プロジェクトおよびソリューション」→「VC++ディレクトリ」の項目。今回は64bit版をインスコしたので、「プラットフォーム」項目に「x64」を選択した上で次の項目を設定する。
実行可能ファイル:
C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin

インクルードファイル:
C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\inc
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include

ライブラリファイル:
C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\lib\x64

サンプルのコンパイルと実行

設定ができたのでサンプルをコンパイルしてみる。 NVIDIA SDKの以下の場所にVisualStudio用のサンプルテンプレートがある。
C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\src\simpleTemplates
この中で「simpleTemplates_vs2008.sln」を開いて、64bitでコンパイル。64bitのコンパイルはVisual Studioの図の赤丸の部分でx64を選ぶだけでOK。

コンパイルして実行してみよう。 うまく動いたら今日はここまで。お疲れ様でした。 ただし、環境によっては、cutil64D.libが見つからないと言われる。 その場合は、cutil64D.libをコンパイルして自力で作ることになる。 その手順は以下の通り。

cutil64D.libの作成

cutil64D.libは先のサンプルが使っているラッパーライブラリのようで、CUDA的には拡張扱いである。 その為、環境にない場合は自力で作る必要がある。といっても、コンパイルするだけ。 次の場所
C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common
から、「cutil_vs2008.sln」をVisual Studio 2008で開く。それを先と同じように「x64」でコンパイル。 すると、Visual Studio 2008にディレクトリを設定した
C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK 4.0\C\common\lib\x64
にcutil64D.libが作成されているはずだ。このファイルはここに置いたままでよい。 改めてsimpleTemplates_vs2008.slnをコンパイルすると、今度はちゃんとコンパイルが通るでしょう。 おつかれさまでした。