LiWentomng/OrientedRepPoints

Memory Leak--UserWarning: semaphore_tracker: There appear to be 14 leaked semaphores to clean up at shutdown len(cache))

Opened this issue · 2 comments

DOTA数据集的规模暂时还比较小,所以目前没发生过因为内存泄露而导致的程序崩溃现象。
但当我将该项目应用在一个30W规模的数据集上的时候,随着迭代次数的增加内存的使用量也在增加,最后崩溃。
下图是每个小时自动运行一次free命令的输出情况。
IMG_20210625_114729
mmdet和python本身应该不容易出现内存管理方面的问题,感觉可能是新增的cuda代码容易出问题,但是cuda这一块我完全不懂,作者方便定位一下问题可能出现在哪些地方吗

补充:DOTA数据集似乎也会触发内存泄露的问题,比如将40epoch延长至120或200epoch,内存利用率会不断上升,最后崩溃
内存利用率曲线如下图所示(不方便截图只能拍照)
IMG_20210626_172306_edit_60733602335002

是的,我在训练DOTA多尺度数据(scale: 0.5, 1.0, 1.5)时, 也出现内存泄漏导致训练中止的情况,具体终端信息显示如下:
lib/python3.7/multiprocessing/semaphore_tracker.py:144: UserWarning: semaphore_tracker: There appear to be 14 leaked semaphores to clean up at shutd len(cache)) .
也知道是cuda代码的问题,但没有找到具体问题在哪。故训练出现中断的情况,一般采用resume_from继续训练,最后的结果似乎也没有受到影响。
感谢对此代码的完善以及commits !!!