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

PyTorch错误定位系列之DDP训练中 double free or corruption (out)

背景

最近觉得单卡训练有点慢了,在纠结pytorch-lightning和原始distributed训练中选择哪里。
最后,从学习的角度选了原生的单机多卡训练(DDP)方式。

结果,就把自己埋坑里了。

问题

代码写完后,通过torch.distributed.launch启动,程序跑了大概100 steps就突然挂了,出现了如下错误

epoch 0:[114/122531],loss:0.69853double free or corruption (out)
double free or corruption (out)
Killing subprocess 936
Killing subprocess 937
....
in sigkill_handler
    raise subprocess.CalledProcessError(returncode=last_return_code, cmd=cmd)

解决方法

网上说可能使malloc内存分配库的问题,咱也不太会cpp,就只能信。
按照网上的逻辑

  1. sudo apt install libtcmalloc-minimal4
  2. 在自己代码启动的shell脚本加上这句 export LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4"
  3. 然后运行代码,居然就正常跑起来了,目前还没发现什么问题。

这里有个注意,libcmalloc有时候不一定在这个目录里,自己找找基本都在/usr/lib

反思

下次还是直接用现成的分布式框架吧= = 。

参考

  1. https://blog.popkx.com/Error-in-python-double-free-or-corruption-prev-when-using-yolov5-training/
  2. https://github.com/tensorflow/tensorflow/issues/6968

相关文章:

  • Go template详解(中)- 变量使用、if语句、迭代(数组、切片、map)、内置函数(比较、逻辑判断、打印、索引、函数调用)
  • JavaScript(三):理解异步
  • JVM阶段(3)-OutOfMemoryError异常
  • 企业运维容器之 docker 网络
  • 【QML】 如何导入QML文档目录
  • 【前端】命令行基础,linux常用命令
  • 【ZYNQ-嵌入式】zynq学习笔记(二)—— GIPO的硬件配置和软件配置
  • vue echarts 镂空饼图配置
  • 项目二:《贪吃蛇》
  • 企业运维容器之 docker仓库
  • 快速排序sort 第k个数
  • uniapp开发微信小程序Error in onLoad hook: “SyntaxError: Unexpected end of JSON input“
  • MySQL当前链接状态查询
  • 打破平台限制,小程序如何在硬件设备上运行?
  • ORA-01017(:用户名/口令无效; 登录被拒绝)Oracle新建用户并授权
  • SegmentFault for Android 3.0 发布
  • Angularjs之国际化
  • Django 博客开发教程 8 - 博客文章详情页
  • emacs初体验
  • HashMap剖析之内部结构
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • js作用域和this的理解
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 两列自适应布局方案整理
  • 前嗅ForeSpider教程:创建模板
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何进阶一名有竞争力的程序员?
  • 推荐一个React的管理后台框架
  • 一个JAVA程序员成长之路分享
  • 一些css基础学习笔记
  • Nginx实现动静分离
  • Spring第一个helloWorld
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (超详细)语音信号处理之特征提取
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (四)Android布局类型(线性布局LinearLayout)
  • (算法设计与分析)第一章算法概述-习题
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)memcache、redis缓存
  • (转)视频码率,帧率和分辨率的联系与区别
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .apk 成为历史!
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET CORE 第一节 创建基本的 asp.net core
  • .net wcf memory gates checking failed
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2