解决CUDA error: no kernel image is availabel for execution on the device

jane_xing 2024-09-13 10:01:01 阅读 53

问题描述:

GLIP demo从T4卡的服务器上迁移到4090卡上,同样的docker镜像,同样的启动脚本,竟然报错了:

原因分析:

环境里的cuda版本是11.0,网上看到4090支持的cuda最低版本是11.8

尝试解决第一步:

升级cuda版本,安装cuda11.8

打开nvidia官网,找到安装命令:

官网地址:https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=runfile_local

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

sudo sh cuda_11.8.0_520.61.05_linux.run

安装时,不勾选‘driver’,按空格即可。安装好后,nvcc -V,检查是否安装成功。

启动服务,被催地发现,仍然报同样的错。

继续分析:

检查torch版本,是否torch版本和cuda不兼容导致。

环境中torch版本:1.9.1+cu102

对比该服务器上其它正常可用跑训练或推理的docker环境,发现 torch版本:1.9.1+cu111的运行正常。

尝试解决第二步:

更新torch版本:1.9.1+cu111

pip install torch==1.9.0+cu111 -f https://download.pytorch.org/whl/cu111/torch_stable.html

直接 pip install torch==1.9.0+cu111 ,是会报错的,需要加上后面的地址。

再次启动demo,无报错,问题解决。

最后

有一种可能,不需要升级cuda版本,直接更新torch版本就可以解决问题。时间原因,不做验证了。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。