Back to blog

AsyncDiff: Parallelizing Diffusion Models by Asynchronous Denoising

通用分布式加速框架,通过异步去噪实现扩散模型的多设备并行推理

AsyncDiff: Parallelizing Diffusion Models by Asynchronous Denoising

一、论文概述

项目内容
标题AsyncDiff: Parallelizing Diffusion Models by Asynchronous Denoising
作者Zigeng Chen, Xinyin Ma, Gongfan Fang, Zhenxiong Tan, Xinchao Wang
论文arXiv:2406.06911
发布2024-06-11
主题cs.CV (Computer Vision and Pattern Recognition)
关联DeepCache/Learning-to-Cache同一作者组的工作

二、核心思想

问题定义

扩散模型因其多步顺序去噪特性而面临高累积延迟问题,无法进行并行计算。现有的加速方法主要关注减少采样步数或单步优化,但无法充分利用多设备的计算资源。

核心问题:如何通过模型并行化,在多设备上实现扩散推理的真正并行?

核心观察

相邻时间步的隐藏状态高度相似:

与DeepCache的观察类似,扩散模型相邻步骤之间的隐藏特征具有显著的时间一致性。这为打破顺序依赖链提供了可能。

解决方案概述

AsyncDiff:通用的、即插即用的分布式加速框架。

核心思想:

  • 将去噪模型分割为多个组件,分配到不同设备
  • 利用异步去噪打破组件间的依赖链
  • 通过步进去噪(Stride Denoising)进一步提升效率

三、技术架构

整体框架

Teaser结果

Figure 1: AsyncDiff在Stable Diffusion XL上实现2.8倍加速。

并行计算概念

并行概念

Figure 2: 通过预先准备每个组件的输入,实现去噪模型的并行计算。

异步去噪过程

异步去噪概述

Figure 3: 异步去噪过程概述。

关键机制:

  1. 热身阶段(Warm-up):前 ww 步执行完整顺序推理
  2. 异步阶段:后续步骤利用前一步的缓存特征打破依赖链
  3. 组件并行:NN 个分割的组件在多设备上同时处理

步进去噪

步进去噪

Figure 4: 步进去噪示意图(步幅=2)。

步进去噪:通过单次并行计算完成多个去噪步骤。

  • 常规异步去噪:每轮并行完成1步
  • 步进去噪:每轮并行完成 SS 步
  • 通信次数从 TT 降至 T/ST/S

核心公式

标准顺序去噪:

ϵt=ϵθN(ϵθN−1(…ϵθ2(ϵθ1(xt+N−1,t+N−1),t+N−2)…,t+1),t)\epsilon_t = \epsilon_\theta^N(\epsilon_\theta^{N-1}(\ldots\epsilon_\theta^2(\epsilon_\theta^1(x_{t+N-1}, t+N-1), t+N-2)\ldots, t+1), t)

异步去噪:打破依赖链,每个组件使用前一步的缓存输出

模型并行复杂度:

Casy(t)=max⁡(C(ϵθ1),C(ϵθ2),…,C(ϵθN))+C(comm.)C_{asy}(t) = \max(C(\epsilon_\theta^1), C(\epsilon_\theta^2), \ldots, C(\epsilon_\theta^N)) + C(\text{comm.})

Casy(t)≈Cseq(t)N+C(comm.)C_{asy}(t) \approx \frac{C_{seq}(t)}{N} + C(\text{comm.})

多设备通信

步进去噪完整示意

Figure 7: 结合步进去噪的异步扩散模型完整示意图。

通信优化:

  • 使用广播(broadcast)机制传递缓存特征
  • 步进去噪减少通信次数
  • 通信开销通常仅占总时间的4-14%

四、实验结果

文本到图像生成

Table 1: 三个文本到图像扩散模型的定量评估

基础模型配置设备数MACs↓延迟↓加速比↑CLIP↑FID↓LPIPS↓
SD 2.1原始176T5.51s1.0×31.6027.89–
N=2 S=1238T3.03s1.8×31.5927.790.212
N=3 S=1325T2.41s2.3×31.5628.000.276
N=4 S=1419T2.10s2.6×31.4028.280.313
N=2 S=2319T1.82s3.0×31.4328.550.346
N=3 S=2413T1.35s4.0×31.2229.410.378
SD 1.5原始134T2.70s1.0×30.6329.96–
N=2 S=1217T1.52s1.8×30.6229.940.199
N=3 S=246T0.72s3.7×30.1730.890.381
SDXL原始1299T13.81s1.0×32.3327.43–
N=2 S=12150T7.43s1.9×32.3127.530.225
N=4 S=1475T4.94s2.8×32.2427.750.355

关键结果:

  • SD 2.1: 4.0倍加速,CLIP仅下降0.38
  • SD 1.5: 3.7倍加速,CLIP仅下降0.46
  • SDXL: 2.8倍加速,CLIP仅下降0.09

Warm-up步数影响

Table 2: Warm-up步数对像素级一致性的影响

配置SD 2.1SD 1.5SDXL
加速比↑CLIP↑LPIPS↓
原始1.0×31.60–
Warm-up=33.5×31.260.329
Warm-up=53.1×31.270.277
Warm-up=92.7×31.400.194
Warm-up=112.4×31.450.163

关键发现:

  • 更多Warm-up步数 → 更好的像素级一致性(更低LPIPS)
  • 但会降低加速比
  • 存在速度-一致性权衡

与其他并行方法对比

Table 3: 与其他并行加速方法的对比

