GKE 上的 GPU 时间共享

问题描述 投票:0回答:1

我正在尝试使用此处的说明中的 GPU 时间共享,但是我的工作负载不会在启用分时的节点上运行。

我有一个具有 GPU 配置的节点池,启用了策略分时的 GPU 共享,“每个 GPU 的最大共享客户端数”为 48。节点运行良好,但我无法使用记录的文件在其上运行工作负载

nodeSelector
我的工作负载配置,例如

nodeSelector:
  cloud.google.com/gke-accelerator: "nvidia-tesla-t4"
  cloud.google.com/gke-max-shared-clients-per-gpu: "48"
  cloud.google.com/gke-gpu-sharing-strategy: time-sharing

这样我的 Pod 就会陷入待处理状态,并显示消息

x nodes didn't match Pod's node affinity/selector
。如果我删除
gke-max-shared-clients-per-gpu
gke-gpu-sharing-strategy
密钥对,Pod 会正常调度并运行。

当我检查 GPU 分时节点池中节点上的 kubernetes 标签时,它们不包含这些标签,并且我无法手动添加它们,因为 GCP 阻止了它。

如有任何建议,我们将不胜感激!

machine-learning google-kubernetes-engine
1个回答
0
投票

您收到错误节点与 Pod 的节点亲和力/选择器不匹配,因为标签不匹配,正如您所提到的,您已经检查了节点,但它们不包含标签。

我遵循了您提到的相同的文档,我已经复制了该问题,并且我在节点上安排了 Pod。

注意:我使用的是标准集群和自动驾驶部署。

我创建了一个集群,如下所示:

image

正如文档中提到的,我创建了一个节点池,但它没有调度其中的 Pod。因此,我删除了默认节点池并使用命令创建了一个新节点池:

gcloud container clusters create gputimesharing \
    --region=us-west4-a \
    --cluster-version=latest \
    --machine-type=n1-standard-16 \
    --accelerator=type=nvidia-tesla-t4,count=1,gpu-sharing-strategy=time-sharing,max-shared-clients-per-gpu=12,gpu-driver-version=default

然后节点已使用此节点池,然后我尝试使用以下规范部署工作负载:

  nodeSelector:
    cloud.google.com/gke-accelerator: "nvidia-tesla-t4"
    cloud.google.com/gke-gpu-sharing-strategy: "time-sharing"
    cloud.google.com/gke-max-shared-clients-per-gpu: "12"

检查节点是否有标签:image

然后 pod 就被调度了,没有任何错误。

您可以尝试此过程,如果遇到任何错误请告诉我,并按照文档中所述验证节点中可见的 GPU 数量。

© www.soinside.com 2019 - 2024. All rights reserved.