win10安装cuda10.0以及VS2013下的CUDA编程测试
安装CUDA 10.0
下载cuda10.0 for windows10, 下载完成之后,得到cuda_10.0.130_411.31_win10.exe文件,执行安装,默认安装目录,选择精简版。
安装完成后,查看系统变量,会发现安装程序已经添加了如下两条系统变量:
然后我们需要进行系统变量的配置:
1.添加5个系统变量
(1)CUDA_BIN_PATH
%CUDA_PATH%\bin
(2)CUDA_LIB_PATH
%CUDA_PATH%\lib\x64
(3)CUDA_SDK_PATH
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0
(4)CUDA_SDK_BIN_PATH
%CUDA_SDK_PATH%\bin\win64
(5)CUDA_SDK_LIB_PATH
%CUDA_SDK_PATH%\common\lib\x64
2.系统变量path中添加四个变量值
%CUDA_LIB_PATH%
%CUDA_BIN_PATH%
%CUDA_SDK_BIN_PATH%
%CUDA_SDK_LIB_PATH%
测试是否安装成功,在控制台输入nvcc -V,若能够看到cuda信息,说明安装正确
安装cuDNN v7.6.0 for CUDA 10.0
cuDNN是用于深度神经网络的GPU加速库,如果不进行深度学习的编程,此步非必须。
下载cuDNN v7.6.0,没有账号需要先注册
cuDNN是插入式设计的,因此安装很简单:
把下载后的压缩文件解压缩,分别将cuda/include、cuda/lib、cuda/bin三个目录中的内容拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0对应的include、lib、bin目录下即可完成安装。
VS2013下CUDA编程测试
打开VS2013,当上面的CUDA安装好之后,在VS2013中将会出现NSIGHT选项卡
新建一个空的Win32 控制台应用程序:
点击下一步:
勾选空项目,点击完成:
生成依赖的配置
右击工程名->生成依赖项->生成自定义:
勾选CUDA生成,点击确定:
配置管理器,添加x64:
工程配置
右键项目 -> 属性 -> 配置属性 -> VC++目录,添加:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\common\inc
库目录添加:
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\common\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64
右键项目 -> 属性 -> 配置属性 ->链接器 -> 输入 -> 附加依赖项,添加C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64下的28(27+1cudnn)个库文件的名称:
cublas.lib
cuda.lib
cudadevrt.lib
cudart.lib
cudart_static.lib
cufft.lib
cufftw.lib
curand.lib
cusolver.lib
cusparse.lib
nppc.lib
nppial.lib
nppicc.lib
nppicom.lib
nppidei.lib
nppif.lib
nppig.lib
nppim.lib
nppist.lib
nppisu.lib
nppitc.lib
npps.lib
nvblas.lib
nvgraph.lib
nvml.lib
nvrtc.lib
OpenCL.lib
#如果没有安装cuDNN,这个库不要包含进来
cudnn.lib
新建CUDA C/C++文件添加代码进行测试
右击源文件->添加->新建项:
选择 CUDA C/C++ File , 输入名称,点击添加:
添加如下代码进行CUDA测试:
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
//打印GPU设备信息
void print_GPU_device_info()
{
int deviceCount;
cudaGetDeviceCount(&deviceCount);
for (int i = 0; i<deviceCount; i++)
{
cudaDeviceProp devProp;
cudaGetDeviceProperties(&devProp, i);
std::cout << "使用GPU device " << i << ": " << devProp.name << std::endl;
std::cout << "设备全局内存总量: " << devProp.totalGlobalMem / 1024 / 1024 << "MB" << std::endl;
std::cout << "SM的数量:" << devProp.multiProcessorCount << std::endl;
std::cout << "每个SM的最大线程数:" << devProp.maxThreadsPerMultiProcessor << std::endl;
std::cout << "每个SM的最大线程束数:" << devProp.maxThreadsPerMultiProcessor / 32 << std::endl;
std::cout << "每个Block的共享内存大小:" << devProp.sharedMemPerBlock / 1024.0 << " KB" << std::endl;
std::cout << "每个Block的最大线程数:" << devProp.maxThreadsPerBlock << std::endl;
std::cout << "每个Block中可用的32位寄存器数量: " << devProp.regsPerBlock << std::endl;
std::cout << "======================================================" << std::endl;
}
}
int main()
{
print_GPU_device_info();
while (1);
return 0;
}
出现正常打印GPU信息,表明一切顺利,可以高兴的进行CUDA编程开发了。