pytorch中碰到的memory leak问题

Python08

pytorch中碰到的memory leak问题,第1张

最近碰到pytorch分布式训练时候,memory几乎线性增加,撑炸机器的问题

pytorch中内存泄漏常见的原因大概是以下几点:

有时候可能会遇到不同的问题,具体问题可以通过python的内存分析工具做分析(不过讲道理不是太管用)比如: https://www.pythonf.cn/read/108519 , https://zhuanlan.zhihu.com/p/121003986

我的心情随着第一个github的issue答案起起伏伏,试了几遍都不行,然后忽然想到,这些bug官方都回复修了,怎么还能有问题呢…然后转头把sagemaker上pytorch的版本从1.6降到了1.5,世界安静了…

最近一天一个bug,踩坑美滋滋

python跑了一个小时不正常。python跑时间超过半小时会发生内存泄漏的情况,是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。我的程序正好有大量的循环,因此也给不断累积的内存泄漏提供了条件。

python特点

python是一种计算机程序设计语言,python是用来编写应用程序的高级编程语言。完成同一个任务,python的代码量很少,但是代码少的代价是运行速度慢。python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作内置电池。用python开发,许多功能不必从零编写,直接使用现成的即可。

内存泄漏的经典定义是使用过的内存,现在既没有使用,也没被回收。用纯Python代码几乎是不可能的。但是正如Antoine所指出的,即使不需要将所有的数据保存在一起,您也可以很容易地不受约束地让数据结构增长,从而轻易地消耗掉所有的内存。