发布于 

CUDA优化001. TensorRT加速SD的优化

给看到的TensorRT加速AI推理2023 Hackson视频做个笔记Video

SD模型结构:

  • Unet
  • ControlNet
  • VAE
  • Schedule latent(未入图)

SD

优化方法:

步骤 优化操作 时延效果 分析
1 Export unet and controlnet to trt engine 2600ms→634ms 使用GPU执行
2 Use batch size 2 634ms→479ms 多batch增加计算密度
3 Remove duplicate compute in graph 479ms→472ms 消除冗余计算
4 Put the scheduler update logic in trt
5 Fuse controlnet, unet and scheduler logic to 1 engine 472ms→450ms trt8.6以后可以自动找出模型并行的部分,使用mutilstream并行执行
6 Cuda graph 450ms→425ms 单个CPU操作可发射多个GPU操作,减少KernelLaunch
7 Use plugins 425ms→404ms MHA融合算子等
8 Multi stream 404ms→393ms 将单个engine划分成3个可并行的engine,在第5步自动并行基础上提高并行度
9 Use trt 9.1 393→390ms MHA在9.1有更快实现