zl程序教程

您现在的位置是:首页 >  后端

当前栏目

如何使用 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 分区的演示之前࿰