MLPerf存储基准测试V1.0衡量存储系统在AI工作负载下的性能表现,其核心指标是在给定的训练模型和GPU型号下,存储系统能提供的带宽以及支持的GPU数量。其他指标,例如每GPU带宽值或每计算节点带宽值,基本由主机相关配置决定,和存储系统性能无关,不具备可比性和参考价值。
今年9月底,MLCommons协会发布了最新MLPerf Storage v1.0 AI存储基准测试结果,引发了业内的广泛关注。
MLPerf benchmark是一个衡量人工智能硬件、软件和服务性能的标准化基础测试平台,由图灵奖得主David Patterson联合顶尖学术机构发起成立,是权威性最大、影响力最广的国际AI性能基准测试。2023年,MLCommons推出了MLPerf存储基准性能测试,旨在以架构中立、具有代表性和可重复的方式衡量AI工作负载的存储系统性能。
通过严格的测试标准和环境要求,以及丰富的测试模型和指标,MLPerf存储基准测试不仅能够为ML/AI模型开发者提供权威的参考依据,帮助他们选择合适的存储解决方案,同时测试结果也为存储系统的优化和改进提供重要参考和指导。
而今年的MLPerf存储基准评测(v1.0)一共吸引了全球13家领先存储厂商和研究机构参与,该评测围绕医学影像分割、图像分类、天文学参数预测三大AI存储应用场景,采用主流的3D-Unet、ResNet50、CosmoFlow三类模型,在GPU利用率高达90%或70%的条件下,以支持的模拟GPU数量以及带宽作为基准测试指标,评估存储系统的性能表现。
值得一提的是,为了更好的帮助外界理解本次基准测试的标准和结果,MLCommons市场总监Kelly Berschauer日前也单独撰文《MLPerf storage benchmark: A user guide from the maker》,从官方的角度进一步解读了本次基准测试背后的逻辑和思考。
其核心观点是:“MLPerf存储基准测试V1.0衡量存储系统在AI工作负载下的性能表现,其核心指标是在给定的训练模型和GPU型号下,存储系统能支持的GPU数量,而非每GPU带宽值或每计算节点带宽值。”
首先,存储系统能够支持的模拟GPU训练集群的规模,是本次基准评测的核心指标。
可以看到,当前训练数据集的规模正从TB级别上升至PB乃至EB级别,AI大模型的参数量也从千亿级别向万亿甚至十万亿规模迈进,这也意味着所需要的计算资源和存储资源都将会同步增加,而存储系统同样需要提供足够的容量和与之匹配的性能,才能更好地满足AI训练过程中对存储高性能的需求。所以,这个指标本质上是反映了存储系统的扩展能力和对大规模AI集群的支持能力。
基于此,在本次基准测试中,官方认为在给定的训练模型和GPU型号下,存储系统能够支持多少的模拟GPU数量将会决定系统性能的“上限”,而存储系统能够支持的GPU数量越多,不仅代表着系统的性能越高,同时用户的AI存储投资回报也会越高。当然,由于当前训练的AI集群规模都比较大,从用户的角度来说,未来该指标也可以进一步“细化”到单台存储设备或者存储的扩展单元(scale unit)可以支持的GPU数量规模,以更全面、更准确地反映存储在大规模AI集群中的综合性能表现。
其次,仅仅比较每个GPU的MiB/s值(宽带传输速率),并没有太大的参考价值。
本次基准测试中,MLPerf Storage Benchmark主要是通过accelerator emulation测试工具,来模拟真实的 GPU,如:NVIDIA A100、H100 等,在无需真实GPU的情况下就能进行大规模的存储性能压测,用以评估存储系统在 AI 模型训练场景的适用性。
在这样“虚拟”基准测试环境下,每GPU对带宽性能的要求基本上可以看作是一个“确定值”。如官方所言:“本次基准测试中,只有当Unet3D和ResNet50的加速器利用率达到90%以上,或者Cosmoflow的利用率达到70%以上时,整个基准测试才会通过。”且从不同厂商的UNET3D测试数据的对比中,也可以看到“每个GPU的性能差异不会超过10%。”。官方进一步强调表示:“即使是GPU的使用率超过了90%(对于Unet3D和ResNet50)或者70%(对于Cosmoflow),基准测试也不认为有额外价值”。
事实上,我们以高速公路上行车为例,每GPU对带宽性能的要求就像是每辆车在高速公路上面临的“限速”一样,车辆行驶过程中通常都是不能低于最低限速的(比如90%或70%的利用率)。此外,在基准测试中强调的性能差异不超过10%,则类似于不同品牌的车辆在相同条件下(比如都是高性能跑车),它们的速度差异不会太大,都在一个相对接近的范围之内,因此即使车辆能够开得再快,同样也不能高于最高限速。
不仅如此,每GPU的带宽差异也会受卡间同步开销影响,如官方表示:“每GPU带宽是用总数据读取量除以总运行时间得到的,没有正确考虑权重交换期间的空闲时间的影响”。随着GPU数量的增加,权重交换占用的时间也会增加,导致每GPU带宽下降。因此,在当前的测试基准设定下,每GPU的MiB/s这个指标,主要受GPU卡数量、主机性能的影响,无法用于评估存储系统的性能表现。
我们可以这样理解,如同在一条高速公路上,车辆的通行“速度”( 每GPU的MiB/s值)这个指标,主要受车辆数量(GPU卡数量)和道路拥堵状况的影响,因而不能仅凭车辆的速度,就可以判断一条高速公路的质量(存储系统)一样,我们也不能仅凭每GPU的MiB/s值来评估存储系统的性能表现。
最后,单纯比较每个客户端(主机)的MiB/s值,同样也没有太大的参考意义。
每客户端(主机)的MiB/s基本和每主机模拟的GPU卡数呈线性正比,而测试基准并不限制每主机模拟的GPU卡数,测试者可以根据主机的性能以及主机数量自主决定每主机模拟的GPU卡数。这意味着每台客户端(主机)的MiB/s并不能反映存储系统的性能。
简单做个比喻,这就像是在一场赛车比赛中,每家车队(客户端/主机)的最终名次大致上与他们参与比赛的赛车数量(模拟的GPU卡数)成正比,而比赛规则并没有规定车队必须驾驶多少辆赛车,因而车队可以根据自己的驾驶技术(主机性能)以及车队规模(主机数量)来自由决定自己驾驶的赛车数量。
这也是官方表示:“基准测试报告中提到的主机节点数量,并不等同于实际需要的主机系统数量,因此我们无法从这个数据中得出什么有用的结论”背后的逻辑。
以此为参考,可以看到在本次MLPerf AI存储基准测试中,华为通过单台设备成功满足了255张GPU模拟训练的数据吞吐需求,其GPU利用率保持90%以上,单框稳定带宽高达679 GB/s,是传统存储性能的10倍,这一数据可以说充分展示了华为存储系统在支持大规模GPU运行方面的实力。
更为关键的是,它也再次印证了如果AI存储系统能够支持更多的GPU同时运行,那么它就能更好地满足大规模AI模型训练的需求,而这也是未来用户评估存储系统性能的核心指标的重要所在。
正所谓“正本清源”,相信通过官方对MLPerf AI存储基准测试标准的解读,大家可以更明白无误地“看懂”本次MLPerf AI存储基准测试的结果,以便于在将来更好地选择适合自身的AI存储解决方案。