NVIDIA DGX SuperPOD + VAST 参考架构
Source: NVIDIA, NVIDIA DGX SuperPOD: VAST, Reference Architecture, June 2023
摘要
NVIDIA DGX SuperPOD配备NVIDIA DGX H100或DGX A100系统,是一种人工智能(AI)超级计算基础设施,提供了进行当今最先进深度学习(DL)模型训练和推动未来创新所需的计算能力。DGX SuperPOD提供突破性的性能,可作为完全集成的系统进行部署,并旨在解决全球最具挑战性的计算问题。
该DGX SuperPOD参考架构(RA)是DL科学家、应用性能工程师和系统架构师合作的结果,旨在构建一个能够支持最广泛的DL工作负载的系统。DGX SuperPOD与DGX系统提供的创新性能使得能够在大规模上快速训练DL模型成为可能。在配置、管理、计算、网络和快速存储的集成方法下,实现了一个可以跨越数据分析、模型开发和AI推理领域多样化的多租户系统。
当连接到DGX SuperPOD时,VAST Data Platform被评估为适用于支持DL工作负载的解决方案。VAST Data Platform是第一个获得DGX SuperPOD认证的企业级NAS解决方案,提供了基于并行文件系统的架构的性能和可伸缩性,同时又具备企业级设备的简单易用性。这种完全集成、即插即用的架构经过与DGX SuperPOD、VAST Data Platform的验证,并且得到了VAST支持服务的全面支持。
无论之前有无HPC经验,DGX SuperPOD与VAST Data Platform旨在使大规模AI对于每个组织及其IT团队更加简单、快速和易于管理。VAST Data Platform作为企业级NAS解决方案具有以下关键功能,有助于组织将其AI计划提升到DGX SuperPOD规模:
超算级(Exascale)NFS:可提供最苛刻的HPC和AI工作负载所需的所有性能,而无需并行文件系统解决方案的复杂性。
零停机升级或扩展:随着数据集和性能要求的增长,无缝扩展基础设施。
EB级全NVMe命名空间:具备归档级经济性,消除数据孤岛和分层,得以实现每个I/O均可实时响应。
原生多协议支持:实现对所有数据的NFS、SMB和S3访问,无需网关或附加组件。
存储概述
训练性能可能受限于从存储中读取和重读数据的速率。性能的关键在于能够多次读取数据,最理想的情况是从本地存储读取。数据离GPU的缓存越近,读取速度越快。持久和非持久存储都需要在设计时平衡性能、容量和成本的需求。
存储缓存层次结构
DGX系统的存储缓存层次结构如表1所示。根据数据大小和性能需求,可以利用层次结构的每个层次来最大化应用性能。
表1.DGX系统的存储和缓存层次结构
存储层次结构级别 | 技术 | 总容量1 | 性能1 |
RAM | DRAM | 2TB2 | 200GiB/s |
内部存储 | 闪存存储 | 30TB3 | 50GiB/s |
1.总容量和性能值是每个系统的值。 2.在操作系统、应用程序和其它系统进程之间共享。 3.PCIe Gen 4 NVMe SSD存储 |
将数据缓存到本地RAM中可提供最佳读取性能。一旦数据从文件系统中读取,此缓存是透明的。尽管本地存储速度快,但在多节点环境中,仅依靠本地磁盘管理动态环境并不实际。在功能上,集中式存储在许多工作负载上可能与本地存储一样快。
存储性能要求
高速存储的性能要求很大程度上取决于所使用的AI模型和数据格式。DGX SuperPOD 被设计为一个功能级系统,可以管理当前和未来的任何工作负载。然而,如果系统将专注于特定的工作负载,如自然语言处理(NLP),则可以更好地估计存储系统的性能需求。
为了让客户评估自己的性能需求,表2提供了一些常见工作负载和数据集的常规指南。
表2.描述不同I/O工作负载
所需的存储性能级别 | 示例工作负载 | 数据集大小 |
良好 | NLP | 大多数或全部数据集适合缓存 |
更好 | 处理压缩图像,ImageNet/ResNet-50 | 许多或大多数数据集可以放入本地系统的缓存中 |
最佳 | 使用1080p、4K或未压缩图像、离线推理、ETL进行训练 | 数据集太大,无法放入缓存,第一次迭代需要大量I/O,仅读取数据集一次的工作流程 |
为了满足表2中指导方针所需的存储系统性能,可参考以下资源:
《NVIDIA DGX SuperPOD参考架构——DGX H100系统》中的表4。
https://docs.nvidia.com/dgx-superpod-reference-architecture-with-dgx-h100-systems.pdf
《NVIDIA DGX SuperPOD参考架构——DGX A100系统》中的表8。
https://images.nvidia.com/aem-dam/Solutions/Data-Center/gated-resources/nvidia-dgx-superpod-a100.pdf
实现这些性能特性可能需要使用优化的文件格式,如TFRecord、RecordIO或HDF5。
高速存储提供了对组织的数据的共享视图。它需要针对小型、随机I/O模式进行优化,并提供高峰值系统性能和高聚合文件系统性能,以满足组织可能遇到的各种训练工作负载的需求。
关于VAST Data Platform
VAST Data Platform通过一种不仅提供速度和规模,而且操作效率和易用性的架构来满足性能需求,使任何IT团队都能够在DGX SuperPOD上部署和支持大规模的AI项目。
VAST挑战了长期以来对NFS性能不足以应对AI和HPC工作负载的假设。VAST的解耦式、共享一切架构由两个构建模块组成,通过共同的NVMe传输协议进行扩展。首先,系统的状态和存储容量是由弹性高密度的NVMe-oF闪存机箱构建的。其次,系统的逻辑由无状态容器实现,每个容器可以连接和管理闪存机箱中的所有介质。通过将计算与存储分离,可以将I/O分散到整个系统,实现大规模性能的并行性。
VAST Data Platform在DGX SuperPOD上的其它优势包括:
独立扩展性能和容量,支持在单个 EB 级命名空间中混合代硬件。
在同一命名空间中同时支持 InfiniBand 和以太网。
通过下一代全局数据缩减算法实现归档级经济性,支持具有十年耐用性的超大规模 QLC 闪存,以及超高效的本地可解码纠删码。
无中断的在线系统扩展和软件升级。
加密、身份验证和外部密钥管理。
VAST 目录中,内置元数据索引允许客户通过 SQL 查询查找和管理数据。
企业级数据保护,支持 n-1 和 1-n 复制拓扑以及多达 100 万个防勒索病毒快照。
VAST Data GUI 管理界面通过 API 优先架构提供数千个指标,解锁对性能指标的实时可见性。
验证方法
用于评估特定存储技术及其与DGX SuperPOD的配置是否适用的验证测试分为三类:微基准(Microbenchmark)性能、实际应用程序性能和功能测试。微基准测试测量了DL训练的关键I/O模式,并设计成可在仅使用CPU节点上运行,从而减少了验证存储所需的大型基于GPU的系统。然后在DGX SuperPOD上运行实际的DL训练应用程序,确认这些应用程序达到了预期的性能。除了性能之外,还对存储解决方案进行了鲁棒性和可靠性评估,作为功能测试的一部分。
NVIDIA DGX SuperPOD的存储验证过程采用了“通过”或“失败”的方法。微基准测试设定了具体的目标。每个基准测试结果被分为良好、一般和差。通过的标准是至少80%的测试结果良好,且没有差的结果。此外,测试过程中不能产生灾难性问题。对于应用程序测试,通过的标准是所有用例在与在DGX RAID上进行相同测试并将数据存储在上面的情况下,完成时间与峰值性能(roofline performance)相差不超过5%。对于功能测试,通过的标准是所有功能测试达到预期的结果。
微基准测试(Microbenchmarks)
在“存储性能要求”部分,列出了存储系统必须满足的几项高级性能指标,以符合DGX SuperPOD解决方案的要求。目前的测试要求解决方案满足表中所述的“最佳”标准。除了这些高级指标之外,还进行了几组测试,以验证所提议的解决方案的整体能力。这些测试包括单节点测试,其中线程数量变化,以及多节点测试,其中使用单个线程计数,并且节点数量变化。此外,每个测试都以缓存和直接I/O模式运行,并在对单个文件执行I/O或所有线程和节点在同一个文件上运行时进行测试。
运行了四种不同的读取模式。第一个读取操作是顺序读取,没有数据在缓存中。紧接着立即执行第二个读取操作,以评估文件系统缓存数据的能力。然后清除缓存,并再次读取数据,这次是随机读取。最后,随机再次读取数据,以评估数据缓存。
单节点和多节点测试使用了IOR基准测试(https://wiki.lustre.org/IOR)。
顶级基准测试性能(Hero Benchmark Performance)
顶级基准测试有助于确定整个解决方案的峰值性能能力。存储参数,如文件系统设置、I/O大小和控制CPU关联,都经过调整以实现最佳的读写性能。存储设备需要展示所报告的性能接近实际测量的性能。其他测试旨在展示实际工作负载的性能。
单个SU(SuperPOD Unit)的交付解决方案必须展示出超过20GiB/s的写入性能和65GiB/s的读取性能。理想情况下,写入性能应至少是读取性能的50%。然而,某些存储架构在读写性能之间具有不同的平衡,因此这只是一个指导方针,读取性能比写入性能更重要。
单节点、多文件性能(Single-Node, Multi-File Performance)
对于单节点性能,通过逐步增加线程数量来测量I/O读写性能。每个线程在同一个目录下写入(和读取)它自己的文件。
对于单节点性能测试,线程数量从1变化到最大化性能的理想的线程数量(通常超过内核64的一半,但不超过总物理内核128)。I/O大小在128KiB和1MiB之间变化,测试在缓存I/O和直接I/O模式下运行。
这些测试的目标性能如表3所示。
表3.单节点、多文件性能目标
线程数 | 缓存或直接I/O | I/O大小(KiB) | 性能(MiB/s) | ||||
写入 | 读取 | 重读 | 随机读取 | 随机重读 | |||
1 | 缓存 | 128 | 512 | 1,024 | 1,536 | 256 | 1,536 |
1 | 缓存 | 1024 | 800 | 3,072 | 4,608 | 768 | 1,024 |
1 | 直接 | 1024 | 1,024 | 1,024 | N/A | 1,024 | N/A |
在最大化单节点性能时,线程数量可能会有所变化,但是当使用超过最佳线程数量时,预计性能不会显著下降。
多线程单节点性能的目标性能如表4所示。最佳线程数量可能因存储配置而异。
表4.单节点、多线程性能目标
线程数 | 缓存或直接I/O | I/O大小(KiB) | 性能(MiB/s) | ||||
写入 | 读取 | 重读 | 随机读取 | 随机重读 | |||
各异 | 缓存 | 128 | 8,000 | 12,000 | 18,000 | 12,000 | 18,000 |
直接 | 128 | 8,000 | 15,000 | N/A | 15,000 | N/A | |
缓存 | 1024 | 10,000 | 20,000 | 30,000 | 20,000 | 30,000 | |
直接 | 1024 | 10,000 | 20,000 | N/A | 20,000 | N/A |
相对于读取性能的重读性能在不同的存储解决方案之间可能会有很大差异。对于顺序读取和随机读取,重读性能应至少为读取性能的 50%。
多节点、多文件性能(Multi-Node, Multi-File Performance)
接下来进行的测试是多节点的I/O读写测试,以确保存储设备能够为DGX SuperPOD提供每个系统所需的最低缓存读写性能。该基准测试确定了文件系统在不同I/O模式下扩展性能的能力。性能应该在从一个到几个节点之间线性扩展,达到最大性能,并且随着添加更多节点到作业中,性能不会显著下降。
对于I/O大小为128KiB或1,024KiB的读取,以及I/O是直接或缓存的,20个节点的单个SU的目标性能为65GiB/s。写入性能应至少为20GiB/s,但理想情况下应为读取性能的50%。必须仔细解释这些测试的结果,因为可以添加更多硬件来达到这些水平。总体性能是目标,但希望性能来自一个高效的架构,而不是过度设计。
单文件I/O性能(Single-File I/O Performance)
关键的I/O模式是从单个文件中读取数据。通常,读取数据的最快方式是当所有数据组织到单个文件中时,例如RecordIO格式。这通常是读取数据的最快方式,因为它消除了将数据组织到多个大文件中所需的任何打开和关闭操作。在DGX SuperPOD配置中,单文件读取是一种关键的I/O模式。
目标性能和预期的I/O行为是单节点、多线程写入可以成功创建文件,顺序读取和随机读取性能良好,并且读取性能随着使用更多节点而扩展。多节点、多线程、单文件写入不进行评估。此外,预期缓存重读性能与多文件重读性能相似。
单文件I/O的目标性能和预期的I/O行为在表5中。
表5.单文件读取性能目标
线程数 | 缓存或直接I/O | I/O大小(KiB) | 性能(MiB/s) | |||
写入 | 读取 | 重读 | 随机读取 | |||
1 | 缓存 | 128 | 2,500 | 11 | 2,500 | 11 |
1 | 直接 | 128 | 15,000 | N/A | 15,000 | N/A |
1 | 缓存 | 1024 | 3,000 | 11 | 3,000 | 11 |
1 | 直接 | 1024 | 20,000 | N/A | 20,000 | N/A |
20 | 缓存 | 128 | 65,000 | 11 | 65,000 | 11 |
20 | 直接 | 128 | 65,000 | N/A | 65,000 | N/A |
20 | 缓存 | 1024 | 65,000 | 11 | 65,000 | 11 |
20 | 直接 | 1024 | 65,000 | N/A | 65,000 | N/A |
1.缓存数据的重新读取性能应接近于多文件重新读取测试的结果。 |
应用程序测试
微基准测试提供了关键指标的最高性能指示。然而,最重要的是应用程序性能。使用MLPerf训练基准测试的子集来验证存储性能和功能。在这里,将评估单节点和多节点配置,以确保文件系统可以支持不同的I/O模式和工作负载。在数据被分阶段到DGX RAID上进行训练时,基准性能是训练时间的基线。性能目标是当数据在共享文件系统上进行分阶段时,训练的总时间与在本地RAID上进行分阶段时测得的时间相差不超过5%。这不仅适用于单次运行,还适用于同时在DGX SuperPOD上运行多个案例的情况。
ResNet-50
ResNet-50是经典的图像分类基准测试。它的数据集大小超过100GiB,并且对于快速数据导入(data ingestion)有要求。在DGX系统上,单节点训练需要大约3GiB/s的速度,而且数据集足够小,可以放入缓存中。预处理可能会有所不同,但典型的图像大小约为128KiB。这个基准测试的一个挑战是,在NVIDIA中,处理后的图像以RecordIO格式存储(即整个数据集的一个大文件),因为这提供了MLPerf的最佳性能。由于它是单个文件,这可能会给共享文件系统体系结构带来压力,这些体系结构不会将数据分布在多个目标或控制器之间。
NLP-BERT
BERT是参考标准的NLP模型。在这个测试中,系统填充了两个包含8个节点的作业和4个单节点作业(如果不是SU的所有20个节点都可用,则更少)。预计总训练时间将在5%的范围内,与从本地RAID进行训练时测得的时间相差不大。这个测试不会对文件系统造成压力,但确保本地缓存按需运行。
Recommender-DLRM
Recommender模型与ResNet-50和BERT具有不同的训练特性,因为该模型的训练在不到一个epoch的时间内完成。这意味着数据集不会被读取超过一次,而且无法使用本地数据缓存。为了实现完全的训练性能,DLRM必须能够以超过6GiB/s的速度读取数据。此外,文件读取器使用DirectIO,它对文件系统的压力与其它两个文件不同。数据被格式化为单个文件。
此测试仅作为单节点测试运行;但是,运行多个测试时,并发作业数从1到可用节点总数不等。预计共享文件系统的性能只能维持在从顶级基准测试(hero test)中测得的峰值性能之下。对于同时进行20个用例的情况,存储系统必须提供超过120GiB/s的持续读取性能,超过了“存储性能要求”部分所规定的性能。即使是表中列出的最佳性能也不能支持所有可能的工作负载。它旨在提供高吞吐量的同时不过度设计系统。
总结
VAST Data Platform符合DGX SuperPOD的性能和功能要求。作为企业级NAS解决方案,VAST Data Platform与DGX SuperPOD搭配使用,使客户能够承担要求高的AI工作负载,而不需要与HPC存储解决方案通常相关的复杂性和专业技能。
随着需求的增长,VAST Data Platform可以通过添加计算资源和/或存储资源进行无缝扩展,以满足性能和容量目标。VAST Data Platform支持集群中的多代基础架构,帮助客户减轻供应链问题,并从一系列经过VAST认证的硬件解决方案中进行选择。
DGX SuperPOD的客户可以放心,VAST Data Platform能够在任何规模上满足他们最具挑战性的AI工作负载需求。