当前位置: 首页 > news >正文

一次pytorch分布式训练精度调试过程

现象: loss不下降

过程如下:

1.减少层数,准备最小复现环境
2.dropout设置为0,重复运行二次,对比loss是否一致
3.第二次迭代开始loss不一致
4.对比backward之后的梯度,发现某一个梯度不一致
5.dump得到所有算子的规模,单算子测试功能正常
6.怀疑是内存越界导致
7.排除通信库的问题,逐算子bypass
8.dump reduce_scatter的输入,发现每次都不样
9.在异常的时候pause进程,在python调用reduce_scatter的位置打印调用栈
10.定位到有问题的模块,是一个融合算子
11.用普通算子替换,结果一致
12.复测这个规模的融合算子功能正常
13.怀疑算子内部有内存踩踏行为
14.将输入类型从fp16改为fp32,结果正常
15.review该算子内部实现,确实有几行代码将输入当fp32处理

http://www.lryc.cn/news/348118.html

相关文章:

  • STM32(GPIO)
  • python设计模式---观察者模式
  • 【论文笔记】KAN: Kolmogorov-Arnold Networks 全新神经网络架构KAN,MLP的潜在替代者
  • 【投稿资讯】区块链会议CCF C -- CoopIS 2024 截止7.10 附录用率
  • React Native 之 开发环境搭建(一)
  • DS高阶:B树系列
  • 第五百零三回
  • [动态规划] 完美覆盖
  • redis深入理解之实战
  • python设计模式---工厂模式
  • 探索Vue 3.0中的v-html指令
  • anaconda 环境配置
  • DS:顺序表、单链表的相关OJ题训练(2)
  • 上传到 PyPI
  • 盛最多水的容器(双指针)
  • 【深度学习】实验3 特征处理
  • MoneyPrinter国内版改造
  • C++ 派生类的引入与特性
  • Poe是什么?怎样订阅Poe?
  • 基于FPGA的视频矩阵切换方案
  • .NET周刊【5月第1期 2024-05-05】
  • springcloud -nacos实战
  • 第十五章 数据管理成熟度评估练习
  • tcpdump速查表
  • 单元测试与集成测试:软件质量的双重保障
  • 孙宇晨对话大公网:香港Web3政策友好环境示范意义重大
  • Python运维之多线程!!
  • milvus插入数据时,明明不超长,但总是报长度错误?
  • 怎么把图片大小缩小到1M?教你几招图片你压缩
  • python数据分析常见命令