对扩散主干做 BF16

量化对象:model.model(扩散 UNet/WMAModel 主体)
This commit is contained in:
2026-01-18 17:14:16 +08:00
parent 7b499284bf
commit 2b634cde90
5 changed files with 141 additions and 75 deletions

View File

@@ -29,4 +29,45 @@ python3 psnr_score_for_challenge.py --gt_video unitree_g1_pack_camera/case1/unit
1. torch.compile + AMP + TF32 + cudnn.benchmark
2. 排查 .to()/copy/clone 的重复位置并移出循环
3. 若需要更大幅度,再换采样器/降步数
3. 若需要更大幅度,再换采样器/降步数
A100 上我推荐 BF16 优先稳定性更好、PSNR 更稳FP16 作为速度优先方案。
下面是“分模块”的 消融方案(从稳到激进):
0基线
- 全 FP32你现在就是这个
1只对扩散主干做 BF16最推荐
- 量化对象model.model扩散 UNet/WMAModel 主体)
- 保持 FP32first_stage_modelVAE 编/解码、cond_stage_model文本、embedder图像、image_proj_model
- 预期PSNR 基本不掉 or 极小波动
2+ 轻量投影/MLP 做 BF16
- 增加image_proj_model、state_projector、action_projector
- 预期:几乎不影响 PSNR
3+ 文本/图像编码做 BF16
- 增加cond_stage_model、embedder
- 预期:可能有轻微波动,通常仍可接受
4VAE 也做 BF16最容易伤 PSNR
- 增加first_stage_model
- 预期:画质/PSNR 最敏感,建议最后做消融
———
具体建议A100
- 优先 BF16稳定性好于 FP16
- 只做半精度,不做 INT 量化:保持 PSNR
- VAE 尽量 FP32最影响画质的模块