当前位置:网站首页>MindSpore:【mindinsight】【Profiler】用execution_time推导出来的训练耗时远小于真实的耗时
MindSpore:【mindinsight】【Profiler】用execution_time推导出来的训练耗时远小于真实的耗时
2022-08-04 09:03:00 【小乐快乐】
问题描述:
【功能模块】
【mindinsight】【Profiler】
起因是,之前我们模型中最耗时的两个算子是transpose和confusion transpose d:
一个epoch需要979.7s:
我们进行优化,把transpose和confusion_transpose_d两个算子的耗时优化到可以忽略不计,优化后:
可以看到transpose和confusion_transpose_d两个算子的耗时已经可以忽略不计了,而其他算子的耗时没有明显改变。由于transpose和confusion_transpose_d在优化前的占比达到了91.95%,所以理论上一个epoch的时间应该会缩短到100s左右,但实际上优化后一个epoch仍然需要328s:
所以是否说明每个epoch有228s左右的时间没有被统计到算子的execution_time中?
我们进一步算了一下:
一个epoch是1562个step。由于开启了dataset_sink_mode,更新频率是71,所以execution_time应该是每71个step的总时间?。
优化前:用ConfusionTransposeD算子的耗时计算一个epoch的耗时:execution_time / percent * (1562 / 71) = 22458 / 0.6666 * (1562 / 71) = 741188.119ms ≈ 741s
而实际一个epoch耗时979s,所以有238s的差距
优化后:用BatchMatMul算子的耗时计算一个epoch的耗时:execution_time / percent * (1562 / 71) = 2170 / 0.8015 * (1562 / 71) = 59563.3188ms ≈ 60s
而实际一个epoch耗时328s,所以有268s的差距
也就是说,优化前后,用execution_time推导出来的一个epoch的训练时间,都比真实的训练时间少了两百多秒。而在优化后,这两百多秒已经成为性能的最主要瓶颈。我们想知道其中的原因,以及如何进一步优化训练时间?
优化前:
优化后:
解决方案:
1、通过迭代轨迹看,迭代间隙有28ms左右,即每个step获取数据的时间。
2、迭代轨迹中,前反向耗时除了每个算子的耗时外,还要考虑每个算子的调度间隙,即算子间的空隙是不是比较大。
另外,看这个前反向耗时的变化趋势,会有一个周期性的变化,这个要确认下原因是什么导致的。周期性的保存CKPT文件?
边栏推荐
- [Punctuality Atom STM32 Serial] Chapter 4 STM32 First Experience Excerpted from [Punctual Atom] MiniPro STM32H750 Development Guide_V1.1
- Detailed explanation of telnet remote login aaa mode [Huawei eNSP]
- 继承和static关键字
- 2022-08-02 分析RK817 输出32k clock PMIC_32KOUT_WIFI给WiFi模块 clock 注册devm_clk_hw_register
- leetcode动态规划系列(求路径篇)
- leetcode动态规划经典例题——53.最大子数组和
- 他97年的,我既然卷不过他...
- async - await
- .NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)
- 王爽汇编语言第四章:第一个程序
猜你喜欢
【正点原子STM32连载】第四章 STM32初体验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
有坦荡的远方
2022-08-02 Analyze RK817 output 32k clock PMIC_32KOUT_WIFI to WiFi module clock register devm_clk_hw_register
如何设计一个注册中心
Explanation of spark operator
Anton Paar Anton Paar Density Meter Hydrometer Repair DMA35 Performance Parameters
TiCDC同步延迟问题处理
sync-diff-inspector 使用实践
注意力机制
如何快速将Zabbix5.0升级至6.0?
随机推荐
【正点原子STM32连载】第一章 本书学习方法 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
张朝阳对话俞敏洪:谈宇宙、谈焦虑、谈创业、谈退休、谈人生
LVGL's multi-language conversion tool -- a good assistant for font settings
[NOI Simulation Competition] Paper Tiger Game (Game Theory SG Function, Long Chain Division)
一道[CSCCTF 2019 Qual]FlaskLight的详解再遇SSTI
从零开始的tensorflow小白使用指北
VRRP+MSTP配置详解【华为eNSP实验】
今日睡眠质量记录71分
recursive thinking
Anton Paar Anton Paar Density Meter Hydrometer Repair DMA35 Performance Parameters
速速脱单诀窍
Anton Paar安东帕密度计比重计维修DMA35性能参数
Detailed explanation of telnet remote login aaa mode [Huawei eNSP]
MATLAB绘图总结
云函数实现网站自动化签到配置详解【Web函数/Nodejs/cookie】
2022年化工自动化控制仪表考试模拟100题及模拟考试
三层交换机配置MSTP协议详解【华为eNSP实验】
如何快速将Zabbix5.0升级至6.0?
leetcode每天5题-Day06
他97年的,我既然卷不过他...