3

如何使用 nvidia-docker 在 docker 操作的 swarm 模式下创建服务。我正在尝试在这个 swarm 网络中训练一个 tensorflow 模型来进行分布式学习。我发现一种方法是在不同的机器上运行一个由不同容器组成的集群网络,并在每台机器上使用 GPU 进行分布式训练。如果在 swarm 模式下不可能,是否有任何可能的方法来完成上述任务?

docker service create --name tensorflow --network overnet saikishor/tfm:test azt0tczwkxaqpkh9yaea4laq1

由于未指定 --detach=false,因此将在后台创建任务。

在未来的版本中,--detach=false 将成为默认值

但在 docker service ls 下,我有这个

ID 名称模式副本图像端口

uf6jgp3tm6dp tensorflow 复制 0/1 saikishor/tfm:test

4

2 回答 2

3

问这个问题时是不可能的,但不是现在。

nvidia-docker2发布以来,支持一个新的 docker 容器运行时,通常命名为nvidia。这样就可以docker run --runtime nvidia ...访问 GPU,如nvidia-docker run .... 此外,配置该dockerd选项后,Docker Swarm 和 Kubernetes 等工具也可以使用 GPU。--default-runtime nvidiadocker-compose

nvidia-gpu-docker

安装

基于 Debian 的发行版

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update

基于 RHEL 的发行版

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | \
  sudo tee /etc/yum.repos.d/nvidia-docker.repo

配置

{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "default-runtime": "nvidia",
    ...
}
于 2018-11-05T06:56:16.907 回答
0

截至目前,nvidia-docker 不支持 docker swarm。所以,现在没有任何可能。我们需要创建一个外部网络将它们连接在一起。

于 2017-11-15T10:28:02.903 回答