使用Nvidia imaginaire运行项目时触发CUDA out of memory显存不足问题
问题解答
1. 4GB显存是否支持运行该项目
你当前使用的fs_vid2vid官方配置默认适配8GB及以上显存的GPU,且你的GPU还需要承担桌面显示的显存开销,默认配置下4GB显存确实不足以直接运行该项目,调整参数后可正常运行。
2. 减少PyTorch预留显存及整体显存占用的方案
- 调整PyTorch显存分配器规则,启动脚本前执行环境变量配置:
该参数会限制PyTorch单次预留的显存块大小,避免预留2.4GB这类远超实际使用的显存空间。也可以在代码入口最顶部添加:export PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128
每轮迭代结束后可手动调用import os import torch os.environ['PYTORCH_CUDA_ALLOC_CONF'] = 'max_split_size_mb:128'torch.cuda.empty_cache()释放闲置缓存。 - 升级混合精度等级,将原配置的O1级混合精度改为O2级,可降低30%左右的显存占用,直接修改yaml配置文件中
mixed_precision字段值为O2即可。 - 调低序列长度参数,将yaml中
num_frames_per_video参数从默认的10降到2-3,该参数控制单次生成的视频帧数量,调低后显存占用会显著下降。 - 开启梯度检查点功能,启动训练命令时添加
--gradient_checkpointing参数,可通过牺牲20%左右的训练速度换取40%-50%的显存占用下降。 - 训练/推理前关闭所有占用GPU的其他程序(浏览器、视频播放器等),可额外释放300-500MB显存空间。
- 推理场景下直接用
torch.no_grad()包裹推理逻辑,不需要保存梯度相关的中间张量,可降低一半以上的显存占用。
内容的提问来源于stack exchange,提问作者potu1304
相关产品推荐
相关产品推荐

