以下基于“WIN7(64位)+Visual Studio 2010+CUDA7.5”。
系统:WIN7,64位
开发平台:Visual Studio 2010
显卡:NVIDIA GeForce GTX 850M
CUDA版本:7.5
一、安装CUDA7.5
Step.1:
略
Step.2:
略
Step.3:
略
Step.4:
略
Step.5:
略
Step.6:
略
二、配置
Step.7:
安装完成后,配置环境变量。
注意,在安装CUDA Toolkit的过程中,已经自动设置了两个系统变量:CUDA_PATH、CUDA_PATH_V7_5,这可以通过开始 > 计算机 > 右键“属性” > 高级系统设置 > 高级 > 环境变量 > 系统变量(S)来查看。除此之外,我们还需要手动添加如下几个变量(添加到“系统变量(S)”里):
- CUDA_SDK_PATH = C:ProgramDataNVIDIA CorporationCUDA Samplesv7.5
- CUDA_LIB_PATH = %CUDA_PATH%libx64
- CUDA_BIN_PATH = %CUDA_PATH%in
- CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%inx64
- CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%commonlibx64
最后,在系统变量PATH的末尾添加:
;%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;
注意别漏了“;”号!
Step.8:
重启计算机,使环境变量生效。
Step.9:
打开Visual Studio 2010,新建一个Win32 Console Application:
在“Application Settings”的“Additional options”中,将“Empty project”勾选上:
Step.10:
进入刚新建的项目里,右键Source Files > Add > New Item...
选择“CUDA C/C++ File”,自定义源文件名,然后点击Add:
Step.11:
右键项目 > Build Customizations...
在弹出的对话框中选择“CUDA 7.5(.targets, .props)”:
Step.12:
右键项目 > Properties > Configuration Properties > VC++ Directories
在“Include Directories”中,添加以下两个目录:
- C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.5include
- C:ProgramDataNVIDIA CorporationCUDA Samplesv7.5commoninc
在“Library Directories”中,添加以下两个目录:
- C:Program FilesNVIDIA GPU Computing ToolkitCUDAv7.5libx64
- C:ProgramDataNVIDIA CorporationCUDA Samplesv7.5commonlibx64
Step.13:
右键项目 > Properties > Configuration Properties > Linker > General > Additional Library Directories
添加以下目录:
- $(CUDA_PATH_V7_5)lib$(Platform)
Step.14:
右键项目 > Properties > Configuration Properties > Linker > Input> Additional Dependencies
添加以下库:
cublas.lib
cublas_device.lib
cuda.lib
cudadevrt.lib
cudart.lib
cudart_static.lib
cufft.lib
cufftw.lib
curand.lib
cusparse.lib
nppc.lib
nppi.lib
npps.lib
nvblas.lib(32位系统请勿附加此库!)
nvcuvenc.lib(这个库存在一些问题,如果编译出错直接删掉即可。在我的实测中的确出现了编译报错,删掉后就成功了)
nvcuvid.lib
OpenCL.lib
Step.15:
右键源文件cuda0_FirstCUDAProgram > Properties
设置“Item Type”为“CUDA C/C++”:
Step.16:
打开“Configuration Manager...”
在“Platform”处选择“<New...>”
选择“X64”
最后,选择Solution Platforms为“x64”:
至此,平台搭建完毕,可以运行代码进行测试了!
三、测试
Step.17:
测试代码如下:
1 #include <stdio.h> 2 #include <cuda_runtime.h> 3 4 bool InitCUDA() 5 { 6 int count; 7 cudaGetDeviceCount(&count); 8 if(count == 0) 9 { 10 fprintf(stderr, "There is no device. "); 11 return false; 12 } 13 14 int i; 15 for(i = 0; i < count; ++i) 16 { 17 cudaDeviceProp prop; 18 if(cudaGetDeviceProperties(&prop, i) == cudaSuccess) 19 { 20 if(prop.major >= 1) 21 { 22 break; 23 } 24 } 25 } 26 27 if(i == count) 28 { 29 fprintf(stderr, "There is no device supporting CUDA 1.x. "); 30 return false; 31 } 32 33 cudaSetDevice(i); 34 35 return true; 36 } 37 38 int main() 39 { 40 if(!InitCUDA()) 41 { 42 return 0; 43 } 44 45 printf("CUDA initialized. "); 46 47 return 0; 48 }
将以上代码复制粘贴到源文件cuda0_FirstCUDAProgram.cu里进行编译。
正如前文所言,“nvcuvenc.lib”这个库存在一些问题,在我的实测中,的确出现了编译报错:
当把“nvcuvenc.lib”从Linker > Input > Additional Dependencies中删除之后,就OK了!
References