衡量显卡在 Stable Diffusion 中的性能
一、核心指标与单位
- 速度类
- it/s(iterations per second):每秒迭代次数,最直观反映去噪计算吞吐。示例:若200 步耗时15 秒,则 it/s ≈ 13.3。
- s/张:单张图耗时,便于与业务时效对齐。
- 张/分钟:吞吐率,便于横向对比不同显卡/设置。
- 显存与稳定性
- VRAM 占用(GB):决定可跑的分辨率、批大小与是否能用 Hires.fix/ControlNet 等。
- 是否触发系统内存/磁盘交换:爆显存后速度会骤降(带宽差、PCIe 交换开销大)。
- 画质相关(与速度强耦合)
- 分辨率(如 512×512、768×768、1024×1024)、采样步数、采样器、Hires.fix/放大倍数、ControlNet 模型与数量都会改变速度与显存占用。为公平对比,评测需固定这些变量。
二、标准化测试流程
- 环境与实现
- 推荐使用 AUTOMATIC1111 WebUI 或 diffusers;启用 xformers 加速;PyTorch + cuDNN/cuBLAS 保持更新。
- 固定参数
- 模型:优先 SD 1.5(生态最稳,便于横向对比);也可补充 SDXL 专项对比。
- 采样器与步数:固定为 Euler a / Euler,20–30 步(步数主要影响耗时,对 it/s 影响小)。
- 分辨率与批次:至少覆盖 512×512 与 768×768;batch size=1 为主,必要时报告 batch=2/4 的扩展性。
- 其他:关闭/统一 Hires.fix、ControlNet、Tiled VAE/Tiled Diffusion 等插件变量。
- 运行与统计
- 预热 1–3 次后开始计时;每组 3–5 次取平均;记录 it/s、s/张、张/分钟、VRAM 峰值。
- 若显存不足导致降速,需明确记录“是否爆显存/是否走系统内存”。
三、不同场景的衡量重点
- 文生图(底模直出)
- 关注 it/s 与张/分钟;分辨率提升会显著拉低速度。
- 人物模型 + LoRA + Hires.fix
- 同时考察 显存占用与吞吐,显存瓶颈更常见;更大显存常带来可观提速。
- ControlNet Tile 高清修复
- 负载重、显存峰值高;适合检验 高分辨率细节生成与稳定性。
- 典型现象
- 在 8GB 显存边界附近,稍增负载(如 Hires.fix)就会触发系统内存交换,速度显著下降;更大显存(如 12GB+)在此类场景优势明显。
四、硬件与平台差异要点
- NVIDIA vs AMD vs Intel
- NVIDIA(CUDA + cuDNN/xformers) 在 WebUI 生态中整体最快、最稳;AMD 在 Linux + ROCm 下体验更佳,Windows 常见 DirectML 路径效率偏低;Intel Arc 近年进步明显,但在高分辨率/复杂负载下仍普遍落后于同级别 NVIDIA。
- 架构与精度
- Tensor Core 是决定性因素;Stable Diffusion 常用 FP16 推理(显存占用与速度更优)。RTX 40 系列引入 FP8/Transformer Engine,在兼容路径下可进一步加速;SDXL 对 BF16 更友好(部分训练/优化路径受益)。
- 显存与带宽
- 显存容量决定“能不能画”,带宽与内存子系统决定“画得快不快”;在更高分辨率下,带宽重要性上升。
五、快速判读与选型建议
- 快速判读
- 以 it/s 或 张/分钟 为主指标;在相同分辨率/步数/采样器下对比。
- 同时查看 VRAM 峰值与是否发生系统内存交换;爆显存的速度数据不具备可比性。
- 若加入 Hires.fix/ControlNet,需单独报告该场景数据,避免与纯文生图混比。
- 选型参考(经验门槛)
- 8GB 显存:可流畅跑 SD 1.5 / 512×512 与多数日常玩法;复杂场景需谨慎控制分辨率与插件。
- 12GB 显存:覆盖 SDXL / 768×768 / 轻量 Hires.fix 与常见 ControlNet 工作流,容错更高。
- 24GB 显存:适合 大图、多 LoRA/多 ControlNet、批量生成 与更高分辨率探索。