📜  从 docker-compose 授予 gpu 访问权限 (1)

📅  最后修改于: 2023-12-03 14:49:17.229000             🧑  作者: Mango

从 docker-compose 授予 gpu 访问权限

在一些深度学习或图像处理任务中,需要使用 GPU 来加速计算,而 Docker 作为一个轻量级的容器化技术在这方面具有良好的支持。然而,在默认情况下,Docker 容器并不会被授予 GPU 访问权限,需要手动进行设置。

以下是在 docker-compose 中授予 GPU 访问权限的步骤:

  1. 创建一个包含 GPU 能力定义的 docker-compose 文件,示例代码如下:
version: '3'
services:
  app:
    build:
      context: .
    runtime: nvidia
    devices:
      - /dev/nvidia0:/dev/nvidia0
      - /dev/nvidia-uvm:/dev/nvidia-uvm
      - /dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools

上述代码中,runtime 参数告诉 Docker 使用 Nvidia 的 runtime,devices 参数则指定 GPU 设备的路径,nvidia0nvidia-uvmnvidia-uvm-tools 是 Nvidia GPU 相关的设备。你可以根据需要增加或删减这几行代码。

  1. 在 docker-compose.yml 文件所在目录下运行以下命令启动容器:
$ docker-compose up -d

通过以上两个步骤,你的容器就可以访问 GPU 了。

附:在单个 Docker 容器中授予 GPU 访问权限的命令示例如下:

$ docker run --runtime=nvidia \
  --device=/dev/nvidia0 \
  --device=/dev/nvidiactl \
  --device=/dev/nvidia-uvm \
  -it tensorflow/tensorflow:latest-gpu

以上命令会启动一个 TensorFlow GPU 容器,并授予它 GPU 访问权限。

结论

在 Docker 容器中设置 GPU 访问权限可以充分利用硬件资源,加速深度学习和图像处理任务。可以通过在 docker-compose 文件中增加 runtimedevices 参数来实现 GPU 访问权限的授权。