首页 > 解决方案 > Docker Swarm 不支持使用 GPU 设备

问题描述

我正在尝试将 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-composegpudocker-swarmnvidia-docker

解决方案


在撰写本文时,docker swarmkit 似乎不支持devices,在 docker github 上看到这个问题,围绕它进行了相当长时间的讨论。


推荐阅读