码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MindSpore:【mindinsight】【Profiler】用execution_time推导出来的训练耗时远小于真实的耗时


    问题描述:

    【功能模块】

    【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文件?

     

  • 相关阅读:
    window.eventBus 在Vue中的使用方法(一)
    Kotlin Files Paths write ByteArray writeString写多行BufferedWriter
    ESP8266-Arduino编程实例-SHT20温湿度传感器驱动
    安科瑞餐饮油烟监测云平台助力大气污染攻坚战
    前端开发禁止用户缩放页面
    计算机网络学习笔记(Ⅰ):计算机网络体系结构
    11-zinx-Golang-MMO服务器-AOI算法实现
    基于SqlSugar的数据库访问处理的封装,支持多数据库并使之适应于实际业务开发中
    visual studio设置主题和背景颜色
    【甄选靶场】Vulnhub百个项目渗透——项目十八:pwnlab_init(LFI本地文件包含,PHP伪协议,文件上传绕过,逆向分析)
  • 原文地址:https://blog.csdn.net/weixin_45666880/article/details/126149061
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号