如何使用 NVIDIA MPS 提高 Kubernetes 中的 GPU 利用率
Kubernetes 如何 提高 GPU NVIDIA 利用率 使用
2023-09-11 14:18:29 时间
在 Kubernetes 中集成 NVIDIA 多进程服务 (MPS) 以在工作负载之间共享 GPU,从而最大限度地提高利用率并降低基础设施成本
大多数工作负载不需要每个 GPU 的全部内存和计算资源。因此,在多个进程之间共享 GPU 对于提高 GPU 利用率和降低基础架构成本至关重要。
在 Kubernetes 中,这可以通过将单个 GPU 公开为特定内存和计算大小的多个资源(即切片)来实现,这些资源可以由各个容器请求。通过创建每个容器严格需要大小的 GPU 切片,您可以释放集群中的资源。这些资源可以用来调度额外的 Pod,或者可以让你减少集群的节点数量。在任何一种情况下,在进程之间共享 GPU 都可以降低基础设施成本。
Kubernetes 中的 GPU 支持由NVIDIA Kubernetes Device Plugin提供,目前仅支持两种共享策略:时间切片和多实例 GPU (MIG)。然而,还有第三种 GPU 共享策略平衡了时间分片和 MIG 的优缺点:多进程服务(MPS)。尽管 NVIDIA Device Plugin 不支持 MPS,但有一种方法可以在 Kubernetes 中使用它。
在本文中,我们将首先研究所有三种 GPU 共享技术的优缺点,然后提供有关如何在 Kubernetes 中使用 MPS 的分步指南。此外,我们还提供了一种用于自动管理 MPS 资源以优化利用率和降低运营成本的解决方案:动态 MPS 分区。
GPU共享技术概述
共有三种共享 GPU 的方法:
- 时间分片
- 多实例 GPU (MIG)
- 多进程服务 (MPS)
在深入了解动态 MPS 分区的演示之前
相关文章
- Kubernetes K8S和Helm术语概念
- Kubernetes证书类型和适用场景
- Kubernetes 服务部署最佳实践(二) 如何提高服务可用性
- 如何在kubernetes中将secret标记为可选或必选?
- Kubernetes运行有状态应用程序的注意事项
- kubernetes:字段选择器(field-selector)标签选择器(labels-selector)和筛选 Kubernetes 资源
- kubernetes 集群准备好升级到 v1.24 了吗?这里包含了需要注意的事项
- kubespray 部署 kubernetes 排错细节仅供参考
- 如何在 Kubernetes Pod 和您的机器之间复制文件
- 如何用 Kubernetes 自定义资源?
- 《Docker容器:利用Kubernetes、Flannel、Cockpit和Atomic构建和部署》——2.3 小结
- 大数据Airflow教程之如何在 Kubernetes 上部署 Airflow 的?包含最佳部署实践的完整指南
- GitLab + Jenkins + Docker + Kubernetes。
- Kubernetes管理:看看EBay的蜜汁配方
- 【云原生】Kubernetes核心技术(上)
- 探索Kubernetes HPA