PaddlePaddle / PaddleClas

A treasure chest for visual classification and recognition powered by PaddlePaddle
Apache License 2.0
5.42k stars 1.16k forks source link

长期训练host端内存耗尽 #2860

Open zhurou603 opened 1 year ago

zhurou603 commented 1 year ago

欢迎您使用PaddleClas并反馈相关问题,非常感谢您对PaddleClas的贡献! 提出issue时,辛苦您提供以下信息,方便我们快速定位问题并及时有效地解决您的问题:

  1. PaddleClas版本以及PaddlePaddle版本:请您提供您使用的版本号或分支信息,如PaddleClas release/2.2和PaddlePaddle 2.1.0
  2. 涉及的其他产品使用的版本号:如您在使用PaddleClas的同时还在使用其他产品,如PaddleServing、PaddleInference等,请您提供其版本号
  3. 训练环境信息: a. 具体操作系统,如Linux/Windows/MacOS b. Python版本号,如Python3.6/7/8 c. CUDA/cuDNN版本, 如CUDA10.2/cuDNN 7.6.5等
  4. 完整的代码(相比于repo中代码,有改动的地方)、详细的错误信息及相关log

image image image image image image

现象: 长期训练resnet-50,每个epoch的eval以及训练都会分配内存,并且没有释放?导致最后内存满了? 是有内存泄露吗?还是什么

zhurou603 commented 1 year ago

使用的是ImageNetDataset

KimBioInfoStudio commented 1 year ago

使用的是纯 CPU 还是 GPU 或者 custom-device 呢?

zhurou603 commented 1 year ago

custom device

---原始邮件--- 发件人: "Kim @.> 发送时间: 2023年7月10日(周一) 中午11:15 收件人: @.>; 抄送: @.**@.>; 主题: Re: [PaddlePaddle/PaddleClas] 长期训练host端内存耗尽 (Issue #2860)

使用的是纯 CPU 还是 GPU 或者 custom-device 呢?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

zhurou603 commented 1 year ago

测试了一下GPU应该也是在涨的,看上去大概率和dataloader关系很大

zhurou603 commented 1 year ago

看起来是每次train完一个epoch之后进行eval时,就会涨一波内存,并且没有释放。

KimBioInfoStudio commented 1 year ago

看起来是每次train完一个epoch之后进行eval时,就会涨一波内存,并且没有释放。

我这边也遇到了同样的问题https://github.com/PaddlePaddle/PaddleCustomDevice/issues/670 可以 https://github.com/PaddlePaddle/PaddleCustomDevice/blob/develop/backends/intel_gpu/runtime/runtime.cc#L250 一样加一个 VLOG(); 抓一下 CustomDevice 的 Allocate /Deallcate 的调用

zhurou603 commented 1 year ago

我遇到的是主机内存,不是custom device的显存

TingquanGao commented 1 year ago

我没能复现该问题。想问下用的paddle版本是多少,paddleclas版本/分支是多少?

zhurou603 commented 1 year ago

image

zhurou603 commented 1 year ago

我没能复现该问题。想问下用的paddle版本是多少,paddleclas版本/分支是多少?

和另一个issue现象应该是一样的,还说了在Q2修复,已经排期了,内部可以确认一下?

zhurou603 commented 1 year ago

image https://github.com/PaddlePaddle/Paddle/issues/48964

kamiLight commented 1 year ago

这个问题有进展了吗,我也遇到了同样的问题,训练时间一长dataloader就要被kill掉

zhurou603 commented 1 year ago

这个问题有进展了吗,我也遇到了同样的问题,训练时间一长dataloader就要被kill掉

官方还没有回复

TingquanGao commented 1 year ago

我还是没能复现该问题,我这边的测试环境:PaddleClas release/2.5分支(commit id: a4db6f11bf2729080bb6030a8215b5198b78cec2),PaddlePaddle-gpu 2.5.0.post102,python3.10,4卡P40机器,训练脚本是ppcls/configs/ImageNet/ResNet/ResNet50_amp_O1.yaml,只修改了DataLoader.Eval.loader.num_workers=2

每个epoch只训练100个iter,训练到30epoch,内存占用没有出现一直增长的现象

zhurou603 commented 1 year ago

我尝试在这上面复现一下

---原始邮件--- 发件人: "Tingquan @.> 发送时间: 2023年7月21日(周五) 晚上7:30 收件人: @.>; 抄送: @.**@.>; 主题: Re: [PaddlePaddle/PaddleClas] 长期训练host端内存耗尽 (Issue #2860)

我还是没能复现该问题,我这边的测试环境:PaddleClas release/2.5分支,PaddlePaddle-gpu 2.5.0.post102,python3.10,4卡P40机器,训练脚本是ppcls/configs/ImageNet/ResNet/ResNet50_amp_O1.yaml,只修改了DataLoader.Eval.loader.num_workers=2

每个epoch只训练100个iter,训练到30epoch,内存占用没有出现一直增长的现象

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

zhurou603 commented 1 year ago

我还是没能复现该问题,我这边的测试环境:PaddleClas release/2.5分支(commit id: a4db6f1),PaddlePaddle-gpu 2.5.0.post102,python3.10,4卡P40机器,训练脚本是ppcls/configs/ImageNet/ResNet/ResNet50_amp_O1.yaml,只修改了DataLoader.Eval.loader.num_workers=2

每个epoch只训练100个iter,训练到30epoch,内存占用没有出现一直增长的现象

请问也是imagenet数据集么

zhurou603 commented 1 year ago

我还是没能复现该问题,我这边的测试环境:PaddleClas release/2.5分支(commit id: a4db6f1),PaddlePaddle-gpu 2.5.0.post102,python3.10,4卡P40机器,训练脚本是ppcls/configs/ImageNet/ResNet/ResNet50_amp_O1.yaml,只修改了DataLoader.Eval.loader.num_workers=2

每个epoch只训练100个iter,训练到30epoch,内存占用没有出现一直增长的现象

你好,你的配置还是可以复现的,需要关闭一下use_dali image

zhurou603 commented 1 year ago

image image image