VS2017+CUDA开发环境的配置
Posted FILWY_M
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2017+CUDA开发环境的配置相关的知识,希望对你有一定的参考价值。
GPU开发环境配置
一、VS2017安装
-
下载VS
下载链接:需要登陆微软账号,没有注册一个即可
-
安装VS
安装组件选择,只需要选择最基本的C/C++开发即可(.NET桌面开发可以不用)
安装位置更改
点击安装即可
安装完成后打开界面如下 -
创建一个C++程序进行测试
点击确定,等待项目创建,项目会自动创建一个cpp文件,测试代码如下:#include <iostream> int main() std::cout << "Hello World!\\n";
执行程序:
二、CUDA安装
-
下载CUDA
-
安装CUDA
双击下载的exe,进行安装
临时解压路径,建议默认即可,也可以自定义。安装结束后,临时解压文件夹会自动删除。
首先会检查系统兼容性,等待,然后出现如下界面,证明系统兼容此版本CUDA。
点击同意并继续
点击下一步,等待安装即可
安装完成,点击关闭
-
添加系统变量
按照下面的代码添加系统变量
CUDA_SDK_PATH = C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v10.1 CUDA_LIB_PATH = %CUDA_PATH%\\lib\\x64 CUDA_BIN_PATH = %CUDA_PATH%\\bin CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\\bin\\win64 CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\\common\\lib\\x64
如:添加CUDA_SDK_PATH = C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v10.1,如下图所示,点击确定即可。
添加完成后的系统变量如下,注意检查变量中不能有多余的空格。
其中CUDA_PATH和CUDA_V10_1是安装CUDA时自动添加的。 -
添加环境变量到PATH
%CUDA_LIB_PATH% %CUDA_BIN_PAHT% %CUDA_SDK_BIN_PAHT% %CUDA_SDK_LIB_PATH% ```![\\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9ykQBybB-1639213597841)(C:\\Users\\13751\\AppData\\Roaming\\Typora\\typora-user-images\\image-20211207152252574.png)\\]](https://img-blog.csdnimg.cn/1bf8d0a466d248d3b47fa4bd04079f56.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARklMV1lfTQ==,size_20,color_FFFFFF,t_70,g_se,x_16) 结果如下: ![\\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B1oKyLck-1639213597841)(C:\\Users\\13751\\AppData\\Roaming\\Typora\\typora-user-images\\image-20211207152321199.png)\\]](https://img-blog.csdnimg.cn/f153900ce0c946cdac2f5da297a2d02e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARklMV1lfTQ==,size_19,color_FFFFFF,t_70,g_se,x_16) ==完成后重启电脑。== win+R打开cmd 输入set cuda: ![\\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kYAno25s-1639213597842)(C:\\Users\\13751\\AppData\\Roaming\\Typora\\typora-user-images\\image-20211207153019821.png)\\]](https://img-blog.csdnimg.cn/9da12e5fec994d25b240874b15f43e55.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARklMV1lfTQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
-
检查CUDA是否安装成功
打开cmd,输入:cd C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\extras\\demo_suite进入自己安装的目录
输入dir命令可以查看当前路径下的文件,可以看到有一个名为deviceQuery.exe的文件
输入deviceQuery.exe执行,结果如下图所示,Result = PASS表示安装成功了,如果Result = Fail就重装或者更换CUDA的版本。
继续执行当前目录下的bandwidthTest.exe
可以看到Result = PASS,证明安装成功。
三、在VS2017中配置CUDA
-
创建项目
-
添加源文件*.cu
-
生成依赖项
-
配置cuda_test.cu文件属性
-
配置cuda工程属性
在包含目录中添加C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\include
在库目录中添加C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\lib\\x64
结果如下
注意:要根据自己的CUDA安装添加正确的目录 -
添加依赖项,链接器→输入→附加依赖项。再附加依赖项中添加相应的.lib文件名称
这里将所有的lib都加上了cublas.lib cublasLt.lib cuda.lib cudadevrt.lib cudart.lib cudart_static.lib cufft.lib cufftw.lib curand.lib cusolver.lib cusolverMg.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 nvjpeg.lib nvml.lib nvrtc.lib OpenCL.lib ```![\\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-btOvLUAX-1639213597854)(C:\\Users\\13751\\AppData\\Roaming\\Typora\\typora-user-images\\image-20211207160701639.png)\\]](https://img-blog.csdnimg.cn/ad012bbbe5364cbc8acd87847e92a385.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARklMV1lfTQ==,size_20,color_FFFFFF,t_70,g_se,x_16) 然后点击确定。其中lib的路径在安装的位置,如下图所示: ![\\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6J5hTYvr-1639213597854)(C:\\Users\\13751\\AppData\\Roaming\\Typora\\typora-user-images\\image-20211207160637431.png)\\]](https://img-blog.csdnimg.cn/10602a2a3c6c44ad8b4a9b6684c56bc7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARklMV1lfTQ==,size_20,color_FFFFFF,t_70,g_se,x_16)7. 添加测试程序
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <stdio.h>
int main()
int deviceCount;
cudaGetDeviceCount(&deviceCount);
int dev;
for (dev = 0; dev < deviceCount; dev++)
int driver_version(0), runtime_version(0);
cudaDeviceProp deviceProp;
cudaGetDeviceProperties(&deviceProp, dev);
if (dev == 0)
if (deviceProp.minor = 9999 && deviceProp.major == 9999)
printf("\\n");
printf("\\nDevice%d:\\"%s\\"\\n", dev, deviceProp.name);
cudaDriverGetVersion(&driver_version);
printf("CUDA驱动版本: %d.%d\\n", driver_version / 1000, (driver_version % 1000) / 10);
cudaRuntimeGetVersion(&runtime_version);
printf("CUDA运行时版本: %d.%d\\n", runtime_version / 1000, (runtime_version % 1000) / 10);
printf("设备计算能力: %d.%d\\n", deviceProp.major, deviceProp.minor);
printf("Total amount of Global Memory: %u bytes\\n", deviceProp.totalGlobalMem);
printf("Number of SMs: %d\\n", deviceProp.multiProcessorCount);
printf("Total amount of Constant Memory: %u bytes\\n", deviceProp.totalConstMem);
printf("Total amount of Shared Memory per block: %u bytes\\n", deviceProp.sharedMemPerBlock);
printf("Total number of registers available per block: %d\\n", deviceProp.regsPerBlock);
printf("Warp size: %d\\n", deviceProp.warpSize);
printf("Maximum number of threads per SM: %d\\n", deviceProp.maxThreadsPerMultiProcessor);
printf("Maximum number of threads per block: %d\\n", deviceProp.maxThreadsPerBlock);
printf("Maximum size of each dimension of a block: %d x %d x %d\\n", deviceProp.maxThreadsDim[0],
deviceProp.maxThreadsDim[1],
deviceProp.maxThreadsDim[2]);
printf("Maximum size of each dimension of a grid: %d x %d x %d\\n", deviceProp.maxGridSize[0], deviceProp.maxGridSize[1], deviceProp.maxGridSize[2]);
printf("Maximum memory pitch: %u bytes\\n", deviceProp.memPitch);
printf("Texture alignmemt: %u bytes\\n", deviceProp.texturePitchAlignment);
printf("Clock rate: %.2f GHz\\n", deviceProp.clockRate * 1e-6f);
printf("Memory Clock rate: %.0f MHz\\n", deviceProp.memoryClockRate * 1e-3f);
printf("Memory Bus Width: %d-bit\\n", deviceProp.memoryBusWidth);
return 0;
运行代码时,注意选择对位数。
到此,CUDA环境以及VS2017就全部配置完毕!
四、错误总结
- 在第一次执行程序的时候出现如下问题
原因是在配置库目录和包含目录的时候,路径不对,改为自己安装的正确路径即可,然后就是包含的库要完整,建议将所有的库都包含上,一定要正确配置路径
配置正确后,再执行程序,得到正确结果。
以上是关于VS2017+CUDA开发环境的配置的主要内容,如果未能解决你的问题,请参考以下文章