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游记

秋的潇洒在啥?在啥在啥?

上传的数据在云端的怎么查看,保存在啥位置?

在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?

存储在 plist 中的数据在模拟器中有效,但在设备中无效

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据