当前位置:网站首页>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文件?

边栏推荐
猜你喜欢

预测性维护学习之路

telnet远程登录aaa模式详解【华为eNSP】

请你谈谈网站是如何进行访问的?【web领域面试题】

DOM简述
![Detailed explanation of switch link aggregation [Huawei eNSP]](/img/c2/f9797fe8b17a418466b60cc3dc50a1.png)
Detailed explanation of switch link aggregation [Huawei eNSP]

B站回应HR称“核心用户都是Loser”、求职者是“白嫖党”:已被劝退

leetcode经典例题——56.合并区间
![[Punctuality Atomic STM32 Serial] Chapter 1 Learning Method of the Book Excerpted from [Punctuality Atomic] MiniPro STM32H750 Development Guide_V1.1](/img/99/23e3dcb426769a415e33f7ff51bbb8.png)
[Punctuality Atomic STM32 Serial] Chapter 1 Learning Method of the Book Excerpted from [Punctuality Atomic] MiniPro STM32H750 Development Guide_V1.1

Anton Paar Anton Paar Density Meter Hydrometer Repair DMA35 Performance Parameters

我和 TiDB 的故事 | TiDB 对我不离不弃,我亦如此
随机推荐
Detailed explanation of NAT/NAPT address translation (internal and external network communication) technology [Huawei eNSP]
Convert callback function to Flow
I am 37 this year, and I was rushed by a big factory to...
ShuffleNet v2 network structure reproduction (Pytorch version)
tcp连接的细节
命里有时终须有--记与TiDB的一次次擦肩而过
【Attention】Dual Attention(DANet) & Fully Attention(FLA)
优炫数据库只有数据文件如何恢复
telnet远程登录aaa模式详解【华为eNSP】
【论文笔记】Understanding Long Programming Languages with Structure-Aware Sparse Attention
ISO14443A读卡流程(作为示例参考)
他97年的,我既然卷不过他...
Shared_preload_libraries cause many syntaxes not supported
Detailed explanation of switch link aggregation [Huawei eNSP]
[Computer recording screen] How to use bandicam to record the game setting graphic tutorial
Four common methods of network attacks and their protection
How to write patents are more likely to pass?
去掉js代码文件所有注释
2022-08-02 分析RK817 输出32k clock PMIC_32KOUT_WIFI给WiFi模块 clock 注册devm_clk_hw_register
binder通信实现