win10+vistual studio 2019+ cuda +opencv+cpp/c环境

------------2021-05-17

我用cmake编译,发现不能生成install文件夹。现在我用可执行文件安装的,不用编译。opencv直接下载可执行文件,添加到环境变量就行

------------------

一定要按照我的顺序安装!!!!!!!!!!!!

如果你没有新建cuda的项目,别配置cuda的库和路径。要不报错。

版本信息

vistual studio 社区 2019

显卡驱动  最新的

cuda 10.0+cudnn 7.6

tf-gpu  1.15.2

TensorRT 6.0.1.5

我先我的配置更新了,但是方法没变。

1 安装vistual studio

必须先安装他,然后选择桌面开发程序。目前最新的是2019,我用的也是2018。

安装好了就完了。如果用vscode开发,需要把cl.exe配置到环境变量中。我的路径如下

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\bin\Hostx64\x64\cl.exe

随时安装都可以。主要是配置环境变量。最后面说这个。

2 安装cuda cudnn

显卡对应cuda版本信息

Release Notes :: CUDA Toolkit Documentation

去官方下载安装就行了·1

官方驱动 | NVIDIA

2.1 安装cuda

历史版本地址CUDA Toolkit Archive | NVIDIA Developer

我选择的是10,因为我用的tf1.15版本。还有一些配置的东西。这里一直下一步就行。如果不确定显卡对应的什么版本的cuda,那么打开下面的就行。帮助里面有个系统信息。

2.2 下载cudnn

下载,解压,把文件拷贝到下面目录下。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0

2.3 添加环境变量

配置好以后,添加下面的内容。

2.4 测试是否成功

nvidia-smi和nvcc -V。

还有 分别运行这两个程序deviceQuery.exe、bandwidthTest.exe ,result=pass则安装成功。别用powershell。

vscode

直接安装,把c++环境配置好就行。然后看error中第三条内容。这个只要配置好c++的环境,把cuda的环境变量加的明白,直接可以运行。把下面呢三个东西加入环境变量,然后就可以直接运行编辑了。

不过会发出很多恶心的信息。  nvcc file.cu  -o file

3 opencv

我用的是exe文件,直接解压到c盘下。不过这种方法不能被cuda加速。需要用cmake编译那种才行,网上很多教学,我就不去讲了。

非编译的,添加下面两个到环境变量中。

4 配置vistual studio的属性管理

新建一个项目属性列表:

我用的是64位,所以实在x64下面建。这里吐槽下,很不好用。自己慢慢感觉吧。建立属性列表的原因是,其他解决方案可以复用。

然后按照我的图中操作就行了。

添加cu扩展文件到软件中

为了防止某些错误加上这句话

5 error

5.1 CUDA 安装之后 Visual Studio无法新建CUDA新建工程

我刚才在另一个电脑上没有遇到这个问题,

解决办法:

  1. 关闭所有的Visual Studio2019程序。

  2. 到C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Extensions\NVIDIA 下面。vistual studio不同版本 修改某些部分就行。

  3. 创建一个新的文件夹CUDA 10.0 Wizards,然后在这个目录下再创建一个文件夹10.0

  4. 10.0文件夹下创建两个快捷方式:
    - "C:\ProgramData\NVIDIA GPU Computing Toolkit\v10.0\extras\visual_studio_integration\CudaProjectVsWizards\2019\extension.vsixmanifest"
    - "C:\ProgramData\NVIDIA GPU Computing Toolkit\v10.0\extras\visual_studio_integration\CudaProjectVsWizards\Nvda.Vsip.CudaWizards.dll.pkgdef"
    创建快捷方式之后

  5. 创建完快捷方式之后,打开 Visual Studio 2019 的开发者命令控制台,然后以管理员权限运行命令:

    devenv.com /setup /nosetupvstemplates
    

  1. 重启Visual Studio 2019,这样在新建工程的时候就可以看到CUDA工程模板出现了。

5.2 The CUDA Toolkit v10.0 directory ‘’ does not exist. Please verify the CUDA Toolkit is installed properly or define the CudaToolkitDir property to resolve this error. nbody C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations\CUDA 10.0.targets 536

