はじめに
前回はCUDA2.2のインスコを行ったが、この度CUDA4.0がリリースされたので、共同研究者に伝える意味でも改めてインスコ。環境はCUDA4.0+Visual Studio 2008 proです。CUDA4.0RC2のときはVisual Studioは2010しか使えなかった気がしますが、正式版のCUDA4.0となり晴れてVisual Studio2008でもコンパイル可能になったようです(RC2の時にはVC9用の*.slnファイルが無かったように記憶しています)。
- OS:Windows 7 64bit
- マシン:TSUKUMOのG-GEAR
- C++コンパイラ:Visual Studio 2008 Pro
- グラフィックボード:GeForce GTX580
- グラフィックボードドライバ:270.81
- CUDA 4.0
CUDA4.0のインスコ
すでにVS2008はインスコ済み。また、先日CUDA3.2もインスコしたばかり。 この状態で、CUDA4.0をインスコする。CURA3.2は残したままで共存できるようだ(Visual Studio上では共存できないっぽいが)。 NVIDIAのホームページから次のものをダウンロードして順にインストールした。- Developer Drivers for WinVista and Win7 (270.81)
- CUDA Toolkit
- CUDA Tools SDK
- GPU Computing SDK code samples
まず、既に過去に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をコンパイルすると、今度はちゃんとコンパイルが通るでしょう。 おつかれさまでした。