12.12本来想在自己的电脑上跑一下python版本的推理,中间遇到的问题记录一下以放自己以后忘了耽误时间
那个cuda的安装过程网上很多这里不说了,主要就是cudnn里的那几个文件要copy到cuda里,ps:本人之前没有弄cuda加速的,所以我先安装了cuda,再安装的vs2019,这里是一个坑,后面会说。
- 按部就班的走,开始第一步是要把 ./tensorrtx/yolov5/gen_wts.py拷贝到yolov5项目里,这个主要的作用是把网络的模型文件转化为wts文件,
- 第二步也是按照要求走,首先,cmake .. 就是去运行那个cmakelist.txt
mkdir build #新建build文件夹,cmake会生成很多文件,防止污染代码 cd build cmake ..
这里cmake ..就会报错了 具体是,能看到前面是已经找到了cuda的,但后面又说找不到了
Found CUDA: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2 (found version "11.2")
...
CMake Error at C:/Program Files/CMake/share/cmake-3.20/Modules/CMakeDetermineCompilerId.cmake:441 (message): No CUDA toolset found.
看了网上的解释,大家说的都是cuda的版本与visual studio的版本不匹配,这里我就很迷,这两个东西还能有冲突,于是自然而然的去百度了 vs 与cuda兼容性的问题。
3. 网上就出现了很多关于cuda和vs的安装配置教程(c++的东西都好高级好难弄),众多搜索都告诉了令我有些绝望的结果,
他们的解决方法都是先卸载cuda然后重装
这两个东西cuda安装难度还行,但是影响很大,很容易环境错乱然后现在的项目都跑不起来了。
vs更不用说了,很难卸载干净。所以我一直在找不用卸载的解决办法。
4.之所以安装要有先后顺序,区别vs在新建项目那里能不能找到cuda的模版,按正规步骤是能找到的
而我是找不到的
所以就引出了下面的关键词,怎么能在不卸载的情况下解决安装顺序的问题。
关于这一点网上其实也有解决办法。
就是把cuda目录下的文件夹中的全部内容,我记得一共是4个(反正就是要全部)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\visual_studio_integration\MSBuildExtensions
复制到vs的路径下
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations
好巧不巧,我按照上面的两个路径找,一个都找不到,一个一个看,CUDA\v11.2\extras下面的东西哪去了呢,其实这和我一开始cuda的安装方法有关,不知道小伙伴们记不记得,当初自定义安装cuda的时候是有这个选项的。
但是当时我没选,其实这个东西选了之后也容易导致一下安装失败的问题,那好了现在没有这个东西我该去哪找呢,万幸我还留着当时cuda的安装包(话说这个安装包我也找了好久)。
把安装包打开(不是重新安装的意思),程序会先解压一下东西,等待解压完毕后,不要做任何操作,
C:\Users\user_name\AppData\Local\Temp\CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions
上面文件夹的内容就是你要找的文件。
好了,下面解决第二个问题,其实这个目标路径也挺好找的每个人都是不一样的,比如我的vs的安装路径就在
C:\Program Files (x86)\Microsoft Visual Studio
到这个文件里直接搜索,BuildCustomizations,出来的就是目标路径啦,全拷贝过来就行了。
2019\Community\MSBuild\Microsoft\v160\BuildCustomizations
再次运行cmake .. ,当然在这之前你要把build中的CMakeCache.txt删掉,否则只会重复执行刚才的结果。