利用 GKE 对 NVIDIA GPU 的支持,开发人员和数据科学家越来越依赖 Google Kubernetes Engine(GKE)来运行 ML、可视化/渲染和高性能计算等要求苛刻的工作负载。在当前的经济环境下,客户面临着使用更少的资源完成更多工作的压力,而节约成本则是首要考虑因素。为此,我们于七月份在 GKE 上推出了 GPU 分时功能,允许多个容器共享同一个物理 GPU,从而提高 GPU 利用率。GKE 目前已经支持 NVIDIA A100 Tensor Core GPUs 的多实例 GPU,除此之外该功能还将共享 GPU 的优点拓展到了 GKE 上的所有 GPU 系列。

接下来我们将与只允许为每个容器分配一个完整 GPU 的开源 Kubernetes 进行比较。若工作负载只需要部分 GPU,那就无法充分利用 GPU 的巨大计算能力。此类应用包括笔记本电脑和聊天机器人等,它们长期处于闲置状态,即使处于活动状态,也只消耗一部分 GPU。

对于诸如实时广告和产品推荐等许多推理工作负载而言,GPU 利用率不足是一个十分突出的问题。由于这类应用能够产生收入、对业务至关重要,而且会受到延迟的影响,因此底层基础架构需要能够从容应对突如其来的负载峰值。虽然 GKE 的自动扩展功能非常方便,但无法在多个容器中共享 GPU 往往会导致配置过度和成本超支。

GKE 支持分时 GPU

GPU 分时的工作原理是以循环调用方式为共享物理 GPU 的容器分配时间片。在后台,时间切片是通过在共享 GPU 的所有进程间进行上下文切换而实现的。在任何时刻,只能有一个容器占用 GPU。不过,在固定时间间隔内,上下文切换可确保每个容器获得公平的时间片。

时间切片的好处在于,如果只有一个容器在使用 GPU,那么该容器可以使用 GPU 的全部容量。如果在同一个 GPU 上又增加了一个容器,那么每个容器可分别使用一半的 GPU 计算时间。这意味着分时是一种超额订阅 GPU 并提高其利用率的有效方法。将 GPU 共享功能与 GKE 业界领先的自动扩展和自动配置功能相结合,您可以自动向上或向下扩展 GPU,以更低的成本实现卓越性能。

分时 GPU 节点的早期采用者正在借助这项技术来促进 GKE 的使用,应对要求苛刻的工作负载。圣迭戈超级计算中心(SDSC)对 GKE 上的分时 GPU 性能进行了基准测试,发现即使是低端的 T4 GPU,共享也能将任务吞吐量提高约 40%。对于高端 A100 GPU, GPU 共享可将吞吐量提高 4.5 倍,实现了真正的变革。

GKE 支持 NVIDIA 多实例 GPU(MIG)

GKE 的 GPU 分时功能与多实例 GPU 相辅相成。多实例 GPU 可将单个 NVIDIA A100 GPU 最多划分为七个实例,从而提高 GPU 利用率并降低成本。每个实例都有自己的高带宽内存、缓存和运算核心,可以分配给一个容器,每个 NVIDIA A100 GPU 最多可支持 7 个容器。多实例 GPU 在工作负载之间提供硬件隔离,并为在 GPU 上执行的所有容器提供一致且可预测的 QoS。

分时 GPU 与多实例 GPU 的比较

您可以在 GKE 上的任何 NVIDIA GPU(包括 A100)上配置分时 GPU。多实例 GPU 仅适用于 A100 加速器。

如果您的工作负载需要与同一个物理 GPU 上的与其他容器进行硬件隔离,则应使用多实例 GPU。使用多实例 GPU 实例的容器只能访问该实例可用的 CPU 和内存资源。因此,如果并行工作负载需要可预测的吞吐量和延迟时,那么更适合使用多实例 GPU。但是,如果多实例 GPU 上运行的容器数量少于可用实例数量,那就不会用到剩余实例了。

另一方面,对于分时 GPU,上下文切换允许每个容器访问底层物理 GPU 的全部容量。因此,如果只有一个容器在运行,那就可以占用 GPU 的全部容量。分时 GPU 非常适合运行只需要部分 GPU 容量的工作负载和突发工作负载。

分时 GPU 最多允许 48 个容器共享同一个物理 GPU,而 A100 上的多实例 GPU 最多允许 7 个分区。

如果希望最大限度地提高 GPU 利用率,则可以为每个多实例 GPU 分区配置分时。然后您可以在每个分区上运行多个容器,这些容器共享对该分区中的资源的访问权限。

立即开始

GPU 和 GKE 的结合将会带来翻天覆地的变革。GKE 的功能包括自动配置、自动扩展和管理简化,而 GPU 则拥有卓越的处理能力。在 GKE 的帮助下,数据科学家、开发人员和基础架构团队可以构建、训练和管理工作负载,而不必担心底层基础架构、可移植性、兼容性、负载均衡和可扩展性等问题。现在借助 GPU 分时技术,您可以将工作负载加速需求匹配规模适当的 GPU 资源。此外,您还可以利用 GKE 的强大功能自动扩展基础架构,有效满足加速需求,同时提升用户体验,最大限度地降低运营成本。


相关推荐