添加到debug中是没有用的,只能在release中添加有用。上面的报错我是复制别的人。

也可以这样找到他

5.3 [VS2019+CUDA] fatal error #error -- C1189 unsupported Microsoft Visual Studio version!

在运行一项Python程序时,出现了Microsoft Visual Studio version版本不支持的情况,具体如下:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include\crt/host_config.h(143): fatal error C1189: #error: – unsupported Microsoft Visual Studio version! Only the versions between 2013 and 2019 (inclusive) are supported!

先介绍一下我的环境情况:

  • Win 10

  • Visual Studio 2019

  • CUDA 10.0

  • cuDNN 7.6.4

查到的原因是CUDA版本需要与微软的C/C++编译器版本匹配,解决方法是找到你自己安装CUDA路径下的这个文件,我的如下:

 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include\crt\host_config.h

C:\Program Files\NVIDIA Corporation\Installer2\nvcc_10.0.{921FDFC6-118F-4C7B-B8FA-F80EA966CD93}\include\crt

打开后定位到这一行,修改 ‘MSC_VER >=’ 后面的数值 至于MSC_VER,它是微软公司推出的C/C++编译器在ANSI/ISO C99标准之外扩展的宏定义,用来定义当前微软公司自己的编译器的主版本。因为Visual Studio更新很快,其值不断更新,导致CUDA跟不上Visual Studio的步伐,所以出现上述错误。具体VS版本对应的_MSC_VER值可参考微软官方的资料----Click here

下表是截止到 2020/08/01 的 Visual Studio version 与 _MSC_VER 对应关系:

Visual Studio version_MSC_VER
Visual Studio 6.01200
Visual Studio .NET 2002 (7.0)1300
Visual Studio .NET 2003 (7.1)1310
Visual Studio 2005 (8.0)1400
Visual Studio 2008 (9.0)1500
Visual Studio 2010 (10.0)1600
Visual Studio 2012 (11.0)1700
Visual Studio 2013 (12.0)1800
Visual Studio 2015 (14.0)1900
Visual Studio 2017 RTW (15.0)1910
Visual Studio 2017 version 15.31911
Visual Studio 2017 version 15.51912
Visual Studio 2017 version 15.61913
Visual Studio 2017 version 15.71914
Visual Studio 2017 version 15.81915
Visual Studio 2017 version 15.91916
Visual Studio 2019 RTW (16.0)1920
Visual Studio 2019 version 16.11921
Visual Studio 2019 version 16.21922
Visual Studio 2019 version 16.31923
Visual Studio 2019 version 16.41924
Visual Studio 2019 version 16.51925
Visual Studio 2019 version 16.61926
Visual Studio 2019 version 16.71927

可以看到 1920 正好对应了Visual Studio 2019的第一个版本,为了“一劳永逸”,可以将文件中的那个值修改的很大,如上图中改为 3000,这样很长一段时间内不会再出现这个问题。

当然,你还可以选择安装 Visual Studio 2019。

5.4 vscode遇到的问题 nvcc fatal  Cannot find compiler ‘cl.exe‘ in PATH

vs2019:nvcc fatal : Cannot find compiler ‘cl.exe‘ in PATH

 三步骤:

第一步: 在系统变量无名称变量 Path 列表中添加如下 2 个位置

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx64\x64

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE

第二步: 在系统变量中新建一个变量起名为 LIB,为其添加 3 个位置

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\lib\x64

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\ucrt\x64

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x64

第三步: 在系统变量中新建一个变量起名为 INCLUDE,为其添加 2 个位置.

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include

C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\ucrt

5.5 failed to create project

the template to path '...../CudaProjectVsWizards' does not exist

这个问题没有解决。

5.6 还有一个问题

我忘了,需要拷贝文件到哪里来解决

6 测试代码

#include <stdio.h>
#include "device_launch_parameters.h"
#include "cuda_runtime.h"

__global__ void HelloFromGPU(void)
{
	printf("Hello World From GPU!\n");
}

int main(void)
{
	printf("Hello World From GPU!\n");
}

#include "opencv2/opencv.hpp"
#include "iostream"

int main(void) {
	std::cout << "helloworld" << std::endl;
	return 0;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颐水风华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值