torch.cuda.is_avaiable 在 nvidia-smi 不工作的情况下返回 False
Posted
技术标签:
【中文标题】torch.cuda.is_avaiable 在 nvidia-smi 不工作的情况下返回 False【英文标题】:torch.cuda.is_avaiable returns False with nvidia-smi not working 【发布时间】:2020-11-29 04:01:19 【问题描述】:我正在尝试构建一个可以使用 GPUS 运行的 docker 映像,这是我的情况:
我有 python 3.6,我从图像 nvidia/cuda:10.0-cudnn7-devel 开始。 Torch 看不到我的 GPU。
nvidia-smi
也不工作,返回错误:
> Failed to initialize NVML: Unknown Error
> The command '/bin/sh -c nvidia-smi' returned a non-zero code: 255
我安装了 nvidia 工具包和 nvidia-smi
RUN apt install nvidia-cuda-toolkit -y
RUN apt-get install nvidia-utils-410 -y
【问题讨论】:
如果 nvidia-smi 失败,您的驱动程序安装已损坏,或者 docker 容器内的驱动程序实用程序版本与主机系统驱动程序版本不匹配。您的两个问题都不是与 CUDA 编程相关的问题,我很快就会从两者中删除 CUDA 标签。另外,第一个问题是否应该作为此问题的副本关闭? 如果您从图像nvidia/cuda:10.0-cudnn7-devel
开始,则不需要安装nvidia-cuda-toolkit
,绝对没有理由安装nvidia-utils-410
。第二次安装破坏了图像。相反,您应该从您想要的nvidia/cuda
映像开始(例如您想要使用的 CUDA 版本和 CUDNN 版本),并且不要安装任何与 GPU 驱动程序组件有关的东西,这就是 -410
所表示的.相反,请确保您的基础机器设置了 the NVIDIA container toolkit 和最新的 GPU 驱动程序
@RobertCrovella 我安装了这些,因为之前我没有 nvidia-smi
返回“/bin/sh: 1: nvidia-smi: not found”。 nvidia 容器工具包安装在基础机器中(例如 docker run --gpus all nvidia/cuda:10.0-base nvidia-smi
工作得很好)。
【参考方案1】:
我发现问题是在构建过程中不能使用 nvidia-smi (RUN nvidia-smi)。在构建期间任何与 GPU 可用性相关的检查都将不起作用。
使用 CMD bin/bash 并输入命令python3 -c 'import torch; print(torch.cuda.is_avaiable())'
,我终于得到了 True。
我也删除了
RUN apt install nvidia-cuda-toolkit -y
RUN apt-get install nvidia-utils-410 -y
根据@RobertCrovella 的建议
【讨论】:
以上是关于torch.cuda.is_avaiable 在 nvidia-smi 不工作的情况下返回 False的主要内容,如果未能解决你的问题,请参考以下文章
NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2游记