CUDA+Windows+VS环境配置 您所在的位置:网站首页 使用gpu加速 CUDA+Windows+VS环境配置

CUDA+Windows+VS环境配置

2023-10-03 10:26| 来源: 网络整理| 查看: 265

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

配置CUDA系统变量 【注】CUDA _PATH与CUDA _PATH_V10_1是安装CUDA在时自动添加的,CUDA _PATH_V10_1中的10_1指的是安装的CUDA版本号。

接着, 根据下图所示,添加以下内容到用户变量的path中:

%CUDA_LIB_PATH% %CUDA_BIN_PAHT% %CUDA_SDK_BIN_PAHT% %CUDA_SDK_LIB_PATH%

配置用户变量Path

2.3 检验CUDA环境变量的配置

重启电脑,打开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

CUDA自带的测试案例用VS打开*.sln文件,同样的,运行如果输出GPU的信息,则表示CUDA已配置成功,且能调用CUDA加速程序的运行。

3 VS中CUDA的配置

打开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。 新建.props文件

VC++目录 其次,如下图所示,在左侧找到链接器,接着找到下面的输入,在右侧的附加依赖项中,添加如下内容:

cublas.lib cublasLt.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

链接器 至此,VS编译环境中的CUDA已经配置完毕。

4 VS中OpenCV的CUDA版本编译

在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

VS报错信息 可能原因:缺少相应的SDK。 解决办法:参考这篇文章和这篇文章,如下图所示,无需重装VS,找到VS的安装软件,点击打开,点击修改(modify),缺少哪个版本安装哪个windows SDK即可。 在这里插入图片描述

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有