算力平台:
T-GATE
T-GATE 通过在交叉注意力计算收敛后跳过该计算,加速 Stable Diffusion、PixArt 和 Latency Consistency Model 管道的推理。此方法不需要任何额外的训练,并且可以将推理速度提高 10-50%。T-GATE 还兼容其他优化方法,如 DeepCache。
在开始之前,请确保你已安装 T-GATE。
bash
pip install tgate
pip install -U torch diffusers transformers accelerate DeepCache
要使用 T-GATE 与管道配合,你需要使用其对应的加载器。
Pipeline | T-GATE Loader |
---|---|
PixArt | TgatePixArtLoader |
Stable Diffusion XL | TgateSDXLLoader |
Stable Diffusion XL + DeepCache | TgateSDXLDeepCacheLoader |
Stable Diffusion | TgateSDLoader |
Stable Diffusion + DeepCache | TgateSDDeepCacheLoader |
接下来,创建一个 TgateLoader
,并设置管道、门步骤(停止计算交叉注意力的时间步骤)和推理步骤的数量。然后在管道上调用 tgate
方法,传入提示、门步骤和推理步骤的数量。
让我们看看如何为几种不同的管道启用这一功能。
T-GATE 还支持 [StableDiffusionPipeline
] 和 PixArt-alpha/PixArt-LCM-XL-2-1024-MS。
基准测试
Model | MACs | Param | Latency | Zero-shot 10K-FID on MS-COCO |
---|---|---|---|---|
SD-1.5 | 16.938T | 859.520M | 7.032s | 23.927 |
SD-1.5 w/ T-GATE | 9.875T | 815.557M | 4.313s | 20.789 |
SD-2.1 | 38.041T | 865.785M | 16.121s | 22.609 |
SD-2.1 w/ T-GATE | 22.208T | 815.433 M | 9.878s | 19.940 |
SD-XL | 149.438T | 2.570B | 53.187s | 24.628 |
SD-XL w/ T-GATE | 84.438T | 2.024B | 27.932s | 22.738 |
Pixart-Alpha | 107.031T | 611.350M | 61.502s | 38.669 |
Pixart-Alpha w/ T-GATE | 65.318T | 462.585M | 37.867s | 35.825 |
DeepCache (SD-XL) | 57.888T | - | 19.931s | 23.755 |
DeepCache w/ T-GATE | 43.868T | - | 14.666s | 23.999 |
LCM (SD-XL) | 11.955T | 2.570B | 3.805s | 25.044 |
LCM w/ T-GATE | 11.171T | 2.024B | 3.533s | 25.028 |
LCM (Pixart-Alpha) | 8.563T | 611.350M | 4.733s | 36.086 |
LCM w/ T-GATE | 7.623T | 462.585M | 4.543s | 37.048 |
延迟在 NVIDIA 1080TI 上进行测试,MACs 和 Params 通过 calflops 计算,FID 通过 PytorchFID 计算。