存储架构#

数据,大量的数据,是开发精确的深度学习 (DL) 模型的关键。数据量持续呈指数级增长,用于训练单个模型的数据也在持续增长。数据格式,而不仅仅是数据量,在数据访问速率中起着关键作用,因此存储系统性能必须相应地扩展。

深度学习 (DL) 训练中的关键 I/O 操作是重读。不仅仅是读取数据,而且由于深度学习训练的迭代性质,数据必须一次又一次地重复使用。纯读取性能仍然很重要,因为某些模型类型可以在一个 epoch 的一小部分时间内完成训练(例如:某些推荐模型),并且现有模型的推理可能比训练更需要大量的 I/O 操作。写入性能也很重要。随着深度学习模型规模的扩大和训练时间的延长,写入检查点对于容错至关重要。检查点文件的大小可能达到 TB 级别,虽然写入频率不高,但通常是同步写入,这会阻塞深度学习模型的向前进度。

理想情况下,数据在首次读取数据集时会被缓存,这样数据就不必通过网络检索。共享文件系统通常使用 RAM 作为第一层缓存。从缓存读取文件可能比从远程存储读取文件快一个数量级。此外,DGX B200 系统提供本地 NVMe 存储,也可用于缓存或暂存数据。

DGX SuperPOD 旨在支持所有工作负载,但最大化训练性能所需的存储性能可能因模型和数据集的类型而异。提供了 表 5表 6 中的指南,以帮助确定不同类型模型所需的 I/O 级别。

表 5 存储性能要求#

级别

工作描述

数据集大小

标准

多个并发的 LLM 或微调训练作业以及定期检查点,其中计算需求显著高于数据 I/O 需求。

大多数数据集可以在训练期间容纳在本地计算系统的内存缓存中。数据集是单模态的,模型有数百万个参数。

增强

多个并发的多模态训练作业和定期检查点,其中数据 I/O 性能是端到端训练时间的重要因素。

数据集太大,无法容纳在本地计算系统的内存缓存中,训练期间需要更多的 I/O,但不足以消除频繁 I/O 的需求。数据集具有多模态,模型有数十亿(或更多)个参数。

表 6 存储性能指南#

性能特征

标准 (GBps)

增强 (GBps)

单 SU 聚合系统读取

40

125

单 SU 聚合系统写入

20

62

4 SU 聚合系统读取

160

500

4 SU 聚合系统写入

80

250

高速存储为组织的所有节点提供数据的共享视图。它必须针对小型、随机 I/O 模式进行优化,并提供高峰值节点性能和高聚合文件系统性能,以满足组织可能遇到的各种工作负载。高速存储应支持来自单个系统的高效多线程读取和写入,但大多数深度学习工作负载将以读取为主。

汽车和其它计算机视觉相关任务中的用例,其中高分辨率图像用于训练(在某些情况下是未压缩的),涉及的数据集很容易超过 30 TB。在这些情况下,每个 GPU 需要 4 GBps 的读取性能。

虽然 NLP 和 LLM 用例通常不需要那么高的读取性能来进行训练,但创建和读取检查点文件需要读取和写入的峰值性能。这是一个同步操作,训练会在这个阶段停止。如果您正在寻求最佳的端到端训练性能,请不要忽略检查点的 I/O 操作。对于 LLM 和大型模型用例,请考虑至少达到读取性能的 ½ 作为建议的写入性能。

上述指标假设了各种工作负载、数据集以及在本地和直接从高速存储系统进行训练的需求。最好在最终确定性能和容量要求之前,对工作负载和组织需求进行表征。