跳到内容

优化NVIDIA DGX系统

使用Altair网格引擎构建未来的HPC和AI集群环境

在上一篇文章中,充分利用Altair网格引擎的NVIDIA DGX系统,我们讨论了GPU对HPC和深度学习工作负载的重要性,并解释了Altair网发动机如何帮助用户充分利用NVIDIA DGX系统。随着用户越来越优于高性能应用的GPU,容器和云资源,GPU工作负载的有效管理比以往任何时候都更重要。bob电竞官方随着年度NVIDIA GPU技术会议(现在在线活动)在拐角处,似乎是重新审视这个话题的好时机。

资源管理和DGX系统

DGX用户中的常见问题是如何在多个用户或组之间共享系统。很少有组织可以为特定用户专用大规模系统,应用环境越来越复杂。幸运的是,对于HPC和深度学习的广泛学科,NVIDIA在NVIDIA GPU云(NGC)中提供了验证的容器,以简化GPU应用。bob电竞官方1

例如,如果您正在构建图像分类的型号,则可能从A开始Tensorflow容器映像。此图像包含数十个软件包,包括OS,NVIDIA软件(CUDA,CUDNN,NCCL),OpenMPI和Horovod(用于并行训练),Jupyter等组件。这示例脚本使用Horovod运行多GPU模型,分配GPU对应于MPI任务的等级。2虽然这保持了例子简单,但它会导致生产问题。例如,如果四个用户尝试在同一DGX-2主机上运行4路训练作业,则第一个作业将分配GPU 0到3,随后的三个作业都将失败,尝试重新分配相同的组GPU - 全部75%的GPU坐着空闲。用户可以修改脚本或调整MPI命令行以手动指定主机和GPU设备,但这是繁琐和错误的。共享DGX系统时,GPU感知资源管理器是一个更实际的解决方案。

运行GPU应用程序的更好方法bob电竞官方

GPU系统的资源管理是三个原因的关键:

  1. 它避免使用GPU作业通过在不可用时自动排队失败。
  2. 它通过在运行时动态分配GPU来最大限度地提高资源使用和效率,提高整体生产率。
  3. 它通过调度考虑机器架构和工作负载几何体的工作负载的主机和GPU部分来最大化性能。这包括DIMA,CPU-GPU亲和力和放置策略等详细信息,以平衡内存通道,总线,交换机和网络接口的流量。

除了这些GPU感知的调度功能外,其他策略也很有用。例如,当多个用户共享DGX群集时,博览会策略可确保不同的用户,部门或项目随时间分配GPU资源的特定份额。用户经常运行CPU和GPU工作负载的组合,在某些情况下,CPU作业可以消耗资源并防止GPU作业运行。而不是拥有贵重的GPU it闲置,通常会更好地自杀低优先级CPU工作负载以避免坐在闲置的有价值的DGX资产。

资源管理器如何优化展示位置

在DGX环境中,Altair网格引擎等资源管理器可以控制完整的群集环境。资源管理器在GPU中强制执行CGroups隔离,阻止作业彼此冲突。3.

当DGX主机处于Workload Manager的控制时,MPI运行时通常驻留在每个集群主机(外部应用程序容器)上,并且是资源管理器感知。当提交需要GPU的并行作业时,用户指示MPI排名的总数,每个主机的等级数(GPU),并将其留给资源管理器以优化放置。

虽然资源管理器知道主机和作业,但它通常不会知道GPU。这是NVIDIA的数据中心GPU管理器(DCGM)进入。与DCGM集成的资源管理器具有对CPU-GPU亲和力,GPU存储器,温度,错误率等的详细信息具有实时可见性。通过利用DCGM的信息,调度程序可以提高吞吐量,效率和可靠性。资源管理器中的报告和监视解决方案可以聚合和报告这些和其他与GPU相关的指标。

Univa网格引擎提高了NVIDIA DGX系统的效率
图1 - Altair 网格引擎提高了NVIDIA DGX系统的性能和效率

走向未来的GPU基础设施

除了GPU感知之外,资源管理人员还需要从NGC和其他注册机器无缝地运行来自NGC硬件的容器。资源管理器应支持多个容器管理器,包括Docker和奇点,以及带有支持异构应用和多台机器架构的其他工作负载的透明混合容器。bob电竞官方虽然DGX Systems提供了充分的能力运行HPC和内部地区的深度学习工作负载,但有些用户将希望从他们喜欢的云提供商中挖掘GPU和其他资源。

牵牛星网格引擎是一个领先的分布式资源管理器,可优化工作负载和资源。Altair网格引擎与NVIDIA DGX系统集成,提供高级集装箱管理,复杂的云爆发和云自动化功能Navops发射并与NGC图像无缝工作。Altair最近宣布支持基于ARM的系统的NVIDIA GPU。

/您可以了解有关Altair网格引擎的更多信息这里或者将DGX系统扩展为混合云GPU这里

参考

  1. 请参阅NVIDIA深度学习框架,作为一个例子 -https://docs.nvidia.com/deeplearning/frameworks/support-matrix/index.html.
  2. 排名是指在并行MPI作业中分配给每个进程的数字设计器。Horovod提供了一个HVD.RANK()方法来检索分布式MPI作业的任务的总排量,以及HVD.LOCAL_RANK()方法,以在每个服务器上从“0”开始检索本地等级。这里提供了一个解释https://horovod.readthedocs.io/en/latest/tensorflow.html.
  3. CGroups(Control Groups)是Linux内核功能,限制,帐户占用并隔离资源使用,控制哪些进程可以访问哪些设备。