Horovod的github提供Benchmark,所使用的机器是128服务器(4 Pascal GPU,网络RoCE 25Git/s)
Horovod对于Inception V3与ResNet-101能够达到90%使用率;对于VGG-16能够达到68%使用率。
前提
GPU机器,horovod环境
Benchmark
克隆代码
$ git clone https://github.com/tensorflow/benchmarks
$ cd benchmarks
运行benchmark
$ mpirun -np 16 \
-H server1:4,server2:4,server3:4,server4:4 \
-bind-to none -map-by slot \
-x NCCL_DEBUG=INFO -x LD_LIBRARY_PATH -x PATH \
-mca pml ob1 -mca btl ^openib \
\
python scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py \
--model resnet101 \
--batch_size 64 \
--variable_update horovod
运行结束后,可以看到每秒处理的图像数量
total images/sec: 1656.82
真实数据benchmark
上面的命令是在合成数据的benchmark,如果要在真实数据上benchmark,需要下载ImageNet数据集,并将其转为TFRecord。
在运行benchmark时,需要添加tfrecord路径
$ mpirun -np 16 \
-H server1:4,server2:4,server3:4,server4:4 \
-bind-to none -map-by slot \
-x NCCL_DEBUG=INFO -x LD_LIBRARY_PATH -x PATH \
-mca pml ob1 -mca btl ^openib \
\
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
【参考】
1。horovod:benchmark:https://github.com/uber/horovod/blob/master/docs/benchmarks.md