MLPerf Storage 基准测试

MLPerf Storage 基准测试概览

MLPerf Storage是专门针对机器学习任务的存储系统性能基准测试套件。

本文档介绍如何通过 MLPerf Storage 来对 Alluxio 进行端到端测试。

测试结果摘要

模型
加速器 (GPUs)
数据集
加速器利用
吞吐量 (兆字节/秒)
吞吐量 (样本数/秒)

bert

1

1.3TB

99%

0.1

49.3

unet3d

1

719 GB

99%

409.5

2.9

bert

128

2.4 TB

98%

14.8

6217

unet3d

20

3.8 TB

97%-99%

7911.4

56.59

测试结果基于如下配置的 Alluxio 集群,所有服务器实例均在 AWS 上可用:

  • Alluxio 集群: 一个 Alluxio Fuse 节点和两个 Alluxio Worker 节点。

  • Alluxio Worker 实例: i3en.metal: 96内核 + 768GB 内存+ 100Gb网络 + 8 nvme固态硬盘

  • Alluxio Fuse 实例 c6in.metal: 128内核 + 256GB 内存 + 200Gb网络

准备测试环境

操作系统镜像:Ubuntu 22.02

准备 MLPerf Storage 测试工具

生成数据集

我们建议在本地生成数据集,然后上传到远端存储。 确定要生成的数据大小:

  • **工作负载:**选项为 unet3d 和 bert。

  • num-accelerators: 模拟的 GPU 数量。数量越多,单台机器上运行的进程就越多。对于相同大小的数据集,训练时间更短。不过,这会增加对存储 I/O 的需求。

  • host-memory-in-gb: 模拟的内存大小,可以自由指定,甚至可以超过机器的实际内存大小。内存越大,生成的数据集也就越大,需要的训练时间也就越长。

执行此命令后,您将得到如下结果:

接下来,您可以使用以下命令生成相应的数据集:

在本地生成数据集后,将其上传到 UFS。

配置 Alluxio

我们推荐使用 Alluxio 3.1 或更高版本进行 MLPerf 测试。 此外,建议在 alluxio-site.properties 中进行以下配置,以获得最佳读取性能:

有关其他 Alluxio 相关配置,请参阅 Fio Tests 部分。

  • 可将一个或多个 Alluxio Worker 配置为缓存集群。

  • 此外,在每个 MLPerf 测试节点上都需要启动 Alluxio Fuse 进程来读取数据。

  • 确保数据集已从 UFS 完全加载到 Alluxio 缓存中。

运行测试

完成测试后,您可在 results-dir 中找到如下的summary.json 文件:

train_au_percentage 属性代表 GPU 利用率。

此外,您还可以多次运行测试,将运行结果按以下格式保存:

然后,使用以下命令汇总多个测试结果:

最终的汇总结果如下所示:

Last updated