2xRadeon AI PRO R9700 跑 MiniMax H3:Dual-Sage 双卡优化 + 1.5× 高分辨率实测
2× AMD Radeon AI PRO R9700 32GB 跑 MiniMax H3。
目标:利用两张 GPU 的算力生成 H3 视频
工作流:
864×480 H3 PASS1
→ 1.5× Learned Latent Upscale
→ 1312×736 H3 PASS2 refinement
实测结果:
| 时长 | Frames | PASS2 分辨率 | PASS2 | 总时间 | 结果 |
|---|---|---|---|---|---|
| 10s | 243 | 1312×736 | 72.62 s/it | 10:48 | 成功 |
| 12s | 294 | 1312×736 | 95.43 s/it | 13:38 | 成功 |
| 15s | ~360 | 1312×736 | ~117 s/it(OOM 前) | — | OOM |
10 秒稳定,12 秒可以完成但接近 32GB 显存上限,15 秒目前在 PASS2 OOM。
一、机器配置
| 硬件 | 配置 |
|---|---|
| CPU | AMD Ryzen 5 5600X |
| 主板 | ASUS ROG Strix B550-E |
| PCIe | PCIe 4.0 x8/x8 |
| GPU | 2× AMD Radeon AI PRO R9700 32GB |
| GPU 架构 | RDNA4 / gfx1201 |
| 内存 | 64GB |
| 系统 | Ubuntu 26.04 LTS |
ROCm / ComfyUI 环境
| 项目 | 配置 |
|---|---|
| ComfyUI | Docker |
| Docker OS | Ubuntu 24.04.4 LTS |
| Kernel | 7.0.0-30-generic |
| Python | 3.12.3 |
| ROCm | 7.2.4 |
| PyTorch | 2.9.1+rocm7.2.4 |
| GPU | 2× gfx1201 |
| VRAM | 31.86 GiB × 2 |
| SageAttention | ROCm PR #381 |
| MultiGPU | ComfyUI-MultiGPU |
PyTorch 在 ROCm 下仍使用 torch.cuda API,所以日志中的 cuda:0 / cuda:1 实际对应两张 AMD R9700。
二、双 GPU 分工
两张 R9700 并不是简单平均分配整个 H3 模型:
| GPU0 | GPU1 |
|---|---|
| Text Encoder | MiniMax H3 DiT |
| Video VAE | Sampler |
| Learned Latent Upscaler | Dual-Sage root |
| Dual-Sage helper |
Dual-Sage 在 SageAttention ROCm PR #381 基础上,把 56 个 attention heads 拆成:
GPU1 / root → 28 heads
GPU0 / helper → 28 heads
Synthetic Sage benchmark:
| 项目 | 结果 |
|---|---|
| Dual-Sage split | 28+28 |
| Synthetic speedup | 1.5675× |
这里的 1.5675× 是 Attention benchmark,不是整个 H3 workflow 的加速比。
三、工作流
| 项目 | 配置 |
|---|---|
| H3 Model | 10Eros_Max_h3_TURBO-hybrid_beta4_int8_convrot.safetensors |
| Quantisation | INT8 / Mixed Precision |
| Attention | SageAttention ROCm PR #381 |
| Multi-GPU Attention | Dual-Sage 28+28 |
| FFN | FeedForward Chunking |
| PASS1 | 864×480 |
| Latent Upscale | 1.5× |
| PASS2 | 1312×736 |
工作流:
864×480
→ H3 PASS1
→ Learned Latent Upscale 1.5×
→ 1312×736
→ H3 PASS2 refinement
→ VAE Decode
重点是 upscale 后重新进入 H3 做第二次 refinement,而不是 VAE decode 后做普通视频 upscale。
七、目前结论
| Duration | Frames | PASS2 | Speed | GPU1 VRAM | Result |
|---|---|---|---|---|---|
| 10s | 243 | 1312×736 | 72.62 s/it | ~27.5 GB | 成功 |
| 12s | 294 | 1312×736 | 95.43 s/it | ~30.3 GB | 成功 |
| 15s | 360 | 1312×736 | ~117 s/it | ~31.2 GB+ | OOM |
OOM 并不是发生在 SageAttention,而是在 PASS2 的 QKV / LoRA 路径:
qkv_proj(x)
→ LoRA adapter
→ out * scale
→ OOM
当时 PyTorch 需要额外申请约:
4.18 GiB
所以目前 15 秒的主要限制是 GPU1 的 temporary activation VRAM peak。
目前已经实现:
2× R9700 32GB
+ ROCm 7.2.4
+ SageAttention ROCm PR #381
+ Dual-Sage 28+28
+ GPU0/GPU1 workload separation
+ 864×480 PASS1
+ 1.5× Latent Upscale
+ 1312×736 PASS2
10 秒稳定完成,12 秒已经验证可以完成;15 秒目前卡在 PASS2 QKV / LoRA 的显存峰值。