目次 >> CUDA >> インストール(Windows編)
NVIDIAのGPGPU開発環境であるCUDA(Compute unified device architecture) 6.0 をインストールして、使ってみる。
使用機材は、Windows7 64bit向けが
GeForce GTX 680 4GB
Core i7-4770K
RAM 32GB
マザーボードASUS ASUS P8Z77-V DELUXE
CUDAのインストールは、初期の頃に比べてだいぶ楽になっており、ここから、自らの環境に合ったインストーラをダウンロードしてくる。
まず、Visual C++ 2012をインストールしておく。
まず、https://developer.nvidia.com/cuda-downloadsからダウンロードしたファイルをダブルクリックすると、
と、解凍するフォルダを聞いてくる。ここは採取的に削除されるので、容量がありさえすればどこでも良い。
次へ。
解凍が始まり、
インストーラが起動する。
ライセンスに同意して次へ、
ここは一応Customを選ぶ。
次へ。
すべてをインストールする必要はない。
今回は、ドライバはすでに新しいのがあったので、インストールせず、他にも不要なものはチェックを外した。
これは容量が足りないなど以外では、特に変える必要はない。
インストールが始まる。
これで完了。
何がインストールされたかが判る。
デフォルトの設定では、パスなどが通っていないため、コマンドラインからコンパイルできない。統合環境もよいが、将来的にUnix上でも動くものを作成するためにも、コマンドラインからコンパイルできるようにしておく。
デフォルトのパスにインストールされているとする。
Visual C++の環境変数に加えて、下記の環境変数を追加する
INCLUDEは
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.0\common\inc
LIBも同様に
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\lib\x64
とセットする。
PATHは
/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v6.0/bin: /c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v6.0/libnvvp: /c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:
サンプルコードをインストールした場合、
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.0
以下のフォルダに含まれている。
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.0\0_Simple\simpleTemplates
というフォルダに、simpleTemplatesというサンプルファイルがあるので、上手く設定できたかどうかを確かめる意味も含めてコンパイルしてみる。
上記フォルダ内のsimpleTemplates_vs2012.slnをダブルクリックなどで開くと、Visual C++が立ち上がるはずである。ここで単にビルド
1>------ Build started: Project: simpleTemplates, Configuration: Debug Win32 ------
1> Compiling CUDA source file simpleTemplates.cu...
1>
1> C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.0\0_Simple\simpleTemplates>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" -gencode=arch=compute_20,code=\"sm_20,compute_20\" -gencode=arch=compute_30,code=\"sm_30,compute_30\" -gencode=arch=compute_35,code=\"sm_35,compute_35\" -gencode=arch=compute_50,code=\"sm_50,compute_50\" --use-local-env --cl-version 2012 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin" -I./ -I../../common/inc -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include" -G --keep-dir Debug -maxrregcount=0 --machine 32 --compile -cudart static -Xcompiler "/wd 4819" -g -DWIN32 -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MTd " -o Win32/Debug/simpleTemplates.cu.obj "C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.0\0_Simple\simpleTemplates\simpleTemplates.cu"
1>nvcc : warning : The 'compute_10' and 'sm_10' architectures are deprecated, and may be removed in a future release.
1> simpleTemplates.cu
1> Skipping CUDA source file simpleTemplates_kernel.cu (excluded from build).
1> Creating library ../../bin/win32/Debug/simpleTemplates.lib and object ../../bin/win32/Debug/simpleTemplates.exp
1> simpleTemplates_vs2012.vcxproj -> C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.0\0_Simple\simpleTemplates\../../bin/win32/Debug/simpleTemplates.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
して、
実行して
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v6.0\Bin\win32\Debug>simpleTemplates.exe
> runTest<float,32>
GPU Device 0: "GeForce GTX 680" with compute capability 3.0
CUDA device [GeForce GTX 680] has 8 Multi-Processors
Processing time: 33.750330 (ms)
Compare OK
> runTest<int,64>
GPU Device 0: "GeForce GTX 680" with compute capability 3.0
CUDA device [GeForce GTX 680] has 8 Multi-Processors
Processing time: 30.805829 (ms)
Compare OK
[simpleTemplates] -> Test Results: 0 Failures
と出れば成功である。
次に、統合環境を使わずに、コマンドプロンプトからコンパイルしてみる。必要なファイルは、
sharedmem.cuh simpleTemplates.cu simpleTemplates_kernel.cu
である。まず、nvccを使って、objファイルを作る。
nvcc -ccbin "C:\Program Files\Microsoft Visual Studio 8\VC\bin" -c -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/Wp64,/O2,/Zi,/MT simpleTemplates.obj simpleTemplates.cu
simpleTemplates.cu
tmpxft_00000adc_00000000-3.gpu
tmpxft_00000adc_00000000-7.gpu
tmpxft_00000adc_00000000-3.c
tmpxft_00000adc_00000000-12.i
の様にコンパイルされる。これからリンカを使ってexeファイルを作る。
link /OUT:simpleTemplates.exe simpleTemplates.obj cudart.lib cutil32D.lib kernel32.lib
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
とエラーがなく完了すれば、simpleTemplates.exeというファイルができているはずである。
最終更新日