由于本人最近学习OpenCL需要,因此参考了网上的很多教程,但是安装以及编译过程屡屡出错,此博客特地记录一下安装过程中出现的问题以及解决我的安装过程。
一、安装cuda
此步骤可以参考一下博主做法:
【CUDA】CUDA9.0+VS2017+win10详细配置_笔尖bj的博客-CSDN博客_cuda配置
【软件安装】CUDA安装失败+win10+VS2015+CUDA8.0+CUDAVisualStudioIntegration找不到+Visual Studio Intergration安装失败_JinSu_的博客-CSDN博客_cuda安装失败此地就不详细说明cuda的下载了,值得注意的是,如果出现Visual Studio Intergration安装失败则可以参考以下做法:
按照上述做法,cuda环境变量配置应该也是可以搞定的。
二、VS测试以及对应设置
这里我没有参考上述做法,而是参考以下博主做法:
CUDA10.1安装 +VS2015开发环境搭建_码灵薯的博客-CSDN博客_cuda vs2015
按照博主的操作最后出现了一个报错,如下,
错误 MSB3721 命令“"E:\Nvidia\NVIDIA GPU Computing Toolkit\CUDA\v9.2\bin\nvcc.exe" -gencode=arch=compute_30,code=\"sm_30,compute_30\" --use-local-env -ccbin "E:\Microsoft Visual Studio IDE\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86" -x cu -I"E:\Nvidia\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include" -I"E:\Nvidia\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include" -G --keep-dir Debug -maxrregcount=0 --machine 32 --compile -cudart static -g -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /FdDebug\vc141.pdb /FS /Zi /RTC1 /MDd " -o Debug\cuda_test.cu.obj "E:\vs2017project\cuda_test_kong\cuda_test_kong\cuda_test.cu"”已退出,返回代码为 1。 cuda_test_kong E:\Microsoft Visual Studio IDE\Common7\IDE\VC\VCTargets\BuildCustomizations\CUDA 9.2.targets 712
为此,我的做法不同,我更改了创建项目的过程(VS这方面的东西不太懂)。
首先,创建一个新的项目,如下
然后,(1)右键点击项目属性–>属性–>配置属性–>VC++目录–>包含目录。添加包含目录:$(CUDA_PATH)\include
(2)VC++目录–>库目录。添加库目录: $(CUDA_PATH)\lib\x64
(3)配置属性–>连接器–>输入–>附加依赖项。添加库文件:
cublas.lib,cuda.lib,cudadevrt.lib,cudart.lib,cudart_static.lib,nvcuvid.lib,OpenCL.lib
不过每次创建新的项目时,都需要重新配置。完成配置后,debug创建项目时自带的kernel.cu文件可以输出一个结果。如下所示,
三、其他测试代码
此时重新运行上述博主的代码,看看还是否会报错,
首先,选中项目,右键->添加->新建项。然后选择CUDA9.2下的Code,选择头文件格式,输入文件名添加此头文件。输入上述博主的头文件代码,添加后的文件名为cuda_test.cuh。
同样的操作,此时添加一个源文件。同样输入代码,添加后的文件名为cuda_test.cu。
最后,添加一个main.cpp文件,并输入测试代码,如下,
最终改项目存在如下三个文件(kernel.cu被删除了),
直接调试即可输出结果而不报错。
四、其他测试代码
再测试一些简单的代码。首先,同上述一样,先创建一个cuda的项目,删除自带的kernel.cu文件,添加一个新的test.cpp文件,输入要测试的代码,这里输入此博主的测试代码:
OpenCL 环境适配流程_Youngxmao的博客-CSDN博客
其次,同样地,配置属性–>连接器–>输入–>附加依赖项。添加库文件:
cublas.lib,cuda.lib,cudadevrt.lib,cudart.lib,cudart_static.lib,nvcuvid.lib,OpenCL.lib
此时,就可以直接调试代码了,输出如下:
到这里,从安装到测试都完成了,本文也只是记录一下我的安装过程,可能大家安装时仍会遇到问题,但是希望此文能有帮助。除此之外,本人对VS软件不太熟悉,有些不专业的地方,大佬们可以在评论或者私信告诉我。