oneflow icon indicating copy to clipboard operation
oneflow copied to clipboard

静态图显存回收

Open Yaodada12 opened this issue 2 years ago • 7 comments

模型太大,采用静态图推理时显存占用很高,怎么回收显存?有没有类似这样回收显存的方法: model.to('cpu') oneflow.cuda.empty_cache()

Yaodada12 avatar Nov 21 '22 09:11 Yaodada12

try

del model

jackalcooper avatar Nov 21 '22 09:11 jackalcooper

我预编译了多个静态图,每个都可能用到,不能删除。大佬,有其他针对静态图的显存回收方法吗

Yaodada12 avatar Nov 21 '22 09:11 Yaodada12

有其他针对静态图的显存回收方法吗

现在还没有。静态图当前采用的是静态内存分配,在整个图删除后才会释放资源。

预编译很多静态图,是为了在一台机器上支持很多个模型的推理服务么

strint avatar Nov 22 '22 02:11 strint

预编译很多静态图,是为了在一台机器上支持很多个模型的推理服务么

模型输入尺寸是动态的,不想每次新的尺寸输入就编译一次(主要模型大编译时间太长),所以一次性都编译了。大佬有什么解决办法吗?

Yaodada12 avatar Nov 22 '22 02:11 Yaodada12

静态图输入尺寸是动态的

静态图下彻底解决动态 shape 的问题还在讨论中,预计在将来的版本中解决。

strint avatar Nov 22 '22 09:11 strint

静态图下彻底解决动态 shape 的问题还在讨论中,预计在将来的版本中解决。

期待!大概哪个版本能解决这个问题,大概要多场时间,比如3个月?6个月?1年?

Yaodada12 avatar Nov 23 '22 01:11 Yaodada12

静态图下彻底解决动态 shape 的问题还在讨论中,预计在将来的版本中解决。

期待!大概哪个版本能解决这个问题,大概要多场时间,比如3个月?6个月?1年?

当前有方案的调研,但是还没很紧迫的要解决这个问题。

之前推荐的解决办法是在静态图外部 pack 成固定大小的输入来规避这个问题。看这个是否有帮助。

另外在推理场景,这个动态 shape 的需求在您那里是有特别强的需求么,大致的场景是怎么样的可以描述下不。

strint avatar Nov 25 '22 02:11 strint