本人第一个正式开源项目,欢迎大家关注!聚焦于推理优化领域,希望能帮助到有相关模型推理加速需求的朋友,或者希望学习这方面知识的朋友。
这是什么?
stable-fast 是一个为 HuggingFace Diffusers 在 NVIDIA GPUs 上的超轻量级推理优化库。
stable-fast 通过利用一些关键技术和特性提供超快的推理优化:
- __CUDNN 卷积融合__:
stable-fast为各种组合的Conv + Bias + Add + Act计算模式实现了一系列功能齐全且完全兼容的 CUDNN 卷积融合运算符。 - __低精度 & 融合的 GEMM__:
stable-fast实现了一系列使用fp16精度的融合 GEMM 运算符,这比 PyTorch 的默认设置更快(以fp16读取和写入,以fp32计算)。 - __NHWC & 融合的 GroupNorm__:
stable-fast使用 OpenAI 的triton实现了高度优化的融合的 NHWCGroupNorm + GELU运算符,消除了内存格式排列运算符的需要。 - __完全追踪的模型__:
stable-fast改进了torch.jit.trace接口,使其更适合追踪复杂模型。几乎每一部分的StableDiffusionPipeline都可以被追踪并转换为 __TorchScript__。它比torch.compile更稳定,并且比torch.compile的 CPU 开销明显小,并支持 ControlNet 和 __LoRA__。 - __CUDA Graph__:
stable-fast可以将 UNet 结构捕获到 CUDA Graph 格式,当批量大小小时可以减少 CPU 开销。 - __融合的多头注意力__:
stable-fast仅仅直接使用 xformers 并使其与 TorchScript 兼容。
与其他加速库的差异
- __快速__:
stable-fast是专门为 HuggingFace Diffusers 优化的。它在所有库中都实现了最佳性能。 - __简约__:
stable-fast作为PyTorch的一个插件框架工作。它利用现有的PyTorch功能和基础设施,并与其他加速技术兼容,以及流行的微调技术和部署解决方案。
性能比较
A100 SXM 80GB (SD v1.5, 512x512, fp16)
| 框架 | 性能 |
|---|---|
| Vanilla PyTorch | 23 it/s |
| AITemplate | 44 it/s |
| TensorRT | 52 it/s |
| OneFlow | 55 it/s |
| Stable Fast (与 xformers & triton 共同工作) | 60 it/s |
RTX 3090 Ti (SD v1.5, 512x512, fp16)
| 框架 | 性能 |
|---|---|
| Vanilla PyTorch | 16 it/s |
| AITemplate | 31 it/s |
| TensorRT | 33 it/s |
| OneFlow | 39 it/s |
| Stable Fast (与 xformers & triton 共同工作) | 38 it/s |