Windows 安装编译ops_dcvn3及问题

记录一下ops_dcnv3安装记录,博主主要将yolov8引入ops_dcnv3时的遇到的编译问题

1 准备工具:ops_dcnv3:InternImage/detection at master · OpenGVLab/InternImage (github.com)

将此文件中的ops_dcnv3文件夹复制到需要编译的项目文件中。

Vs生成工具:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux (microsoft.com)

VS下载

下载打开后,点“继续”:

进到主页面,按下图选择:

等待安装完成后关闭即可

OPS_Dcnv3编译

博主已将ops_dcnv3移动到需要编译的文件夹下

打开终端,输入以下指令:

python setup.py build install

若天时地利人和,且已经成功配置了CUDA及VS,此处应该会编译成功。(成功的可以撤退了~~~)

然而,博主安装时困难重重,下面我将遇到的所有问题及解决方案分享给集美、集帅们~

问题及解决方案

1  RuntimeError:The detected CUDA version(12.0) mismatches the version that was used to compile PyTorch(11.8).

解决:将本地CUDA版本切换为与虚拟环境中Pytorch匹配的CUDA11.8版本。安装多版本CUDA可参考:Windows10下多版本CUDA的安装与切换 超详细教程_cuda版本-CSDN博客

多说一句,选择多版本安装CUDAToolkit时,根据以上教程、若安装失败,取消勾选以下选项,再次尝试安装。

总结:此错误应该是本地CUDA版本与虚拟环境中的torch(GPU版本)的CUDA版本不匹配所以发的错误,在查阅大量资料后,得出结论,若本地CUDA版本与虚拟环境中的CUDA版本未跨越大版本(均为11.x),应该不会报这个错误。若有理解错误,欢迎指正交流!!!

2 error: command 'F:\\Program Files\\NVDIA GPU Computing Toolkit\\CUDA\\V11.8\\bin\\nvcc.exe' failed with exit code 2

实际报错信息如下:

解决方案:打开CUDA安装路径中的crt文件夹,选择host_config.h文件,以博主为例,打开以下地址:

"F:\Program Files\NVDIA GPU Computing Toolkit\CUDA\V11.8\include\crt\host_config.h"

忘记安装地址,可以去环境变量➡系统变量➡Path中寻找带CUDA字样的文件地址

打开Host_config.h后,跳转到151行代码,更改为以下内容:

#if _MSC_VER < 1910 || _MSC_VER >= 1940  /更改前
#if _MSC_VER < 1910 || _MSC_VER >= 2000  /更改后

"_MSC_VER"值越大越好,一劳永逸。具体原理可以参考以下链接:

fatal error C1189: #error: -- unsupported Microsoft Visual Studio version!_fatal error c1189: #error: -- unsupported microsof-CSDN博客

3 error: command 'F:\\Program Files\\NVDIA GPU Computing Toolkit\\CUDA\\V11.8\\bin\\nvcc.exe' failed with exit code 1

分析打印的错误信息,可以发现实际错误如下图所示:

还是和以上类似,也是版本问题,根据报错提示,寻找VS生成工具文件夹路径下的yvals_core.h文件,定位到887行:

#if __CUDACC_VER_MAJOR__ < 12 || (__CUDACC_VER_MAJOR__ == 12 && __CUDACC_VER_MINOR__ < 4)///更改前

#if __CUDACC_VER_MAJOR__ < 11 || (__CUDACC_VER_MAJOR__ == 12 && __CUDACC_VER_MINOR__ < 4)///更改后

如果你的CUDA版本为10.X,则应该修改为

#if __CUDACC_VER_MAJOR__ < 10 || (__CUDACC_VER_MAJOR__ == 12 && __CUDACC_VER_MINOR__ < 4)

以此类推...

解决完上述问题后,博主再次尝试编译,终于

在使用Conda list查看,发现dcnv3 1.0已成功导入到虚拟环境中。

总结

博主问题主要还是由于版本不对应引起的问题(环境管理的重要性),如果帮到大家,希望给我一个免费的赞哦,有任何问题可以评论区留言讨论,若有任何错误,欢迎批评指正!!!

参考:

报错解决:RuntimeError:The detected CUDA version mismatches the version that was used to compile PyTorch._the detected cuda version (12.1) mismatches the ve-CSDN博客

fatal error C1189: #error: -- unsupported Microsoft Visual Studio version!_fatal error c1189: #error: -- unsupported microsof-CSDN博客

Windows10下多版本CUDA的安装与切换 超详细教程_cuda版本-CSDN博客

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qiqidaguowang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值