NVIDIA 支持在 OpenShift Dedicated 上使用图形处理单元 (GPU) 资源。OpenShift Dedicated 是一个安全且经过强化的 Kubernetes 平台,由 Red Hat 开发和支持,用于大规模部署和管理 Kubernetes 集群。OpenShift Dedicated 包含对 Kubernetes 的增强功能,使用户可以轻松配置和使用 NVIDIA GPU 资源来加速工作负载。
NVIDIA GPU Operator 利用 OpenShift Dedicated 中的 Operator 框架来管理运行 GPU 加速工作负载所需的 NVIDIA 软件组件的全生命周期。
这些组件包括 NVIDIA 驱动程序(启用 CUDA)、GPU 的 Kubernetes 设备插件、NVIDIA Container Toolkit、使用 GPU 功能发现 (GFD) 的自动节点标记、基于 DCGM 的监控等等。
NVIDIA GPU Operator 仅受 NVIDIA 支持。有关从 NVIDIA 获取支持的更多信息,请参见 从 NVIDIA 获取支持。 |
具有至少一个 GPU 工作节点的工作 OpenShift 集群。
以 cluster-admin
的身份访问 OpenShift 集群以执行必要的步骤。
已安装 OpenShift CLI (oc
)。
已安装节点功能发现 (NFD) Operator 并创建了 nodefeaturediscovery
实例。
您可以在 NVIDIA GPU 实例类型上部署 OpenShift Dedicated。
重要的是,此计算实例必须是 GPU 加速计算实例,并且 GPU 类型必须与 NVIDIA AI Enterprise 支持的 GPU 列表匹配。例如,T4、V100 和 A100 是此列表的一部分。
您可以选择以下方法之一来访问容器化的 GPU
GPU 直通,用于在虚拟机 (VM) 中访问和使用 GPU 硬件。
当不需要整个 GPU 时,GPU (vGPU) 时间切片。
Red Hat 和 NVIDIA 开发了 GPU 并发和共享机制,以简化企业级 OpenShift Dedicated 集群上的 GPU 加速计算。
应用程序通常具有不同的计算需求,这可能会导致 GPU 利用率不足。为每个工作负载提供合适的计算资源对于降低部署成本和最大化 GPU 利用率至关重要。
存在用于提高 GPU 利用率的并发机制,范围从编程模型 API 到系统软件和硬件分区,包括虚拟化。以下列表显示了 GPU 并发机制
计算统一设备架构 (CUDA) 流
时间切片
CUDA 多进程服务 (MPS)
多实例 GPU (MIG)
使用 vGPU 进行虚拟化
计算统一设备架构 (CUDA) 是 NVIDIA 开发的用于在 GPU 上进行通用计算的并行计算平台和编程模型。
流(stream)是在GPU上按发出顺序执行的一系列操作。CUDA命令通常在默认流中顺序执行,一项任务只有在前面一项任务完成后才能开始。
跨不同流进行异步处理操作允许并行执行任务。在一个流中发出的任务会在另一个流中发出的另一个任务之前、期间或之后运行。这允许GPU同时运行多个任务,而无需规定顺序,从而提高性能。
当运行多个CUDA应用程序时,GPU时间切片会交错调度在超载GPU上运行的工作负载。
您可以通过为GPU定义一组副本(replica)来启用Kubernetes上的GPU时间切片,每个副本可以独立分配给一个Pod来运行工作负载。与多实例GPU(MIG)不同,副本之间没有内存或故障隔离,但对于某些工作负载而言,这比完全不共享更好。内部使用GPU时间切片来多路复用来自同一底层GPU副本的工作负载。
您可以为时间切片应用集群范围的默认配置。您也可以应用节点特定的配置。例如,您可以只对具有Tesla T4 GPU的节点应用时间切片配置,而不对其他GPU型号的节点进行修改。
您可以通过应用集群范围的默认配置,然后标记节点以向这些节点提供节点特定的配置来组合这两种方法。
CUDA多进程服务(MPS)允许单个GPU使用多个CUDA进程。这些进程在GPU上并行运行,消除了GPU计算资源的饱和。MPS还支持内核操作和来自不同进程的内存复制的并发执行或重叠,以增强利用率。
使用多实例GPU(MIG),您可以将GPU计算单元和内存分割成多个MIG实例。从系统的角度来看,每个实例都代表一个独立的GPU设备,并且可以连接到节点上运行的任何应用程序、容器或虚拟机。使用GPU的软件将这些MIG实例中的每一个都视为一个独立的GPU。
当您的应用程序不需要整个GPU的全部功能时,MIG非常有用。新款NVIDIA Ampere架构的MIG功能使您可以将硬件资源分割成多个GPU实例,每个实例都可作为独立的启用CUDA的GPU提供给操作系统。
NVIDIA GPU Operator 1.7.0及更高版本为A100和A30 Ampere显卡提供MIG支持。这些GPU实例旨在支持多达七个独立的CUDA应用程序,以便它们使用专用硬件资源完全隔离地运行。
NVIDIA容器工具包使您可以创建和运行GPU加速的容器。该工具包包括一个容器运行时库和实用程序,用于自动配置容器以使用NVIDIA GPU。
NVIDIA AI Enterprise是一个端到端的、云原生的AI和数据分析软件套件,已针对NVIDIA认证系统进行了优化、认证和支持。
NVIDIA AI Enterprise包含对Red Hat OpenShift Dedicated的支持。支持以下安装方法:
在裸机或带有GPU直通的VMware vSphere上运行OpenShift Dedicated。
在带有NVIDIA vGPU的VMware vSphere上运行OpenShift Dedicated。
用于Kubernetes的NVIDIA GPU功能发现是一个软件组件,使您可以自动为节点上可用的GPU生成标签。GPU功能发现使用节点功能发现(NFD)来执行此标记。
节点功能发现操作符(NFD)通过使用硬件特定信息标记节点来管理在OpenShift Container Platform集群中发现硬件功能和配置。NFD使用节点特定属性(例如PCI卡、内核、操作系统版本等)标记主机。
您可以在Operator Hub中搜索“Node Feature Discovery”来查找NFD Operator。
到目前为止,GPU Operator仅配置工作节点以运行GPU加速的容器。现在,GPU Operator还可以用于配置工作节点以运行GPU加速的虚拟机(VM)。
您可以配置GPU Operator,根据在这些节点上配置运行的GPU工作负载,将不同的软件组件部署到工作节点。
您可以安装一个监控仪表盘,以在OpenShift Dedicated Web控制台的集群**观察**页面上显示GPU使用情况信息。GPU利用率信息包括可用GPU的数量、功耗(瓦特)、温度(摄氏度)、利用率(百分比)以及每个GPU的其他指标。