0

我使用奇点,我需要在我的奇点容器中安装一个 nvidia 驱动程序,以便使用 gtx 1080 进行一些深度学习。这个奇点图像是从这里的 nvidia docker 创建的: 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-she) .

这是命令 lsof /dev/nvidia* 的答案,后面是命令 lsmod | grep nvidia,然后 rmmod drm在此处输入图像描述 重新启动计算机也没有用。

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

谢谢

4

2 回答 2

1

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

于 2019-07-04T07:41:57.003 回答
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 将无法工作。

于 2019-07-05T09:39:35.957 回答