main_device 更快但更占显存,offload_device 更节省显存但略慢,根据自己的GPU显存进行选择
disabled:不启用量化,使用全精度(FP16/FP32),精度最高,占用显存最大。
fp8_e4m3fn:使用 NVIDIA FP8(格式:E4M3FN),精度较低,但能节省显存,适用于部分支持 FP8 的设备。fp8_e4m3fn_fast:fp8_e4m3fn 的加速版本,优化了计算性能,适用于追求极致推理速度的场景。
fp8_e5m2:另一种 FP8 格式(E5M2),比 E4M3FN 精度略高,速度略慢,适用于某些精度敏感任务。
一般常用上面4种,下面的很容易报错
torchao_fp8:dqTorchAO 提供的 FP8 量化(含解码器量化),为兼容 PyTorch 实现的低精度推理。
torchao_fp8dqrow:TorchAO 的逐行 FP8 解码器量化(row-wise),对内存和速度进行进一步优化。torchao_int8:dqTorchAO 提供的 INT8 解码器量化,兼容性好,显存占用小,速度快,主流量化方式。torchao_fp6:TorchAO 提供的 FP6 量化(极低精度),适合显存极其紧张的设备,画质或精度可能受影响。torchao_int4:极限压缩 INT4 量化,内存使用最小,但可能导致推理误差大,实验性使用推荐。
torchao_int8:普通的 TorchAO INT8 量化,不带解码器优化,适用于常规场景的轻量部署。
这里以kijai提供的文生视频工作流为例
disabled
fp8_e4m3fn
fp8_e4m3fn_fast
disabled---------------------------------------------------------------分割线---------------------------------------------fp8_e4m3fn
fp8_e4m3fn_fast ---------------------------------------------------------分割线---------------------------------------------fp8_e5m2
从灯条和尾灯来看,fp8_e4m3fn_fast效果最差,fp8_e5m2也不够好,没有量化的disabled情况下最好。
disabled
flash_attn_2
sageattn
从以上来看,sageattn加速效果明显而画质的影响不是很大。
disabled ----------------------分割线----------------flash_attn_2-----------------------分割线---------------sageattn