nvidia-container-runtime

之前介绍过nvidia/cuda + 宿主gpu驱动环境搭建-CSDN博客

其中有一个重要的步骤是安装nvidia-container-runtime;

下面关于上面的nvidia 的docker 运行时简要介绍一下,不作为安装部署环境使用,仅作为了解。

nvidia-container-runtime是一个用于在 Docker 容器中实现 NVIDIA GPU 支持的运行时工具。它使得容器能够利用主机的 NVIDIA GPU,以支持 GPU 加速的应用程序和工作负载。具体来说,它主要有以下用途和功能:

1. GPU 访问

nvidia-container-runtime 允许 Docker 容器直接访问主机上的 NVIDIA GPU。这使得容器内的应用程序可以利用 GPU 加速功能,例如在深度学习、机器学习和高性能计算(HPC)任务中进行训练和推断。

2. 支持 CUDA 和 NVIDIA 驱动

确保容器中的应用程序能够使用 CUDA(NVIDIA 的并行计算架构)和其他 NVIDIA 驱动程序提供的功能。容器运行时会将主机上的 NVIDIA 驱动程序和 CUDA 工具包正确地映射到容器中,从而允许容器内的应用程序利用这些资源。

3. 兼容性和优化

nvidia-container-runtime 提供了对 Docker 的 GPU 支持的优化,确保容器内的应用程序能够高效地访问和使用 GPU。它也处理与主机系统和容器之间的兼容性问题。

4. 支持不同的运行时

除了 nvidia-container-runtime,Docker 也支持其他 GPU 运行时,例如 nvidia-docker(早期版本)或 nvidia-container-toolkit。nvidia-container-runtime 是这些工具的现代替代品,它提供了更好的支持和功能。

5. 多 GPU 支持

nvidia-container-runtime 允许容器访问多个 GPU。这对需要多 GPU 训练的深度学习模型或大规模计算任务非常有用。

6. 安装和配置

安装 nvidia-container-runtime 需要确保系统中已经正确安装了 NVIDIA 驱动程序和 CUDA 工具包。配置 Docker 以使用 nvidia-container-runtime 作为默认运行时或在启动容器时指定它,可以确保容器能够正确地使用 GPU。

安装和配置步骤

  1. 安装 nvidia-container-runtime
    sudo apt-get update
    sudo apt-get install -y nvidia-container-runtime
  2. 配置 Docker 使用 NVIDIA 运行时
    编辑 Docker 配置文件 /etc/docker/daemon.json,添加以下内容:
    {
      "runtimes": {
        "nvidia": {
          "path": "nvidia-container-runtime",
          "runtimeArgs": []
        }
      }
    }

    然后重启 Docker 服务:

    sudo systemctl daemon-reload
    sudo systemctl restart docker
  3. 运行支持 GPU 的容器
    使用 --runtime=nvidia 选项启动 Docker 容器,以启用 GPU 支持:

    docker run --runtime=nvidia --gpus all your_image

总结

nvidia-container-runtime 是一个关键工具,用于在 Docker 容器中实现和管理 NVIDIA GPU 支持。它提供了对 GPU 资源的访问,确保容器中的应用程序能够高效地使用主机上的 GPU 进行加速计算。通过正确安装和配置 nvidia-container-runtime,你可以充分利用 GPU 的计算能力来加速各种计算密集型应用。

nvidia-docker2

这里是安装nvidia-container-runtime,但是我们前面说的是安装nvidia-docker2;nvidia-docker2是什么呢

nvidia-docker2 是 NVIDIA 提供的一个工具包,用于在 Docker 容器中实现对 NVIDIA GPU 的支持。它包括以下几个核心组件:

1. nvidia-container-runtime

nvidia-container-runtime 是 nvidia-docker2 的核心组件,它允许 Docker 容器直接访问和使用主机上的 NVIDIA GPU。它替换了 Docker 的默认运行时,以提供对 GPU 的支持。

2. nvidia-docker2 包

nvidia-docker2 包是安装和配置 nvidia-container-runtime 的工具集。它包括以下内容:

  • nvidia-container-runtime,用于 GPU 支持。
  • nvidia-container-toolkit,用于配置和管理 NVIDIA 运行时。

3. 功能和用途

  • GPU 支持:通过 nvidia-container-runtime,容器可以访问主机的 GPU,支持 CUDA 计算和其他 GPU 加速任务。
  • 容器化 GPU 计算:使得在 Docker 容器中运行深度学习、机器学习、科学计算等需要 GPU 加速的应用变得简单。
  • 隔离和管理:提供对 GPU 资源的管理和隔离,使得不同容器可以独立使用 GPU。

安装脚本分析

既然我们说nvidia-docker2包含了nvidia-container-runtime 和 nvidia-container-toolkit,那么我们把前面安装nvidia-docker2的脚本分析一下:

sudo apt-get update

sudo apt-get install -y gnupg curl

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

echo "deb https://nvidia.github.io/nvidia-docker/$distribution $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

导入 NVIDIA 的 GPG 密钥

  • curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey:
    • curl 是一个用于从 URL 下载数据的工具。
    • -s 选项表示静默模式,不显示进度信息。
    • -L 选项表示跟随重定向(如果 URL 被重定向到另一个 URL)。
    • https://nvidia.github.io/nvidia-docker/gpgkey 是 NVIDIA 提供的 GPG 密钥 URL,用于验证从 NVIDIA 软件源下载的软件包的完整性和来源。
  • | sudo apt-key add -:
    • | 是管道符,将 curl 命令的输出传递给 apt-key add 命令。
    • sudo apt-key add - 将从标准输入读取 GPG 密钥并将其添加到 APT 的密钥管理系统中。这样做的目的是让 APT 认识到这个密钥,从而信任从 NVIDIA 软件源下载的软件包。

确定发行版和版本

distribution=$(. /etc/os-release;echo $ID$VERSION_ID):

  • (. /etc/os-release;echo $ID$VERSION_ID) 读取 /etc/os-release 文件,该文件包含有关操作系统的详细信息。
  • $ID 是操作系统的标识符(例如 ubuntu)。
  • $VERSION_ID 是操作系统的版本号(例如 `20.04`)

最后一行 echo … | tee …

这个命令将 NVIDIA Docker 的仓库信息写入到 APT 的源列表中:

  • echo "deb https://nvidia.github.io/nvidia-docker/$distribution $(lsb_release -cs) stable": 构造一个仓库源条目,指明仓库的 URL 和发行版的代号。
    • https://nvidia.github.io/nvidia-docker/$distribution: 指向 NVIDIA Docker 的仓库,$distribution 是上一步中提取的操作系统标识和版本号。
    • $(lsb_release -cs): 获取当前发行版的代号(如 focal),用于指定仓库的版本。
    • stable: 仓库的稳定版本。
  • | sudo tee /etc/apt/sources.list.d/nvidia-docker.list: 将仓库条目写入到 /etc/apt/sources.list.d/nvidia-docker.list 文件中。sudo tee 用于以管理员权限执行写入操作,并且同时显示输出。

接着安装nvidia-docker2:

sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

corey_li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值