方法加速比↑设备数MACs↓内存↓CLIP↑FID↓LPIPS↓
原始1.0×176T5240MB31.6027.87–
Faster Diffusion1.6×157T9692MB30.8429.950.348
Distrifusion1.6×238T6538MB31.5927.890.018
AsyncDiff1.6×244T5450MB31.5927.790.094
Distrifusion2.3×419T7086MB31.4327.970.271
AsyncDiff2.3×320T5516MB31.4927.710.212
Distrifusion2.7×810T7280MB31.3128.120.293
AsyncDiff2.7×414T5580MB31.4028.030.194

关键优势:

  • 更少设备:AsyncDiff用4 GPU达到Distrifusion 8 GPU的效果
  • 更少内存:内存需求接近原始模型,Distrifusion显著增加
  • 更好质量:CLIP Score和FID均优于Distrifusion

与Distrifusion质量对比

Distrifusion对比

Figure 6: 与Distrifusion在SD 2.1上的质量对比。相同加速比下,AsyncDiff生成质量更好。

视频生成结果

Table 4: 文本到视频和图像到视频扩散模型的评估

基础模型配置设备数MACs↓延迟↓加速比↑CLIP↑
AnimateDiff原始1786T43.5s1.0×30.65
(文本到视频)N=2 S=12393T24.5s1.8×30.65
N=3 S=13262T19.1s2.3×30.54
N=2 S=23197T14.2s3.0×30.32
N=3 S=24131T11.5s3.8×30.20
SVD原始13221T184s1.0×26.88
(图像到视频)N=2 S=121611T101s1.8×26.66
N=3 S=131074T80s2.3×26.56
N=4 S=14805T68s2.7×26.19

关键结果:

  • AnimateDiff: 3.8倍加速,CLIP仅下降0.45
  • SVD: 2.7倍加速,CLIP仅下降0.69
  • 视频生成受益更大(原始延迟184s→68s)

步进去噪效果

Table 5: 步进去噪在SD 2.1上的效果

配置MACs↓延迟↓加速比↑通信次数↓通信延迟↓CLIP↑
3设备 w/o stride25T2.41s2.3×49次0.23s(9.5%)31.56
3设备 w/ stride19T1.82s3.0×25次0.12s(6.6%)31.43
4设备 w/o stride19T2.10s2.6×49次0.40s(19.0%)31.40
4设备 w/ stride13T1.35s4.0×25次0.10s(7.4%)31.22

关键发现:

  • 步进去噪将通信次数从49降至25
  • 4设备场景下:2.6× → 4.0×加速

通信开销分析

Table 6: SD 2.1上的时间成本对比

配置总时间运行时间通信时间比例
N=2 S=13.03s2.90s0.13s4.30%
N=3 S=12.41s2.18s0.23s9.54%
N=4 S=12.10s1.80s0.30s14.29%
N=2 S=21.82s1.70s0.12s6.59%
N=3 S=21.35s1.25s0.10s7.40%

关键发现:

  • 通信开销通常仅占4-14%
  • 步进去噪有效降低通信比例

不同步数下的加速比

Table 7: SD 2.1在不同去噪步数下的加速比

配置25步50步100步
原始1.0× (2.89s)1.0× (5.51s)1.0× (10.96s)
N=2 S=11.7×1.8×1.8×
N=3 S=12.1×2.3×2.3×
N=4 S=12.4×2.6×2.7×
N=2 S=22.7×3.0×3.2×
N=3 S=23.4×4.0×4.3×

关键发现:

  • 步数越多,加速比越高
  • 100步时最高可达4.3倍加速

定性结果

定性结果

Figure 5: (a) AsyncDiff显著加速去噪过程,对生成质量影响最小。(b) 视频生成结果。

SD/SDXL定性结果

Figure 8: SD 2.1和SDXL在不同配置下的定性结果。

视频生成定性结果

AnimateDiff结果1

AnimateDiff结果2

AnimateDiff结果3

SVD结果

五、核心创新

创新点说明实验验证
异步去噪打破顺序依赖链,实现组件并行所有实验验证
步进去噪单次并行完成多步去噪Table 5: 通信次数减半
通用框架即插即用,适用于多种模型SD/SDXL/AnimateDiff/SVD
模型并行真正的分布式推理,非数据并行与Distrifusion对比
低通信开销通信仅占4-14%Table 6验证

六、与相关方法对比

方法并行方式设备需求内存开销AsyncDiff优势
DistrifusionPatch并行8 GPU显著增加更少设备,更少内存
Faster Diffusion编码器传播1 GPU翻倍质量更好
ParaDiGMSPicard迭代--实际加速比更高
DeepCache时间冗余1 GPU不变可叠加使用
DDIM/DPM-Solver减少步数1 GPU不变可叠加使用

七、局限性

  1. 通信依赖:设备间通信能力影响性能
  2. 模型依赖:依赖预训练扩散模型
  3. Warm-up开销:需要少量顺序步骤初始化
  4. 内存占用:每设备需存储完整组件

八、总结

核心贡献

  1. 新范式:首次实现扩散模型的真正模型并行化
  2. 异步去噪:利用时间冗余打破顺序依赖链
  3. 步进去噪:进一步减少通信次数,提升效率
  4. 广泛验证:在图像和视频生成模型上验证有效性

性能总结

模型最大加速比CLIP变化设备数
SD 2.14.0×31.60→31.22 (-0.38)4 GPU
SD 1.53.7×30.63→30.17 (-0.46)4 GPU
SDXL2.8×32.33→32.24 (-0.09)4 GPU
AnimateDiff3.8×30.65→30.20 (-0.45)4 GPU
SVD2.7×26.88→26.19 (-0.69)4 GPU

技术影响

AsyncDiff开创了扩散模型分布式推理的新方向:

  • 多GPU利用:真正实现模型并行,而非数据并行
  • 可扩展性:加速比接近设备数线性增长
  • 通用性:适用于图像和视频生成
  • 可叠加性:可与DeepCache、DDIM等方法组合使用

九、参考资源