Paddle 开启amp进行混合精度训练没有加速

s8vozzvw  于 2021-11-30  发布在  Java
关注(0)|答案(6)|浏览(314)

为使您的问题得到快速解决,在建立Issues前,请您先通过如下方式搜索是否有相似问题:【搜索issue关键字】【使用labels筛选】【官方文档】

如果您没有查询到相似问题,为快速解决您的提问,建立issue时请提供如下细节信息:

  • 标题:简洁、精准概括您的问题,例如“Insufficient Memory xxx" ”
  • 版本、环境信息:

   1)PaddlePaddle版本:paddle 2.0.2
   2)CPU:预测若用CPU,请提供CPU型号,MKL/OpenBlas/MKLDNN/等数学库使用情况
   3)GPU:预测若用GPU,请提供GPU型号、CUDA和CUDNN版本号
   4)系统环境:请您描述系统类型、版本,例如Mac OS 10.14,Python版本
注:您可以通过执行summary_env.py获取以上信息。

  • 训练信息

   1)单机2卡
   2)显存信息: 16160MiB
   3)Operator信息

  • 复现信息:如为报错,请给出复现环境、复现步骤
  • 问题描述:请详细描述您的问题,同步贴出报错信息、日志、可复现的代码片段

采用单机2卡v100进行混合精度训练,发现开启amp并没有达到加速的效果:
batch_size = 96

  • 不开启amp的训练log:

2021-09-15 11:26:22 Epoch-iter:0-000 loss:16.9377 loss_avg:16.9253 lr:0.00010
2021-09-15 11:32:41 Epoch-iter:0-990 loss:6.2365 loss_avg:6.2495 lr:0.00010

  • 开启amp的训练log:

2021-09-15 11:08:31 Epoch-iter:0-000 loss:17.0717 loss_avg:17.1719 lr:0.00010
2021-09-15 11:16:21 Epoch-iter:0-990 loss:6.2643 loss_avg:6.3447 lr:0.00010

  • 根据上述log信息,可得如下耗时比较,发现开启amp并没有

  • 不开启amp时,训练990 batch,耗时6min19s

  • 开启amp时,训练990 batch,耗时7min50s

  • 开启amp的方式是:

amp_list = fluid.contrib.mixed_precision.AutoMixedPrecisionLists(custom_white_list=[], custom_black_list=[], custom_black_varnames=list3)
mp_sgd = fluid.contrib.mixed_precision.decorator.decorate(optimizer, amp_list)

jv4diomz

jv4diomz1#

您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网API文档常见问题历史IssueAI社区来寻求解答。祝您生活愉快~

Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the APIFAQGithub Issue and AI community to get the answer.Have a nice day!

3z6pesqy

3z6pesqy2#

您好,请交代一下模型背景。amp加速一般在矩阵乘运算较多的网络,加速明显。

djmepvbi

djmepvbi3#

模型是类似于mnasnet的结构,主要是由conv2d, depthwise_conv2d, bn, relu6这些op组成

smtd7mpg

smtd7mpg4#

amp在conv2d, depthwise_conv2d, bn, relu6的加速并不明显,可能会加速不明显,这个可能是正常的。具体的可以profile相应的timeline看一下,速度瓶颈。

hwazgwia

hwazgwia5#

我理解conv2d是用矩阵乘实现的,那这里为啥amp对矩阵乘有加速,但是对conv2d加速不明显呢?

pgvzfuti

pgvzfuti6#

conv2d用的是cuda的库计算出来,实测amp对卷基层加速并不明显。

相关问题