Link-Li / Balanced-DataParallel

这里是改进了pytorch的DataParallel, 用来平衡第一个GPU的显存使用量
230 stars 51 forks source link

使用后还是不平衡 #8

Closed mynewstart closed 3 years ago

mynewstart commented 3 years ago

单个GPU只能跑一个1 batch,所以将gpusz设为0,总共的batch为1。但是这样却发现跑不了了。 运行一个gpu时,bz=1,gpu占用量11750/12196 运行两个gpu, bz=1,gpu0=0,gpu占用: gpu0:12179 gpu1:5245

Link-Li commented 3 years ago

当你用一条数据训练的时候,显存就达到了11gb,说明你的模型很大。而且你使用两块GPU进行计算的时候,第一块GPU的显存占用量肯定会增加,所以也不奇怪了。

mynewstart commented 3 years ago

当你用一条数据训练的时候,显存就达到了11gb,说明你的模型很大。而且你使用两块GPU进行计算的时候,第一块GPU的显存占用量肯定会增加,所以也不奇怪了。

但是gpu0不应该只是在计算梯度的时候使用吗,还有其他什么操作会增加gpu0的显存量吗?

Link-Li commented 3 years ago

我也不是很了解pytorch占用显存的机制,但是从我做实验的经验来看,pytorch占用的显存并不会释放,除非程序结束

mynewstart commented 3 years ago

我也不是很了解pytorch占用显存的机制,但是从我做实验的经验来看,pytorch占用的显存并不会释放,除非程序结束

是的,我也有这个体会。我尝试再研究下,感谢回答