【问题标题】:Docker Swarm does not support use of GPU devicesDocker Swarm 不支持使用 GPU 设备
【发布时间】:2021-06-19 22:59:59
【问题描述】:

我正在尝试将 GPU 工作负载部署到我的 swarm 集群中。

我的服务清单如下所示。

nvidia:
    image: "tensorflow/tensorflow:devel-gpu"
    volumes:
      - type: bind
        source: ./ubuntu_gpu
        target: /app
        consistency: cached
    build:
      context: ./ubuntu_gpu
    ports:
      - 6186:80
    working_dir: "/app"
    runtime: nvidia
    environment:
      - LD_LIBRARY_PATH=/usr/local/cuda-11.3/targets/x86_64-linux/lib
   deploy:
      resources:
        reservations:
          devices:
          - driver: nvidia
            capabilities: [gpu]

上述方法取自 docker 官方关于 GPU 支持的文档 https://docs.docker.com/compose/gpu-support/

当我部署堆栈时,出现以下错误。

Additional property devices is not allowed

似乎 docker swarm 无法看到连接到工作节点的 GPU 设备。

有谁知道此功能是否仅适用于 docker-compose 而不适用于 docker-swarm,或者是否有解决方法?

【问题讨论】:

    标签: docker-compose gpu docker-swarm nvidia-docker


    【解决方案1】:

    在撰写本文时,docker swarmkit 似乎不支持devices,请参阅此issue on the docker github,围绕它进行了相当长时间的讨论。

    【讨论】:

    • 在 docker(甚至 swarm)中使用 GPU 的一种方法是使用 nvidia/cuda docker 镜像。它们附带驱动程序。
    • 据我了解,问题在于 docker swarm 解决硬件的方式,这在堆栈/服务级别上无法规避。当然,你可以在单个节点上直接使用docker compose 在该节点上运行任意独立服务,但这违背了 docker swarm 的目的。
    • 现在是否可以将docker swarm 与 nvidia gpus 一起使用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多