基准测试

512-GPU Benchmark

上述基准测试是在128台服务器上进行的,每台服务器配备4个Pascal GPU,通过支持RoCE的25 Gbit/s网络连接。Horovod 在Inception V3和ResNet-101上实现了90%的扩展效率,在VGG-16上实现了68%的扩展效率。

重现基准测试:

  1. 使用Horovod on GPU页面上提供的说明安装Horovod。

  2. 克隆 https://github.com/tensorflow/benchmarks

$ git clone https://github.com/tensorflow/benchmarks
$ cd benchmarks
  1. 运行基准测试。以下示例适用于 Open MPI。

$ horovodrun -np 16 -H server1:4,server2:4,server3:4,server4:4 \
    python scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py \
        --model resnet101 \
        --batch_size 64 \
        --variable_update horovod
  1. 在运行结束时,你将看到每秒处理的图像数量:

total images/sec: 1656.82

真实数据基准测试

上述基准测试说明适用于合成数据基准测试。

要在真实数据上运行基准测试,你需要下载 ImageNet 数据集 并使用 TFRecord 预处理脚本 进行转换。

现在,只需将 --data_dir /path/to/imagenet/tfrecords --data_name imagenet --num_batches=2000 添加到您的训练命令中:

$ horovodrun -np 16 -H server1:4,server2:4,server3:4,server4:4 \
    python scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py \
        --model resnet101 \
        --batch_size 64 \
        --variable_update horovod \
        --data_dir /path/to/imagenet/tfrecords \
        --data_name imagenet \
        --num_batches=2000

Horovod 合成基准测试

Horovod 还提供对 TensorFlow v1TensorFlow v2PyTorch 的开箱即用基准测试支持。

这些基准测试允许您测量Horovod在您环境中的性能和可扩展性,以及尝试高级 Horovod功能,如梯度压缩:

$ horovodrun -np 4 -H server1:2,server2:2 \
    python --fp16-allreduce tensorflow2_synthetic_benchmark.py

在诊断性能问题时,我们建议首先运行这些合成基准测试,以确保问题并非源自训练脚本本身。