Docker内部执行nvidia-smi无任何显示的解决方法

作者:新兰2024.01.18 03:26浏览量:45

简介:本文将介绍在Docker内部执行nvidia-smi无任何显示的解决方法,包括重新安装NVIDIA Container Toolkit、更新安装源、配置Docker以便正确识别NVIDIA的容器运行时库等步骤。

在使用Docker运行深度学习或GPU加速的应用时,有时候会遇到Docker内部执行nvidia-smi无任何显示的问题。这可能是由于Docker内部的Nvidia显卡驱动异常或未正确配置导致的。下面是一些解决此问题的步骤:

  1. 重新安装NVIDIA Container Toolkit
    按照Nvidia官方网站上的指南重新安装NVIDIA Container Toolkit。安装命令可以参考以下示例:
    1. # 重新安装Docker
    2. curl https://get.docker.com | sh
    3. sudo systemctl --now enable docker
    4. # 设置安装包和GPG key的仓库地址
    5. distribution=$(./etc/os-release; echo $ID$VERSION_ID)
    6. sudo curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
    7. sudo curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
    8. # 更新安装源
    9. sudo apt-get update
    10. # 安装nvidia-container-toolkit
    11. sudo apt-get install -y nvidia-container-toolkit
    12. # 配置Docker以便正确识别NVIDIA的容器运行时库
    13. sudo nvidia-ctk runtime configure --runtime=docker
    14. # 重启Docker
    15. sudo systemctl restart docker
  2. 更新安装源
    运行以下命令更新安装源:
    1. sudo apt-get update
  3. 安装dkms和特定版本的NVIDIA驱动
    有时候,即使已经安装了最新的NVIDIA驱动,执行nvidia-smi仍可能出现无法识别GPU的情况。这时可以尝试安装dkms(Dynamic Kernel Module Support)并指定安装特定版本的NVIDIA驱动。运行以下命令:
    1. sudo apt-get install dkms
    2. sudo dkms install -m nvidia -v 460.91.03 * 其中460.91.03为当前驱动版本
  4. 检查GPU是否被屏蔽
    nvidia-smi不显示可能是GPU被屏蔽了。可以尝试检查并解除屏蔽GPU。根据不同系统,文件名可能略有不同,但应包含“blacklist”和“nvidia”关键字。运行以下命令:
    1. sudo rm /etc/modprobe.d/*/lib/modprobe.d/*blacklist-nvidia.conf * blacklist-nvidia.conf这个名字在不同系统上可能会有细微不同,但都会包含nvidiablacklist关键字
    以上是解决Docker内部执行nvidia-smi无任何显示问题的一些常见方法。如果问题仍然存在,建议查阅相关文档或寻求专业人士的帮助。