Stable Fast: 超轻量级 Stable Diffusion 推理优化框架

查看 12|回复 0
作者:nethard   
本人第一个正式开源项目,欢迎大家关注!聚焦于推理优化领域,希望能帮助到有相关模型推理加速需求的朋友,或者希望学习这方面知识的朋友。
项目主页
这是什么?
stable-fast 是一个为 HuggingFace DiffusersNVIDIA 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实现了高度优化的融合的 NHWC GroupNorm + 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)
    [td]框架[/td]
    [td]性能[/td]
    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)
    [td]框架[/td]
    [td]性能[/td]
    Vanilla PyTorch
    16 it/s
    AITemplate
    31 it/s
    TensorRT
    33 it/s
    OneFlow
    39 it/s
    Stable Fast (与 xformers & triton 共同工作)
    38 it/s
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部