我使用奇点,我需要在奇点容器中安装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 Driver/library version mismatch
一个答案说要执行命令:
lsmod | grep nvidia
然后在除nvidia之外的每个模块上使用rmmod,最后在rmmod nvidia上使用。
rmmod drm
但是当我这样做时,由于该主题除外,因此出现错误: rmmod:错误:正在使用模块nvidia。
该主题说,点击lsof / dev / nvidia *,并杀死使用该模块的进程,但是用drm编写却看不到任何东西,并且杀死进程似乎是一个非常糟糕的主意(Xorg,gnome -她)。
这是命令lsof / dev / nvidia *的答案,其后是命令lsmod | |。 grep nvidia,然后rmmod drm 重新启动计算机也不起作用。
我应该怎么做才能使用nvidia-smi进行管理,并能够从奇异容器内部使用我的GPU?
谢谢
答案 0 :(得分:1)
您可能需要在主机OS中而不是在容器本身中执行上述步骤。 /dev
已按原样安装到容器中,但仍由主机使用,尽管进程在不同的用户空间中运行。
答案 1 :(得分:1)
感谢您的回答。 我想将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,而无法使用。