Q
[PaddlePaddle/PaddleOCR]显存占用远大于模型大小
2
请提供下述完整信息以便快速定位问题/Please provide the following information to quickly locate the problem
- 系统环境/System Environment:
- 版本号/Version:Paddle: PaddleOCR: 问题相关组件/Related components:
- 运行指令/Command Code:
- 完整报错/Complete Error Message:
问题:
- 看着下载的模型也只有20M,但显存占用在810M,为什么这么大呢?是一次占用了最大可能的大小?能否设置?
- 多路并发的时候,怎么共享权重呢?目前我并发了4个,就得占4个810M的显存,怎么样让4个线程共享同一个模型参数?
A
回答
8
显存的占用不仅仅取决于模型的大小,还与模型结构、批量大小等有关。
6
显存的占用不仅仅取决于模型的大小,还与模型结构、批量大小等有关。
训练ppocrV4的rec(hgent)和det(teacher)需要多大显存啊,老师,btach size较小的情况下
8
为什么cpu内存占用也会增加好几个G。按理说,模型不是全都加载到GPU了吗?
5
为什么cpu内存占用也会增加好几个G。按理说,模型不是全都加载到GPU了吗?
读取图像是从内存到显存的,跟bs有关
0
就是在不跑的时候,也会占用好几个G. 从模型初始化到就绪,发现一直占着好几G的cpu内存. GPU占810M,CPU内存占2个G左右。从启动以后就一直占着,不跑也一直占着。就算跑,一副图也不会占这么大把?
3
显存的占用不仅仅取决于模型的大小,还与模型结构、批量大小等有关。
训练ppocrV4的rec(hgent)和det(teacher)需要多大显存啊,老师,btach size较小的情况下
微调det db++的情况下batch size 16的情况下 显存大概消耗 18G, 这两个模型可以根据机器情况测一下
2
我可能忘说了,是在推理的情况下,不是在训练的情况下
9
显存的占用不仅仅取决于模型的大小,还与模型结构、批量大小等有关。
训练ppocrV4的rec(hgent)和det(teacher)需要多大显存啊,老师,btach size较小的情况下
微调det db++的情况下batch size 16的情况下 显存大概消耗 18G, 这两个模型可以根据机器情况测一下
谢谢老师
9
我可能忘说了,是在推理的情况下,不是在训练的情况下
我这边也很大,你可以用异步并发的方式,起一个服务调一个卡就可以了
8
就是为什么CPU内存占用会这么多,跑GPU不是应该全都加载到GPU上了吗?是什么导致CPU占用?
9
就是在不跑的时候,也会占用好几个G. 从模型初始化到就绪,发现一直占着好几G的cpu内存. GPU占810M,CPU内存占2个G左右。从启动以后就一直占着,不跑也一直占着。就算跑,一副图也不会占这么大把?
框架的加载,数据的预处理后处理等等都是在CPU阶段执行的,因此会占用比较大的内存,显存占用是正常的,输入图像大小的不同,也会导致推理阶段显存使用的不同。
6
但没有跑推理时,也一直占用着,主要是框架的一些占用吗?
5
框架会自动分配一块显存用于推理,这块显存 / 内存被框架占有了,在未预测时候不会给系统,看起来占用多,但是下次推理会更快。
只有在退出进程后才会完全释放。
5