×

NVIDIA支持在AWS上的Red Hat OpenShift服务上使用图形处理单元(GPU)资源。AWS上的Red Hat OpenShift服务是由Red Hat开发和支持的安全型和强化型Kubernetes平台,用于大规模部署和管理Kubernetes集群。AWS上的Red Hat OpenShift服务对Kubernetes进行了增强,以便用户可以轻松配置和使用NVIDIA GPU资源来加速工作负载。

NVIDIA GPU Operator利用AWS上的Red Hat OpenShift服务中的Operator框架来管理运行GPU加速工作负载所需的NVIDIA软件组件的整个生命周期。

这些组件包括NVIDIA驱动程序(启用CUDA)、GPU的Kubernetes设备插件、NVIDIA容器工具包、使用GPU功能发现(GFD)的自动节点标记、基于DCGM的监控等等。

NVIDIA GPU Operator仅由NVIDIA支持。有关从NVIDIA获取支持的更多信息,请参见从NVIDIA获取支持

NVIDIA GPU先决条件

  • 至少具有一个GPU工作节点的正常运行的OpenShift集群。

  • cluster-admin身份访问OpenShift集群以执行必要的步骤。

  • 已安装OpenShift CLI (oc)。

  • 已安装节点功能发现(NFD) Operator并创建了nodefeaturediscovery实例。

GPU和ROSA

您可以在NVIDIA GPU实例类型上部署AWS上的Red Hat OpenShift服务。

重要的是,此计算实例必须是GPU加速的计算实例,并且GPU类型必须与NVIDIA AI Enterprise支持的GPU列表匹配。例如,T4、V100和A100属于此列表。

您可以选择以下方法之一来访问容器化的GPU

  • GPU直通,用于访问和使用虚拟机(VM)中的GPU硬件。

  • 当不需要整个GPU时,使用GPU (vGPU)时间切片。

GPU共享方法

Red Hat和NVIDIA开发了GPU并发和共享机制,以简化AWS上的企业级Red Hat OpenShift服务集群上的GPU加速计算。

应用程序通常具有不同的计算需求,这会导致GPU利用率不足。为每个工作负载提供合适的计算资源对于降低部署成本和最大化GPU利用率至关重要。

存在用于提高GPU利用率的并发机制,这些机制范围从编程模型API到系统软件和硬件分区,包括虚拟化。以下列表显示了GPU并发机制

  • 计算统一设备架构(CUDA)流

  • 时间切片

  • CUDA多进程服务(MPS)

  • 多实例GPU (MIG)

  • 使用vGPU的虚拟化

其他资源

CUDA流

计算统一设备架构(CUDA)是由NVIDIA开发的用于在GPU上进行通用计算的并行计算平台和编程模型。

流是在GPU上按发出顺序执行的一系列操作。CUDA命令通常在默认流中顺序执行,并且一项任务只有在前面一项任务完成后才能开始。

跨不同流的异步处理操作允许并行执行任务。在一个流中发出的任务会在另一个流中发出另一个任务之前、期间或之后运行。这允许GPU同时运行多个任务,而没有规定的顺序,从而提高性能。

其他资源

时间切片

当您运行多个CUDA应用程序时,GPU时间切片会交错调度到过载GPU上的工作负载。

您可以通过为GPU定义一组副本(每个副本可以独立分发到pod以在其上运行工作负载)来启用Kubernetes上的GPU时间切片。与多实例GPU (MIG)不同,副本之间没有内存或故障隔离,但对于某些工作负载而言,这比完全不共享更好。在内部,GPU时间切片用于多路复用来自同一底层GPU副本的工作负载。

您可以为时间切片应用集群范围的默认配置。您还可以应用特定于节点的配置。例如,您可以仅将时间切片配置应用于具有Tesla T4 GPU的节点,而不修改具有其他GPU型号的节点。

您可以通过应用集群范围的默认配置,然后标记节点以使这些节点具有特定于节点的配置来结合这两种方法。

CUDA多进程服务

CUDA多进程服务(MPS)允许单个GPU使用多个CUDA进程。这些进程在GPU上并行运行,消除了GPU计算资源的饱和。MPS还支持并发执行或重叠执行来自不同进程的内核操作和内存复制,以增强利用率。

其他资源

多实例GPU

使用多实例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应用程序同时运行,它们完全独立运行,拥有专用的硬件资源。

使用vGPU进行虚拟化

虚拟机 (VM) 可以使用NVIDIA vGPU直接访问单个物理GPU。您可以创建虚拟GPU,这些虚拟GPU可以在企业范围内由虚拟机共享,并可被其他设备访问。

此功能将GPU性能的强大功能与vGPU提供的管理和安全优势相结合。vGPU提供的其他优势包括对您的虚拟机环境进行主动管理和监控、针对混合VDI和计算工作负载的工作负载平衡以及跨多个虚拟机的资源共享。

其他资源

适用于AWS上的Red Hat OpenShift服务的NVIDIA GPU功能

NVIDIA容器工具包

NVIDIA容器工具包使您可以创建和运行GPU加速的容器。该工具包包括一个容器运行时库和实用程序,用于自动配置容器以使用NVIDIA GPU。

NVIDIA AI Enterprise

NVIDIA AI Enterprise是一个端到端的、云原生的人工智能和数据分析软件套件,经过优化、认证,并由NVIDIA认证系统提供支持。

NVIDIA AI Enterprise支持AWS上的Red Hat OpenShift服务。支持以下安装方法:

  • 在裸机或具有GPU直通的VMware vSphere上运行的AWS上的Red Hat OpenShift服务。

  • 在具有NVIDIA vGPU的VMware vSphere上运行的AWS上的Red Hat OpenShift服务。

GPU特性发现

用于Kubernetes的NVIDIA GPU特性发现是一个软件组件,使您可以自动生成节点上可用GPU的标签。GPU特性发现使用节点特性发现 (NFD) 来执行此标记。

节点特性发现操作符 (NFD) 通过使用硬件特定信息标记节点来管理OpenShift Container Platform集群中硬件特性和配置的发现。NFD使用节点特定的属性(例如PCI卡、内核、操作系统版本等)标记主机。

您可以在Operator Hub中搜索“节点特性发现”找到NFD操作符。

带有OpenShift虚拟化的NVIDIA GPU Operator

到目前为止,GPU Operator仅配置工作节点以运行GPU加速的容器。现在,GPU Operator还可以用于配置工作节点以运行GPU加速的虚拟机 (VM)。

您可以配置GPU Operator根据在这些节点上配置运行的GPU工作负载,将不同的软件组件部署到工作节点。

GPU监控面板

您可以安装一个监控面板,以在AWS Web控制台的Red Hat OpenShift服务的集群**观察**页面上显示GPU使用情况信息。GPU使用情况信息包括可用GPU的数量、功耗(瓦特)、温度(摄氏度)、利用率(百分比)以及每个GPU的其他指标。