【问题标题】:Sharing GPU to multiple containers in Kubernetes or Fractional GPU Resource Request [closed]将 GPU 共享到 Kubernetes 中的多个容器或分数 GPU 资源请求 [关闭]
【发布时间】:2018-11-23 06:44:42
【问题描述】:

我正在使用 Kubernetes(K8) v1.7 并且想知道我是否可以在多个 pod 之间共享一个 GPU。我在 TensorFlow 中有一个 MNIST 机器学习程序,其中 GPU 分配设置为 30%,GPU 增长allow_growth 为假。两个清单文件用于在 K8 下部署两个单独的作业。当我一起运行它们时,一个被安排,另一个等待,因为 GPU 资源不可用。在我的清单文件中,我将 alpha.kubernetes.io/nvidia-gpu 设置为 0.5。当我检查 GPU 进程时,它总是显示一个进程正在运行。如果我从 Kubernetes 停止一项作业,那么其他作业会被安排并显示在 GPU 进程中。仅供参考,我使用的机器只有一个 GPU。所以我的问题是 Kubernetes 是否支持 GPU 共享?我可以共享一个 GPU 并在清单文件中定义它吗?

Manifest 的一部分(两个作业具有相同的 GPU 请求)

  resources:
    limits:
      alpha.kubernetes.io/nvidia-gpu: 0.5

nvidia-smi 命令的输出一次显示 1 个进程

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 396.26                 Driver Version: 396.26                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:0B:00.0 Off |                  N/A |
|  0%   33C    P2    59W / 275W |    177MiB / 11178MiB |      8%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0     15513      C   python3                                      167MiB |
+-----------------------------------------------------------------------------+ 

【问题讨论】:

    标签: tensorflow kubernetes gpu nvidia mnist


    【解决方案1】:

    kubernetes 的官方文档说你可以在 pod 中请求 GPU 的最小值是 1,而不是分数。您可以查看 kubeflow 项目,因为 kubernetes 不支持跨 pod 共享单个 GPU。

    【讨论】:

      【解决方案2】:

      目前不支持在多个容器上共享 GPU,而且短期内不太可能支持。您需要让每个虚拟机成为一个单独的 Kubernetes 节点,每个节点都有一个单独的 GPU。

      【讨论】:

      猜你喜欢
      • 2020-04-28
      • 2020-07-31
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多