CUDA+Windows+VS环境配置 | 您所在的位置:网站首页 › 使用gpu加速 › CUDA+Windows+VS环境配置 |
Index 目录索引
写在前面1 VS的安装2 CUDA 的安装和配置2.1 CUDA的安装2.2 CUDA环境变量的配置2.3 检验CUDA环境变量的配置
3 VS中CUDA的配置4 VS中OpenCV的CUDA版本编译4.1 未使用CUDA加速时4.2 不修改代码,直接使用编译CUDA后的OpenCV来运行4.3 编译OpenCV CUDA后,添加CUDA加速的代码
安装过程中可能遇到的问题情况1
写在前面
以前只是在 PyCharm 编译环境中调用 GPU 来运行程序,这篇文章将记录 VS 编译环境中如何使用 CUDA 调用 GPU 来运行程序。 1 VS的安装如果要在VS中调用CUDA,需先按照VS编译环境,因为CUDA在安装的过程中会自动将相关文件安装至VS环境中,所以要先安装VS,安装教程这里不再赘述。 2 CUDA 的安装和配置 2.1 CUDA的安装首先是CUDA的下载和安装,安装教程这里不再赘述,要注意CUDA和GPU版本的对应。 2.2 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
接着, 根据下图所示,添加以下内容到用户变量的path中: %CUDA_LIB_PATH% %CUDA_BIN_PAHT% %CUDA_SDK_BIN_PAHT% %CUDA_SDK_LIB_PATH%重启电脑,打开cmd,在命令行中输入 set cuda,可以看到刚才配置的CUDA的环境变量配置信息。 接下来通过cd命令切换到如下目录: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite输入如下命令: deviceQuery.exe即运行该目录下的deviceQuery.exe,如下所示: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite>deviceQuery.exe会在命令框中输出GPU的信息,如果最下面如下语句: Result=PASS则表示CUDA已安装和配置成功,且能调用CUDA加速程序的运行。 或者可以进入到如下所示的CUDA自带的测试案例目录中,如图所示: C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1\1_Utilities\deviceQuery
打开VS,新建工程后,如果想要调用GPU加速程序,则要找到属性管理器,在Debug模式中,新建一个*.props文件,点击右键,打开属性页,如下图所示,在左侧找到VC++目录,接着在包含目录中添加C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include,在库目录中添加C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64。
在VS编译环境下,调用OpenCV库进行图像处理的过程中,如果想要使用GPU加速,则需要对OpenCV进行相应的编译,即编译Opencv的CUDA版本,用以驱动GPU。 (未完待续…) 本小节通过记录CUDA的编译过程,以期做到授之以渔。 4.1 未使用CUDA加速时C++的图像处理代码,在未使用CUDA加速时,处理一张图像的速度可能要500ms左右,接下来尝试如何使用CUDA加速。 4.2 不修改代码,直接使用编译CUDA后的OpenCV来运行官网下载的OpenCV是CPU版本的,如若想要调用GPU来运行程序,首先要编译CUDA版本的OpenCV,编译方法可以参考前辈的这篇文章。 编译后,再次运行代码,一张图像的处理时间可以由原来的 500ms 降至 200ms,但通过检查代码运行过程中GPU的消耗,发现并未实现真正意义上的GPU调用,接下来需要修改代码。 4.3 编译OpenCV CUDA后,添加CUDA加速的代码在原有代码的基础上,尝试修改代码,目的是实现真正意义上的GPU调用。在原有程序中添加下列CUDA加速的代码: //加上这样几句之后,程序再运行dnn计算时,会使用gpu加速 net.setPreferableBackend(cv::dnn::DNN_BACKEND_CUDA); net.setPreferableTarget(cv::dnn::DNN_TARGET_CUDA); //net.setPreferableBackend(cv::dnn::DNN_BACKEND_OPENCV); //net.setPreferableTarget(cv::dnn::DNN_TARGET_CPU);一张图像的处理所用时间继续降至了 2ms。 【注】经试验发现,如果只添加CUDA加速的代码,而不使用经过OpenCV CUDA编译的库,则无法调用CUDA使用GPU加速。 安装过程中可能遇到的问题 情况1在VS点击生成解决方案,会出现下面这样的找不到SDK报错信息,如下如图所示: 找不到windows SDK版本10.0.15063.0
|
CopyRight 2018-2019 实验室设备网 版权所有 |