前言
最近呢,对cuda加速这方面比较感兴趣,打算开一个系列——cuda加速一些图像处理算法实践,总之就是写写代码,测试一下cpu和gpu运行同样算法的速度。
电脑的显卡是NVIDIA GeForce GTX1650,有4G显存,cpu是i5-9300H,8核处理器,这是基本配置。
搭建环境
第一步肯定还是搭建环境,这个就有很多详细博客可供各位观众老爷参考,在这里就不详细说了,大概有几个步骤:1)安装cuda和cudnn,设置对应的环境变量,本机安装的是cuda10.1; 2)安装VisualStudio,本机安装的VS2019; 3)将cuda和vs2019链接起来,搞定,收工!
当然,步骤很简单,但是过程很繁杂,会遇到很多问题,但是重点是要知道每个步骤成功的标注,比如第一步中,安装cuda和cudnn成功的标志就是在cmd中运行测试文件,定位到 在cuda安装目录的 :C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite,分别在cmd中输入deviceQuery.exe,bandwidthTest.exe并运行,两个地方的Result=PASS则说明通过,反之,Rsult=Fail 则需要重新安装。
第二步骤成功的标注就是能够正常打开vs2019的启动界面,一般来说,vs2019安装不太可能会失败
第三步,是最麻烦的,也是折腾了我一天的时间。我遇到的问题是,在完成第一步和第二步之后,使用vs2019新建项目,找不到CUDA模板。为了解决这个问题,我首先参考了这个技术博客,按照博客的操作后,vs2019新建项目,确实出现了cuda10.1 Runtime, 但是点击这个选项,创建模板,却报如下错误,显示Failed to create project

显然这条路走不通,然后又参考另外一篇博客 , 整体过程还算比较流畅,总结来说就两个操作,第一个就是安装vs2017编译器,第二个就是将C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\visual_studio_integration\MSBuildExtensions 这个目录下文件复制到 D:\Software\Microsoft Visual Studio 2019\MSBuild\Microsoft\VC\v160\BuildCustomizations (需要根据个人的VS2019安装路径修改)。完成这两个操作后,就可以验证是否vs2019和cuda是否链接上了,具体验证方法就是打开C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1\1_Utilities\bandwidthTest目录下的bandwidthTest_vs2017.sln,运行这个工程文件,出现如下打印信息,就显示链接成功了

最后将该项目作为模板输出,大功告成!
当然,肯定不会这么简单,我还遇到了一个小问题,就是我电脑上vs2019的windows sdk版本是10.0.17763.0,但是这个测试工程bandwidthTest_vs2017.sln在配置文件中将windows sdk版本初始化为10.0.15063.0,所以每次运行这个测试工程时候,都会报找不到10.0.15063.0这个版本的windows sdk。修改了项目中的windows sdk版本后,依旧报错,后来发现修改deviceQuery_vs2017.vcxproj这个文件中第27行<WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion>中sdk版本,问题就解决了。
总结
这篇博客没有啥好总结的,基本上就是遇到坑,把坑填了,然后用这个博客记录一下这些坑,免得后续的人再在这上面花一些时间。
环境搭起来之后,后面就开始在cuda环境下完成一些图像算法加速的代码。