-
Notifications
You must be signed in to change notification settings - Fork 157
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
Optimize the performance of Transformer-Big on 1 V100 GPU #148
Comments
Profile和Timeline分析结果
GPU利用率基本很满,但存在一定的空白区域,从timeline上来看,是在等待CPU -> GPU的数据传输。 从GPU使用情况来看,GPU占用比较多的是dropout和mul:
数据加载时间过长的问题使用tiny数据。tiny数据是从整个数据集的头部摘取了40w条,因此测试结果和使用整个数据集测试的存在diff。 优化计划
|
CPU-->GPU 的数据从log来看是数据读取的部分。但是尝试了YOLOv3多进程读取数据的方法,性能并没有得到提升。 |
问题:测试脚本中设置了 回答From @guoshengCS :设置 |
在我本机上(CUDA10.0)
|
CPU -> GPU数据拷贝分析分析方法
|
关于多进程的写法需要@邓凯鹏 review 下,确定测试结果的正确性 |
优化dropout实现1. 利用cuDNN提供的dropout api的实现实现dropout_cudnn_op,PaddlePaddle/Paddle#18954
多卡固定随机性问题测试结果: 2. 优化dropout的CUDA实现:PaddlePaddle/Paddle#19136试transformer-big(enable_ce)中dropout OP 的平均耗时:(利用PaddlePaddle的profiler工具):Ave Time : 1.16155 ----> 0.344537(ms)
已经验证CUDA实现修改之后无多卡随机性问题 |
Label Smooth优化 PaddlePaddle/Paddle#19175 |
对于 cast OP 和increment OP选择CPU Kernel计算的原因是因为我们的代码在这两个OP选择CPU或者GPU算法的时候是根据输入数据是在CPU还是在GPU上进行选择的。 |
负责人
@wangchaochaohu
初始性能
The text was updated successfully, but these errors were encountered: