使用 MLPerf 测试 ML 训练性能

MLPerf™ Storage 基准测试套件由 MLCommons® 设计,旨在衡量存储系统在真实机器学习 (ML) 训练工作负载下的性能。它模拟了 BERTU-Net3D 等模型的 I/O 模式,以评估存储吞吐量和 I/O 效率。

本指南介绍了如何使用 MLPerf Storage 基准测试来测试 Alluxio 集群的性能。

基准测试亮点

以下结果是使用 MLPerf Storage v0.5 基准测试得出的,数据完全缓存在 Alluxio 中,并使用 A100 GPU 作为训练加速器。“加速器利用率 (AU)” 指标显示了存储系统使 GPU 保持繁忙状态的效率。

模型
加速器数量 (GPU)
数据集大小
加速器利用率 (AU)
吞吐量 (MB/秒)
吞吐量 (样本/秒)

BERT

1

1.3 TB

99%

0.1

49.3

BERT

128

2.4 TB

98%

14.8

6,217

U-Net3D

1

719 GB

99%

409.5

2.9

U-Net3D

20

3.8 TB

97%-99%

7,911.4

56.59

测试环境

基准测试结果是使用以下环境生成的,所有实例都部署在同一个 AWS 可用区中。

  • Alluxio 集群:

    • 2 个工作节点 (i3en.metal: 96 核, 768GB RAM, 8 个 NVMe SSD)

    • 1 个 FUSE 客户端节点 (c6in.metal: 128 核, 256GB RAM)

  • 操作系统: Ubuntu 22.04

设置和配置

1. 安装 MLPerf Storage 工具

在您将运行基准测试的客户端节点上:

2. 配置 Alluxio

为了在 ML 训练期间获得最佳读取性能,我们建议在 Alluxio 集群节点的 conf/alluxio-site.properties 文件中设置以下属性。

在运行基准测试之前,请确保:

  • Alluxio FUSE 进程正在客户端节点上运行。

  • 训练数据集已完全加载到 Alluxio 缓存中。

运行基准测试

基准测试过程包括生成一个合成数据集,然后对其运行训练模拟。

步骤 1:生成数据集

首先,根据您的模拟硬件确定所需的数据集大小。

此命令将输出所需的文件数。使用此值生成实际的数据文件。

生成数据集后,将其上传到您的 UFS 并确保已加载到 Alluxio 中。

步骤 2:运行基准测试

使用 run 命令执行基准测试。data_folder 参数应指向 Alluxio FUSE 挂载点内的数据集。

步骤 3:审查和汇总结果

运行完成后,将在您的结果目录中创建一个 summary.json 文件。该文件包含详细的指标,包括 GPU 利用率 (train_au_percentage) 和吞吐量。

summary.json 示例

为了获得最终结果,基准测试应多次运行(例如 5 次)。整理每次运行的输出目录,并使用 reportgen 命令生成汇总摘要。

这将生成一个最终的 JSON 输出,其中包含所有运行中吞吐量和其他关键指标的总体平均值和标准差。

Last updated