Driver 在singularity容器中安装驱动程序后,nvidia smi不工作

Driver 在singularity容器中安装驱动程序后,nvidia smi不工作,driver,nvidia,singularity-container,Driver,Nvidia,Singularity Container,我使用singularity,我需要在singularity容器中安装一个nvidia驱动程序,以便对GTX1080进行深入学习。 此奇点图像由nvidia docker从以下位置创建: 并转换为奇点容器。 我想没有nvidia驱动程序,因为在我安装驱动程序之前没有找到nvidia smi 我做了以下命令: add-apt-repository ppa:graphics-drivers/ppa sudo apt update apt install nvidia-418

我使用singularity,我需要在singularity容器中安装一个nvidia驱动程序,以便对GTX1080进行深入学习。 此奇点图像由nvidia docker从以下位置创建: 并转换为奇点容器。 我想没有nvidia驱动程序,因为在我安装驱动程序之前没有找到nvidia smi

我做了以下命令:

    add-apt-repository ppa:graphics-drivers/ppa
    sudo apt update
    apt install nvidia-418
之后,我想看看驱动程序是否安装良好,我执行了以下命令:

nvidia-smi
lsmod | grep nvidia
哪个返回:初始化NVML失败:驱动程序/库版本不匹配

我搜索了有关如何解决此错误的信息,找到了以下主题:

一个答案是要执行命令:

nvidia-smi
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并能够从singularity容器中使用我的GPU


谢谢

您可能需要在主机操作系统而不是容器本身中执行上述步骤<代码>/dev按原样装载到容器中,并且仍然由主机使用,尽管进程在不同的用户空间中运行。

您可能需要在主机操作系统中执行上述步骤,而不是在容器本身中<代码>/dev按原样装载到容器中,尽管进程在不同的用户空间中运行,但仍由主机使用。

谢谢您的回答。 我想在singularity容器中安装GPU驱动程序,因为在容器内部时,我无法使用GPU(nvidia smi:command not found),而在容器外部,我可以使用nvidia smi

你是对的,驱动程序应该安装在容器外部,我想将其安装在容器中,以避免无法从容器内部访问驱动程序的问题

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

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

当你添加NV时,容器将访问NVIDIA驱动程序,英伟达SMI将运行。 如果没有这些,您将无法使用GPU,nvidia smi将无法工作。

谢谢您的回答。 我想在singularity容器中安装GPU驱动程序,因为在容器内部时,我无法使用GPU(nvidia smi:command not found),而在容器外部,我可以使用nvidia smi

你是对的,驱动程序应该安装在容器外部,我想将其安装在容器中,以避免无法从容器内部访问驱动程序的问题

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

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

当你添加NV时,容器将访问NVIDIA驱动程序,英伟达SMI将运行。 没有这一点,您将无法使用GPU,nvidia smi将无法工作