MASKRCNN+3090显卡

原来的配置是torch171+cu110,CUDA11.0,2080显卡

换到3090显卡,代码不能跑,报错:RuntimeError: CUDA error: no kernel image is available for execution on the ...

 

换到11.1的cuda

1. 重新安装torch版本为180+cu111

2. 从nvidia官网https://developer.nvidia.com/cuda-11.1.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=2004&target_type=runfilelocal下载11.1的CUDA。选runfile。进里面安装流程时不要选择安装驱动。

3. sudo gedit ~/.bashrc 更新下面三项为

export CUDA_HOME=/usr/local/cuda-11.1/
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64
export PATH=$PATH:/usr/local/cuda-11.1/bin

SAVE之后 source ~/.bashrc

4. 重新编译apex,cd apex

pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

注意看每项编译消息的提示:[9/11] /usr/local/cuda-11.1/bin/nvcc ,注意nvcc的路径是在cuda-11.1而不是旧的11.0

5. 重新编译maskrcnn,cd maskrcnn

python setup.py build develop

 

OK

推理速度,3090大概比3080快25%

最后上述环境和重新编译后的apex和maskrcnn依然可以在2080上跑

 

 

++++++++++++++++++++++++++++++++++++++++++++++++++

以上均在推理环境测试过,但是到了训练阶段报错:RuntimeError: radix_sort: failed on 1st step: cudaErrorInvalidDevice: invalid device ordinal

这个帖子说的很清楚:https://blog.csdn.net/qq_55068938/article/details/121270986

于是更换到torch版本为190+cu111版本的torch

由于cuda依然是111,所以不用重新编译apex

重新编译maskrcnn即可。这里有torch的版本高于1.8,会报ImportError: cannot import name 'container_abcs' from 'torch._six'

按照https://blog.csdn.net/dou3516/article/details/121283437 简单修改即可。并且经过以上修改后,依然可以在2080显卡上运行。

 

简单说3090显卡应配置torch为190以上版本

posted on 2022-03-14 17:05  博闻强记2010  阅读(819)  评论(0编辑  收藏  举报

导航