美光与戴尔和 NVIDIA 的团队合作,对 AI 训练模型卸载到 NVMe 开展了行业先进的研究,并在 NVIDIA GTC 全球 AI 大会上作了展示。美光数据中心工作负载工程团队在戴尔技术营销实验室和 NVIDIA 存储软件开发团队的支持下,在搭载美光即将推出的高性能 Gen5 E3.S NVMe SSD 的 Dell PowerEdge R7625 服务器中 NVIDIA H100 Tensor Core GPU 上测试了采用 GPU 启动的直接存储 (GIDS) 的大型加速器内存 (BaM)。
BaM 和 GIDS 是基于以下论文的研究项目,在 GitHub 上提供开源代码:
- BaM 系统架构中由 GPU 启动的按需高吞吐量存储访问:https://arxiv.org/abs/2203.04910
- GitHub:https://github.com/ZaidQureshi/bam
NVMe 内存容量更大吗?
AI 模型规模正在快速增长,训练大型模型的默认方法是在 GPU 上搭载尽可能多的高带宽内存 (HBM),然后搭载尽可能多的系统 DRAM,如果模型不适合 HBM + DRAM,则在多个 NVIDIA GPU 系统中并行处理。
由于数据需要通过网络和系统链路流动,而网络和系统链路很容易成为瓶颈,因此在多个服务器上并行训练的成本很高,特别是在 GPU 利用率和效率方面。
如果将 NVMe 用作第三层“慢速”内存,就可以避免在多个 GPU 系统上拆分 AI 训练工作,那会怎么样呢? 这正是 BaM 和 GIDS 的作用所在。它取代并简化了 NVMe 驱动器,将数据和控制路径传递给 GPU。那么,性能如何呢?
基准性能结果
所示所有测试结果均使用上文链接的开源 BaM 实施中包含的 BaM 图形神经网络 (GNN) 基准运行。
第一次测试显示在启用 GIDS 后,有 BaM 和没有 BaM 的情况。Linux mmap 的标准实施用于通过 CPU 访问存储处理故障内存,代表了没有特定存储软件的测试用例。
在 NVIDIA A100 80GB Tensor Core GPU 和美光 9400 80GB NVMe 4.0 SSD 上做 mmap 测试需要 19 分钟。部署 BaM 和 GIDS 后,耗时 42 秒,性能提升了 26 倍。基准测试的功能聚合组件中有性能提升,具体取决于存储性能。
戴尔实验室中的 NVMe 5.0 SSD 性能
在 GTC 上,美光想证明我们即将推出的 NVMe 5.0 SSD 适用于 AI 模型卸载。我们与戴尔技术营销实验室合作,使用 NVIDIA H100 80GB PCIe GPU (5.0x16) 访问戴尔 PowerEdge R7625 服务器,并在他们大力支持下完成了测试。
GNN 工作负载性能 | 美光 5.0 H100 | 美光 4.0 A100 | 5.0 与 4.0 性能 |
---|---|---|---|
特征聚合 (NVMe) | 18s | 25s | 2 倍 |
训练 (GPU) | 0.73s | 3.6s | 5 倍 |
采样 | 3s | 4.6s | 1.5 倍 |
端到端时间 (特征聚合 + 训练 + 采样总计) |
22.4s | 43.2s | 2 倍 |
GIDS + BaM 访问次数/秒 | 2.87M | 1.5M | 2 倍 |
特征聚合取决于 SSD 性能。其执行时间占总运行时间的 80%,我们发现从 Gen4 到 Gen5 的执行时间提高了 2 倍。采样和训练取决于 GPU,我们发现从 NVIDIA A100 到 H100 H100 Tensor Core GPU 的训练性能提升了 5 倍。此用例需要高性能 Gen5 SSD,美光 Gen5 SSD 预生产版本的性能几乎是 Gen4 的两倍。
GIDS 对我们的 SSD 有何影响?
由于 BaM 与 GIDS 取代了 NVMe 驱动器,标准 Linux 工具无法查看 IO 指标(IOP、延迟等)。我们追踪了 BaM 与 GIDS 的 GNN 训练工作负载,发现了一些令人吃惊的结果。
- BaM 与 GIDS 以接近驱动器最大 IO 性能执行。
- GNN 训练的 IO 配置文件为 99% 的小块读取。
- SSD 队列深度是 CPU 上“正常”数据中心工作负载的 10-100 倍。
这是种新型工作负载,将推动提升 NVMe 性能。GPU 可以管理多个并行流,BaM 与 GIDS 软件将管理和优化延迟,从而创建工作负载配置文件,甚至可能无法在 CPU 上运行。
结论
随着 AI 行业的进步,围绕 GPU 系统利用率和效率的智能解决方案十分重要。BaM 与 GIDS 等软件将通过提供更好的方法来解决更大的 AI 问题集,从而实现 AI 系统资源的效率。将模型存储扩展到 NVMe 会对训练时间产生影响,但这种权衡将有助于在更少的 GPU 系统上执行对时间不太敏感的大型训练工作,最终提高已部署 AI 硬件的效率和 TCO。
此数据用于以下 NVIDIA GTC 会话:
加速并确保 GPU 对大型数据集的访问 [S62559]
非常感谢美光、戴尔和 NVIDIA 以下人员使这项研究得以开展:
- 美光:John Mazzie、Jeff Armstrong
- 戴尔:Seamus Jones、Jeremy Johnson、Mohan Rokkam
- NVIDIA:Vikram Sharma Mailthody、CJ Newburn、Brian Park、Zaid Qureshi、Wen-Mei Hwu
硬件和软件详情:
- 工作负载:GIDS 和 IGBH - 全面训练。
- 美光数据中心工作负载工程团队测量的 NVMe 性能结果、NVIDIA 存储软件团队在类似系统上测量的基准 (mmap) 性能结果。
- 被测系统:
- Gen4:2 个 AMD EPYC 7713/64 核、1TB DDR4、美光 9400 PRO 8TB、NVIDIA A100-80GB GPU、Ubuntu 20.04 LTS (5.4.0-144)、NVIDIA 驱动器 535.129.03、CUDA 12.3、DDL 2.0.0
- Gen5:戴尔 R7625、2 个 AMD EPYC 9274F/24 核、1TB DDR5、美光 Gen5 SSD、NVIDIA H100-80GB GPU、Ubuntu 20.04 LTS (5.4.0-144)、NVIDIA 驱动程序 535.129.03、CUDA 12.3、DDL 2.0.0
- 基于论文《BaM 系统架构中 GPU 启动的按需高吞吐量存储访问》(GPU-Initiated On-Demand High-Throughput Storage Access in the BaM System Architecture)的工作 https://arxiv.org/abs/2203.04910、https://github.com/ZaidQureshi/bam