基准测试¶
上述基准测试是在128台服务器上进行的,每台服务器配备4个Pascal GPU,通过支持RoCE的25 Gbit/s网络连接。Horovod 在Inception V3和ResNet-101上实现了90%的扩展效率,在VGG-16上实现了68%的扩展效率。
重现基准测试:
使用Horovod on GPU页面上提供的说明安装Horovod。
$ git clone https://github.com/tensorflow/benchmarks
$ cd benchmarks
运行基准测试。以下示例适用于 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
在运行结束时,你将看到每秒处理的图像数量:
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 v1、 TensorFlow v2 和 PyTorch 的开箱即用基准测试支持。
这些基准测试允许您测量Horovod在您环境中的性能和可扩展性,以及尝试高级 Horovod功能,如梯度压缩:
$ horovodrun -np 4 -H server1:2,server2:2 \
python --fp16-allreduce tensorflow2_synthetic_benchmark.py
在诊断性能问题时,我们建议首先运行这些合成基准测试,以确保问题并非源自训练脚本本身。