CVPR2024 | 加速Diffusion,韩松团队提出分布式并行推理方案DistriFusion,加速6.1倍,质量不下降,已开源

本文介绍了一种名为DistriFusion的方法,通过在多个GPU上并行计算图像补丁,有效解决高分辨率图像生成的计算挑战。通过置换补丁并行性,减少通信开销,实现在8台NVIDIAA100上比单机快6.1倍,同时保持图像质量。
摘要由CSDN通过智能技术生成

https://arxiv.org/pdf/2402.19481.pdf
https://github.com/mit-han-lab/distrifuser

本文概述

扩散模型在合成高质量图像方面取得了巨大成功。然而,由于巨大的计算成本,利用扩散模型生成高分辨率图像仍然具有挑战性,导致交互式应用程序的延迟过高。在本文中,我们提出DistriFusion通过利用多个 GPU 的并行性来解决这个问题。我们的方法将模型输入拆分为多个块,并将每个块分配给GPU

然而,这样的算法最基本实现会破坏补丁之间的交互并失去保真度,而合并这样的交互将产生巨大的通信开销。为了克服这个困境,我们观察到相邻扩散步骤的输入之间的高度相似性,并提出置换补丁并行性,它通过复用前一步计算的特征并利用扩散过程的顺序特性为当前步提供上下文信息。因此,我们的方法支持异步通信,可以通过计算进行管道化。大量实验表明,我们的方法可以应用于最新的 Stable Diffusion XL,且质量不会下降,并且与 1 台相比,8 台 NVIDIA A100 上的速度提升高达 6.1×。

本文方案

DistriFusion 的关键思想是通过将图像分割成补丁来跨设备并行计算。这可以通过以下两种方式来完成:(1)独立计算补丁并将它们拼接在一起,或者(2)在补丁之间同步通信中间激活。然而,第一种方法会导致每个补丁的边界处出现明显的差异,因为它们之间缺乏相互作用(见图 1 和图 2(b))。另一方面,第二种方法会产生过多的通信开销,从而抵消了并行处理的好处。

为了应对这些挑战,我们提出了一种新的并行范例,即置换补丁并行,它利用扩散模型的顺序性质来重叠通信和计算。我们的主要见解是重用先前扩散步骤中稍微过时或“陈旧”的激活,以促进补丁之间的交互,我们将其描述为激活位移。这是基于连续去噪步骤的输入相对相似的观察。因此,在某一层计算每个补丁的激活不依赖于其他补丁的新激活,从而允许通信隐藏在后续层的计算中。

本文实验

推荐阅读

  • 28
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIWalker-Happy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值