THUDM / CogVideo

text and image to video generation: CogVideoX (2024) and CogVideo (ICLR 2023)
Apache License 2.0
9.29k stars 874 forks source link

如何设置使得GPU显存为固定值 #528

Closed Ttttttttyj closed 1 day ago

Ttttttttyj commented 2 days ago

纯训练不做验证,显存波动特别大,sft模式下从20多G到接近80G,波动范围特别大,如何设置能实现持续保持在最大显存占用呢?

zRzRzRzRzRzRzR commented 2 days ago

你是不是sat跑的,diffusers版本由于提前encode了,所以占用是固定,sat没办法因为是边编码边训练的,速度很慢,推荐cogvideox-factory

Ttttttttyj commented 2 days ago

非常感谢您的解答。

不好意思,我没太理解边解码边训练的意思?为什么能做到编解码边训练呢?这样导致40G左右的显存波动吗?还有一个问题就是我在SATVideoDiffusionEngine.shared_step中,注释掉了torch.cuda.empty_cache(),实现了显存固定,这样做是否会有其他相关影响呢?目前来看,训练速度非常慢,每个iteration需要耗时40s左右。

如果您能解答,将不胜感激!期待您的回复!

-----原始邮件----- 发件人:"Yuxuan.Zhang" @.> 发送时间:2024-11-20 18:06:34 (星期三) 收件人: THUDM/CogVideo @.> 抄送: Ttttttttyj @.>, Author @.> 主题: Re: [THUDM/CogVideo] 如何设置使得GPU显存为固定值 (Issue #528)

你是不是sat跑的,diffusers版本由于提前encode了,所以占用是固定,sat没办法因为是边编码边训练的,速度很慢,推荐cogvideox-factory

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

zRzRzRzRzRzRzR commented 2 days ago

因为你要先载入T5进行编码,这个是要显存的,接着你还要调用VAE进行编码。这俩的显存占用差不多是40G显存。

zRzRzRzRzRzRzR commented 2 days ago

我在SATVideoDiffusionEngine.shared_step中,注释掉了torch.cuda.empty_cache(),实现了显存固定 那相当于一直占用了编码工作的显存,但是不能解决显存利用非常低的问题,这也是我推荐你用cogvideox factory的原因

Ttttttttyj commented 2 days ago

哦哦哦,好的。感谢~