benchmark icon indicating copy to clipboard operation
benchmark copied to clipboard

v1.5发布的Benchmark里的单进程/多进程的含义

Open jianhang-liu opened this issue 5 years ago • 6 comments

在最新发布的v1.5的Benchmark里,各模型(如BERT)的benchmark都分为单GPU, 8GPU(单进程),8GPU(多进程)。请问这里单进程和多进程的具体含义是什么?谢谢

另外一个问题:BERT benchmark里用的是steps/s, 那么一个step是多少个sample呢?从training脚本看,batch_size缺省是8192. 不知道benchmark里的batch_size是多少?

jianhang-liu avatar Jul 16 '19 01:07 jianhang-liu

请问这里单进程和多进程的具体含义是什么?

多进程多卡是指,每个进程对应一张卡进行计算,卡之间的通信通过nccl完成,即多个进程上的GPU使用nccl进行通信。单进程多卡是指,一个进程使用多个GPU卡参与计算计算,卡之间的通信依然是使用nccl。

不知道benchmark里的batch_size是多少?

benchmark的执行脚本在这里:https://github.com/PaddlePaddle/benchmark/blob/master/NeuralMachineTranslation/BERT/fluid/train/run.sh#L42

chengduoZH avatar Jul 16 '19 02:07 chengduoZH

收到。谢谢!

jianhang-liu avatar Jul 16 '19 02:07 jianhang-liu

从公开的数据和脚本来看,这个BERT的测试主要是BERT Base的中文模型 pre-train,Max Seq Len = 128,单卡的batch size 是32。 性能是 3.114 个steps/s, 所以8 * V100 性能应该是 3.114 * 32 * 8 = 797 sequence/s 我的理解应该没错吧。但是我看到在脚本“https://github.com/PaddlePaddle/benchmark/blob/master/NeuralMachineTranslation/BERT/fluid/train/run.sh#L42” 之中max bs = 78。 不知道如果使用最大的bs的时候性能是多少呢? 我建议在公布数据的时候最好尽量把模型的配置细节都标注一下,不然所有的都要去脚本找,比较麻烦。 谢谢

imluoxu avatar Jul 29 '19 08:07 imluoxu

@imluoxu 多谢您的建议。我们由于着急出结果,暂时缺乏详细描述每个模型的测试方法。我们会在下一个版本里面加强对这个方面的建设。

Xreki avatar Jul 29 '19 09:07 Xreki

@Xreki 谢谢。另外这个BERT的测试没有用batch size 78是为啥?用78的话,应该性能可以跑的更高啊?

imluoxu avatar Jul 30 '19 07:07 imluoxu

另外这个BERT的测试没有用batch size 78是为啥?用78的话,应该性能可以跑的更高啊?

我们这个测试,不是为了跑出最高的性能,而是测试实际训练的性能。实际使用batch_size=32训练,所以我们就只测了batch_size=32的情况。

Xreki avatar Jul 30 '19 07:07 Xreki