Twitterに投稿 はてなブックマークに追加 Google Bookmarksに追加

目次 >> CUDA >> インストール(Windows編)

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のインストール

CUDAのインストールは、初期の頃に比べてだいぶ楽になっており、ここから、自らの環境に合ったインストーラをダウンロードしてくる。

まず、Visual C++ 2012をインストールしておく。

CUDA コンパイラ一式のインストール

まず、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:

サンプルファイル「simpleTemplates」をコンパイルしてみる。

サンプルコードをインストールした場合、
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というファイルができているはずである。


最終更新日


本文中のFC4はFedora ProjectのFedora Core 4を、FC5はFedora Core 5を、FC6はFedora Core 6をopenSUSEはNovellのSUSE Linux OSSを表します。Fedora7以降は、単にFedora7、Fedora8、Fedora9、Fedora10、Fedora11、Fedora12、Fedora13、Fedora14、Fedora15と表示しています。Ubuntuは、必要に応じて20.04、21.04のようにバージョン番号をつけて区別しています。

ここに登場するドメイン名やIPアドレスなどはフィクションです。実在の人物・団体等とは一切関係がありません。
実際に使用する際は、各自の環境に合わせて書き換えてください。
もし何か間違いなどありましたらこちらからご連絡ください
リンクに許可は不要です。
Copyright (C) 2021 Chikuma Engineering Co., Ltd. All Rights Reserved.