温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - nvidia-smi not working after installing driver in a singularity container
driver nvidia singularity-container

其他 - 在单个容器中安装驱动程序后,nvidia-smi无法正常工作

发布于 2020-03-27 10:35:22

我使用奇点,我需要在奇点容器中安装nvidia驱动程序,以对gtx 1080进行一些深度学习。此奇点图像是从nvidia泊坞站从此处创建的:https : //ngc.nvidia.com/catalog/containers / nvidia:kaldi并转换为奇异容器。我认为没有nvidia驱动程序,因为在安装驱动程序之前未找到nvidia-smi。

我做了以下建议:

    add-apt-repository ppa:graphics-drivers/ppa
    sudo apt update
    apt install nvidia-418

之后,我想查看驱动程序是否安装正确,我执行了以下命令:

nvidia-smi

返回:未能初始化NVML:驱动程序/库版本不匹配

我搜索了如何解决此错误的方法,发现了以下主题: NVIDIA NVML驱动程序/库版本不匹配

一个答案说要执行命令:

lsmod | grep nvidia

然后在除nvidia之外的每个模块上进行rmmod,最后对rmmod nvidia进行设置。

rmmod drm

但是,当我执行此操作时,由于该主题除外,因此出现错误:rmmod:错误:正在使用模块nvidia。

该主题说,点击lsof / dev / nvidia *,并杀死使用该模块的进程,但是用drm编写时我什么也看不到,并且杀死进程似乎是一个非常糟糕的主意(Xorg,gnome-she) 。

这是命令lsof / dev / nvidia *的答案,然后是命令lsmod |。grep nvidia,然后rmmod drm 在此处输入图片说明 重新启动计算机也无法正常工作。

我应该怎么做才能使用nvidia-smi进行管理并能够从奇异容器内部使用我的GPU?

谢谢

查看更多

查看更多

提问者
Antoine V
被浏览
70
Antoine V 2019-09-13 20:18

谢谢您的回答。我想将GPU驱动程序安装在奇异容器中,因为在容器内部时,我无法使用GPU(找不到nvidia-smi:命令),而在容器外部时,我可以使用nvidia-smi。

没错,驱动程序应安装在容器外部,我想将其安装在容器中,以避免出现无法从容器内部访问驱动程序的问题。

现在,我找到了解决方案:要从奇异容器内部使用GPU,在调用容器时必须添加--nv。例如:

singularity exec --nv singularity_container.simg ~/test_gpu.sh 

要么

singularity shell --nv singularity_container.simg

当您添加--nv时,该容器将可以访问nvidia驱动程序,并且nvidia-smi将起作用。否则,您将无法使用GPU,nvidia-smi将无法工作。