大模型训练中如何找到内存泄漏

news/2025/1/15 9:50:04/

内存泄漏的常见原因

1.内存泄漏有可能是我们创建一个全局的list,每次iter都会往其中添加Tensor,会导致内存泄漏
2.如果我们某个Tensor在计算图中的前向计算,但是没有参与反向更新参数,可能会导致内存泄漏,因为pytorch的内存管理机制是反向传播后释放计算图中的Tensor;此时可以使用detach将该Tensor从计算图中剥离出来;with torch.no_grad()应该也可以达到同样的结果;
3.以下是一个高赞的帖子排除内存泄漏的方法;
就是从训练起始的地方打印torch.cuda.memory_allocated()/torch.cuda.max_memory_allocated()的比值,
前者代表正在使用的内存,后者代表使用的内存峰值,如果两个iter之间的比值是个固定值,代表该句以上没有内存泄漏,如果不稳定,则代表有内存泄漏;因为有内存泄漏的话,torch.cuda.max_memory_allocated()会一直增加;
the most useful way I found to debug is to use torch.cuda.memory_allocated() and torch.cuda.max_memory_allocated() to print a percent of used memory at the top of the training loop. Then look at your training loop, add a continue statement right below the first line and run the training loop. If your memory usage holds steady, move the continue to the next line and so on until you find the leak.


http://www.ppmy.cn/news/1563287.html

相关文章

【Unity-Animator】通过 StateMachineBehaviour 实现回调

StateMachineBehaviour 简介 StateMachineBehaviour是一个基类,所有状态脚本都派生自该类。它可以在状态机进入、退出或更新状态时执行代码,而无需编写自己的逻辑来测试和检测状态的变化。这使得开发者可以更方便地处理状态转换时的逻辑,例…

Wireshark 使用教程:网络分析从入门到精通

一、引言 在网络技术的广阔领域中,网络协议分析是一项至关重要的技能。Wireshark 作为一款开源且功能强大的网络协议分析工具,被广泛应用于网络故障排查、网络安全检测以及网络协议研究等诸多方面。本文将深入且详细地介绍 Wireshark 的使用方法&#x…

地瓜机器人RDK Studio使用入门教程

一、RDK Studio简介 不知道大家在使用AI开发板的时候有没有遇到过板子官方镜像占据空间大难以保存,想要的时候找不到?官方示例项目久而久之便难以找寻?首次登陆开发板连接网络还需要准备显示器键盘鼠标外设繁杂?…为了解决平时开发…

Shader -> SweepGradient扫描渐变着色器详解

XML文件 <com.example.myapplication.MyViewxmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_gravity"center"android:layout_height"400dp"/>自定义View代码 c…

计算机视觉算法实战——手写公式识别(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​​​​​​​​​​​​​​​​ 1. 领域介绍✨✨ 手写公式识别&#xff08;Handwritten Mathematical Expression Recognition, HME…

黑马linux入门笔记(01)初始Linux Linux基础命令 用户和权限 实用操作

B站 黑马程序员 的视频 BV1n84y1i7td 黑马程序员新版Linux零基础快速入门到精通&#xff0c;全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等 增强自控力 冥想慢呼吸绿色锻炼充分休息减少决策次数优先做重要的事情(早晨)融入强自控群控…

Lua语言的网络编程

Lua语言的网络编程 引言 Lua是一种轻量级的、高效的脚本语言&#xff0c;因其简单易用以及高扩展性而广泛应用于游戏开发、嵌入式系统、网站开发等多个领域。在网络编程方面&#xff0c;Lua同样显示出它的优势&#xff0c;尤其是在处理网络请求、实现高效的网络服务和构建游戏…

uniapp 小程序 五星评分精确到0.1

uniapp 小程序 五星评分精确到0.1 上图 上组件 <template><view class"container"><view class"canvas-wrap"><canvastype"2d"id"canvas"class"canvas"disable-scroll"true"></ca…