首页 Paddle框架 帖子详情
paddle GPU 显存分配问题
收藏
快速回复
Paddle框架 问答深度学习 4234 7
paddle GPU 显存分配问题
收藏
快速回复
Paddle框架 问答深度学习 4234 7

image
如图设置了比例为0.48,分配方式为auto_growth,但是实际跑任务的时候,GPU还是占了绝大多数显存。有没有一种方法控制显存占用呢?
image

0
收藏
回复
全部评论(7)
时间顺序
AIStudio784544
#2 回复于2019-12

可以参见文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/flags/memory_cn.html#flags-fraction-of-gpu-memory-to-use
FLAGS_fraction_of_gpu_memory_to_use表示分配的显存块占GPU总可用显存大小的比例。将来的显存使用将从该显存块分配。 如果显存块没有足够的gpu显存,将从gpu请求分配与显存块同样大小的新的显存块,直到gpu没有足够的显存为止。
你是要强制限制显存无论如何只占用48%么?

0
回复
AIStudio789238
#3 回复于2019-12

FLAGS_fraction_of_gpu_memory_to_use,

可以参见文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/flags/memory_cn.html#flags-fraction-of-gpu-memory-to-use
FLAGS_fraction_of_gpu_memory_to_use表示分配的显存块占GPU总可用显存大小的比例。将来的显存使用将从该显存块分配。 如果显存块没有足够的gpu显存,将从gpu请求分配与显存块同样大小的新的显存块,直到gpu没有足够的显存为止。
你是要强制限制显存无论如何只占用48%么?

这个含义是理解的,想限制显存占用,因为GPU有多人使用,想在一卡上跑多个任务。『你是要强制限制显存无论如何只占用48%么』可以这么理解

0
回复
AIStudio789238
#4 回复于2019-12

现在是在跑的任务显存占用太多,导致其他人提交不了任务。但是任务实际使用只有2G左右的显存,没必要全占满

0
回复
AIStudio784544
#5 回复于2019-12

试试加上export FLAGS_eager_delete_tensor_gb=0.0看看呢,当显存一旦出现垃圾则马上释放。
或者结合export FLAGS_fast_eager_deletion_mode=True,则是gpu显存将在CUDA内核尚未结束的情况下被释放。垃圾回收策略加快。
利于节省显存使用量。

0
回复
AIStudio789238
#6 回复于2019-12

DONE,有其他任务占用

0
回复
A
AIStudio90383
#7 回复于2021-01
试试加上export FLAGS_eager_delete_tensor_gb=0.0看看呢,当显存一旦出现垃圾则马上释放。 或者结合export FLAGS_fast_eager_deletion_mode=True,则是gpu显存将在CUDA内核尚未结束的情况下被释放。垃圾回收策略加快。 利于节省显存使用量。
展开

这个增加的export代码,是直接在终端输入,还是加入到代码中??

0
回复
淹死的鱼19
#8 回复于2024-09

Paddle内部已经支持:

hi,在paddle新版本(1.7.2+)中提供了FLAGS_gpu_memory_limit_mb的flag,可以限制单个任务的GPU显存大小,单位是MB。

参考PR:https://github.com/PaddlePaddle/Paddle/issues/24364

参考代码:https://github.com/PaddlePaddle/Paddle/blob/6e7b081e6f56175412e19968aa6f498d2d84dd18/paddle/phi/core/memory/allocation/cuda_allocator.cc#L63

 

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户