2021-04-22

RTX3090/Nvidia A10+Ubuntu20.04+Pytorch1.7+Cuda11.1在MOC复现上总结
之前写过一篇文章,也是复现MOC,只不过实在RTX TAITAN X上,当时的环境是python3.6+pytorch1.4。
今天尝试了利用RTX3090以及A10(Nvidia)的新卡去跑MOC,遇到了几个问题,经过调试,也成功解决。接下来分享一下:
BUG1:
RuntimeError: Error compiling objects for extension
这个问题看到其他博客说的是pytorch版本不匹配
BUG2:
undefined symbol: THPVariableClass
博客说要把torch和extension的顺序放对位置(torch)必须在第一位。
BUG3:
command ‘g++’ failed with exit status 1
自己装一下g++:

sudo apt-get install build-essential

BUG4:
DCNv2编译失败

这个问题是大家遇到最多的,其实这个问题也与算力有关,RTX3090为sm_86,只需要把cuda版本升级到11.1就行(11.2)也可以。
BUG5:
command ‘/usr/local/cuda/bin/nvcc’ failed with exit status 1

这个问题也是pytorch与cuda还有显卡版本不匹配,解决的方法也是保证三者版本一致。pytorch安装连接
最后,DCNv2的预编译一直是有问题的,对于低版本的pytorch推荐用pytorch0.4,对于高版本的推荐用1.4或1.7。然后,DCNv2对应代码修改,参考github,在这不做叙述。

以上的bug总结为一句话:
RTX,pytorch,CUDA版本不匹配。

上一篇:全面剖析Qt6新版构建系统CMake


下一篇:HTML列表标签