-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
跑DeepSpeech2单机多卡加速效果不理想 #3137
Comments
做了一些nvprof做了一些GPU profiling,有如下forward/backward在卡数增加时变慢的一些发现,希望能为这个issue提供一些帮助。实验条件和原问题中实验条件基本一致,下面的分析以forward为例,backward可以得到的结论类似
总结:可以提供的信息是,cudaLaunch时间在单任务使用单机多卡情况下会增加,原因不明。 |
感谢@YuMS的详细实验,对我们很有启发。 我们在K40机器上实验,对齐你的实验配置,做了相同的实验,实验结果如下:
实验结果比你的结果略好,8卡相比1卡的加速比为5.1x (你的实验仅为2.7x)。可否使用最新的paddle和ds代码,再跑一次实验看看?近期我们切换到cudnn batch norm 和cudnn conv,我不确定你使用的paddle版本是否是切换后的。同时,我这边在重跑并double-check上述结果,有结果会反馈与你。 上述结果以log-scale绘图如下蓝线;此外,我们跑了仅有两个卷积层的网络(去掉三个RNNs层),绘图如下的红线;黑虚线为最理想的线性加速比。可以看到,蓝线(全网络)接近线性加速比,但仍有一定的加速空间,红线(仅卷积层)差距比较大。 该加速比确实低于DS2 paper的结果,需要注意的是该版本并未包含all-reduce等优化。后续我们会持续关注Paddle和DS2 On Paddle的性能。期待你提供新版本的double-check实验结果。 |
上述结果可以复现:我重跑一次的8卡加速比在5.4x. |
尝试用八卡跑DeepSpeech2,发现八卡的加速效果很不理想
具体做法为:
models/deep_speech_2/train.py
batch_size
一致,为1657e58ef0c923bad6ecd9fad9925d47f9cb0a98c5
paddlepaddle/paddle:latest-gpu
,image id为e5d9d0d01214
,7月31日版本。得到的结果为
另外,这之后我们为了进一步分析,在 paddle 的代码中直接做了修改再编译,增加了一些计时的输出。
通过具体看输出的timer信息,发现在使用不同数量显卡的情况下,在
computeThread
中,forward、backward和taskSem_wait 三个主要部分的耗时,在一个minibatch中占的总耗时的比例,都相同(各约1/3)。不知道这样的情况是正常的吗?应该怎么解释?有没有加速的办法?应该怎么调试呢?
谢谢
The text was updated successfully, but these errors were encountered: