1.实验基本情况

硬件环境:单块Nvidia RTX3090 GPU

软件环境:Python3.8,Pytorch1.12.1 cudatoolkit=11.3

2. 问题描述

运行命令时,命令中的 nvidia-smi 有效,输出如下

图1 nvidia-smi输出

但是程序运行过程中出现下面的错误:

site-packages/torch/cuda/__init__.py", line 217, in _lazy_inittorch._C._cuda_init()
RuntimeError: CUDA driver initialization failed, you might not have a CUDA gpu.

3.问题分析

如图1中,在当前安装的 CUDA Driver的版本460.91.03,其支持最高的 CUDA Driver为11.2,即最高支持运行11.2的运行时API,这个具体可查Nvidia官网点击进入

图2. Nvidia Driver version与CUDA Driver的对应关系

而Python中的 cudatoolkit 版本为运行时CUDA Driver版本,不能超过图1中的最高支持的CUDA Driver版本,如本例中使用的  cudatoolkit=11.3 对应的是 CUDA Driver 11.3,比当前实验环境中的最高CUDA Driver版本高了,恰巧程序中需要用到CUDA算子,出现了问题,其实如果程序不用CUDA算子,应该不会出现异常,这种安装方法我在其他程序中经常使用,但在测试DINO代码时,出现了异常。

4.问题解决

可将原有的虚拟环境删除

conda remove -n your_env_name --all

然后重新创建和配置环境即可,这里注意,最高支持 cudatoolkit=11.2 ,但是在Torch官网,似乎没有 cuda11.2的内容,因此,可以装 11.1或比11.2小的其他版本。具体可访问下面的链接。

最后我安装了 ,目前还没测试环境,应该是可行的了。

pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html

Previous PyTorch Versions | PyTorch Installing previous versions of PyTorchicon-default.png?t=N7T8https://pytorch.org/get-started/previous-versions/

https://download.pytorch.org/whl/cu111/torch_stable.htmlicon-default.png?t=N7T8https://download.pytorch.org/whl/cu111/torch_stable.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