------------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
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新建工程
我刚才在另一个电脑上没有遇到这个问题,
解决办法:
-
关闭所有的Visual Studio2019程序。
-
到C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Extensions\NVIDIA 下面。vistual studio不同版本 修改某些部分就行。
-
创建一个新的文件夹
CUDA 10.0 Wizards
,然后在这个目录下再创建一个文件夹10.0
。 -
在
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" -
创建完快捷方式之后,打开 Visual Studio 2019 的开发者命令控制台,然后以管理员权限运行命令:
devenv.com /setup /nosetupvstemplates
-
重启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.0 | 1200 |
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.3 | 1911 |
Visual Studio 2017 version 15.5 | 1912 |
Visual Studio 2017 version 15.6 | 1913 |
Visual Studio 2017 version 15.7 | 1914 |
Visual Studio 2017 version 15.8 | 1915 |
Visual Studio 2017 version 15.9 | 1916 |
Visual Studio 2019 RTW (16.0) | 1920 |
Visual Studio 2019 version 16.1 | 1921 |
Visual Studio 2019 version 16.2 | 1922 |
Visual Studio 2019 version 16.3 | 1923 |
Visual Studio 2019 version 16.4 | 1924 |
Visual Studio 2019 version 16.5 | 1925 |
Visual Studio 2019 version 16.6 | 1926 |
Visual Studio 2019 version 16.7 | 1927 |
可以看到 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;
}