每个 GPU 都可以在 Kubernetes 上专用于特定 Pod 吗?

每个 GPU 都可以在 Kubernetes 上专用于特定 Pod 吗?

我有以下环境:

Pods: Pod0, Pod1 (launched as a k8s Job)
GPUs: GPU0, GPU1

GPU0 专用于 Pod0,GPU1 专用于 Pod1。

可以同时有多个 Pod0 和 Pod1。如果有两个 Pod0,则只有一个 Pod0 可以使用 GPU0,另一个 Pod0 应处于Pending状态直到第一个 Pod0 完成。

这个工作量可以实现吗?

目前我使用nvidia.com/gpu资源设置,但我唯一能做的就是设置分配给每个 Pod 的 GPU 数量。我尝试过设置NVIDIA_VISIBLE_DEVICES,但无法达到我想要的效果。

答案1

您可以将一个 GPU 用于多个 Pod,而不是让另一个 Pod 处于待处理状态,这里 GPU1 用于 POD0 的多个 Pod,借助 Nvidia GPU。只是不要在资源限制/请求中指定它。这样,所有 Pod 中的容器都可以完全访问 GPU,就像它们是正常进程一样。按照此 指导对于 k8 上的 GPU 共享,请参阅此所以了解更多信息。

相关内容