当前位置:网站首页>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文件?
边栏推荐
- 请你谈谈网站是如何进行访问的?【web领域面试题】
- 【正点原子STM32连载】第二章 STM32简介 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
- Detailed explanation of telnet remote login aaa mode [Huawei eNSP]
- Convert callback function to Flow
- 户外徒步旅行
- 2022年制冷与空调设备运行操作特种作业证考试题库及模拟考试
- 【Attention】Dual Attention(DANet) & Fully Attention(FLA)
- Yolov5 replaces the backbone network of "Megvii Lightweight Convolutional Neural Network ShuffleNetv2"
- 【论文笔记】Dynamic Convolution: Attention over Convolution Kernels
- Inheritance and the static keyword
猜你喜欢
DOM简述
从零开始的tensorflow小白使用指北
OAK-FFC-4P全网首次测试
Grafana9.0发布,Prometheus和Loki查询生成器、全新导航、热图面板等新功能!
命里有时终须有--记与TiDB的一次次擦肩而过
Anton Paar安东帕密度计比重计维修DMA35性能参数
【正点原子STM32连载】第一章 本书学习方法 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
PD 源码分析- Checker: region 健康卫士
【论文笔记】Dynamic Convolution: Attention over Convolution Kernels
三层交换机配置MSTP协议详解【华为eNSP实验】
随机推荐
Shared_preload_libraries cause many syntaxes not supported
recursive thinking
并发编程之生产者和消费者问题
oracle sql multi-table query
记录十条工作中便利的API小技巧
预测性维护学习之路
SQL后计算的利器
Grafana9.0发布,Prometheus和Loki查询生成器、全新导航、热图面板等新功能!
How to restore the Youxuan database with only data files
我和 TiDB 的故事 | 缘份在,那就终是能相遇的
TiCDC同步延迟问题处理
ZbxTable 2.0 重磅发布!6大主要优化功能!
I am 37 this year, and I was rushed by a big factory to...
Anton Paar Anton Paar Density Meter Hydrometer Repair DMA35 Performance Parameters
No module named 'flask_misaka' has been resolved [BUG solution]
leetcode单调栈经典例题——最大矩形
[Computer recording screen] How to use bandicam to record the game setting graphic tutorial
智汇华云 | 华云软件定义网络 DCI介绍
VRRP + MSTP configuration, huawei eNSP experiment 】 【
【正点原子STM32连载】第二章 STM32简介 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1