我需要测试tensorflow在多个gpu上的分布式版本。
我在AWS g2.8x EC2实例上运行了Cifar-10多GPU示例。
对于cifar10_multi_gpu_train.py(代码在这里)的2000个步骤,单个gpu(flag num_gpu=1
)的运行时间为427秒。之后,eval.py脚本返回精确度@1 = 0.537。
使用相同的示例,运行相同数量的步骤(其中一步在所有gpu上并行执行),但是使用4个gpu(flag num_gpu=4
),运行时间约为530
秒,并且eval.py
脚本仅返回略高的精确度@1为0.552(可能由于计算中的随机性所致?)
为什么使用更多的gpu时,示例表现更差? 我只是出于测试目的使用了非常少量的步骤,并期望使用4个gpu获得更高的精度收益。 我错过了什么或犯了一些基本错误吗? 有其他人尝试过上面的示例吗?
非常感谢您的帮助。