如要在当代的 HPC 系统上实现百亿亿级的性能,我们需对所有组件仔细调优,包括硬件(CPU、GPU、NVLink、文件系统、网络互连)和软件。虽然我们的项目成功实现了大幅调优、优化和扩展,但我们想指出两项挑战,以便向行业及研究社区征求更多意见。
大规模数据管理
得益于 GPU 架构在加快计算方面取得的进展,我们现已能在单个硅处理器上畅享高于 100 万亿次浮点运算级的性能。随着 GPU 速度越来越快,向其输送数据的能力会逐渐限制性能。本次项目中,我们对 20 太字节的数据集展开分析,这实际上需要整个 Summit 系统保持每秒大约 4 太字节的 I/O 速率。Summit 上的 GPFS 文件系统根本无法胜任该项任务,在 NERSC Cori 系统的 Lustre 文件系统上执行的类似实验也以彻底失败而告终。对于这两种情况,在节点本地 NVMe 上暂存数据和突发缓冲区技术便显得至关重要。
传统的 HPC 文件系统主要用于支持以写入为主的工作负载;而深度学习工作负载则属于读取密集型负载,对数据带宽和元数据操作速率要求颇高。如要支持大规模深度学习工作负载,我们可能必须先对缓存分层、分片和混编操作提供透明支持。
大规模收敛
提供深度学习解决方案的时间由两部分构成:计算扩展效率和统计扩展效率。我们的研究已经展示出卓越的计算扩展性能,并且提供了许多有关系统级注意事项的建议。一个未解决的问题是,如何使用 SGD(随机梯度下降)的其中一个收敛属性取代大批量(在本项目中,批量大小高于 27000)。
在 HPC 资源上提供高度并行性具有正反两方面作用。如要以超高并发级别在大规模资源上运行,我们需在短时间内对超参数进行调优。有关收敛算法行为的启发式方法可能会或不会继承自较小规模的运行。尽管目前对于选择各类超参数所产生效果的实证评估都很合理,但我们预计,科学界将需要更好的指导原则,以及用于解决新问题的收敛保证。
我们相信,在解决收敛问题的过程中,进一步开发 LARS 与 LARC 等新算法和潜在的高阶优化方法将是至关重要的一环。