作者:张海军,傅里叶的猫
这篇文章再来看一篇新鲜出炉的论文,是上海交大和清华大学共同发表的一篇论文。这篇论文获得了FPGA 2025最佳论文奖,是用FPGA对视频生成大模型进行加速优化,最终得到的效果非常不错。这也符合我们的预期,FPGA目前还是可以做各种工程的加速研究。在AI领域,我们之前也写过很多篇FPGA论文的解读,也基本都是加速AI算法,这篇论文是我们写的第一篇直接对视频生成大模型的推理进行了加速。
从这篇论文的内容我们也无法看出如果大模型的算法有了优化,那这篇论文中提到的方法能否快速适配新的算法,这也是FPGA目前所面临的问题,大模型的更新速度比较快,可能FPGA的开发和部署还没有稳定,新的算法就出来了。也许等大模型算法更新幅度比较小的时候,FPGA的优势就会显现出来。
论文中的具体实现方法我们就不展开讲了,有兴趣的同学可以去下载原文,也可以私信我要原文。
论文简介
这篇论文聚焦于视频生成模型(VGM)的加速优化,VGM 作为多模态大模型的代表,革新了视频内容创作,但因采用 DiT 结构,计算量极大。稀疏化虽常用,但稀疏 VGM 难以发挥 GPU 的有效吞吐量,FPGA 虽适合加速稀疏模型,可现有 FPGA 加速器处理 VGM 时吞吐量低,主要面临激活冗余大、混合精度下 DSP 性能低、在线压缩静态编译利用率低的挑战。
为应对这些挑战,论文提出 FlightVGM,这是首个结合激活稀疏化和混合精度的高效 VGM 推理 FPGA 加速器。它依据 VGM 在不同维度和层的压缩偏好进行设计。通过时空在线激活稀疏化架构,利用视频帧时空相似性动态修剪激活,降低 3.17 倍计算成本。在精度处理上,对线性层采用定点精度、注意力层保留浮点精度,并在 AMD V80 FPGA 上设计浮点 - 定点混合精度 DSP58 扩展架构,将峰值计算性能提升 3.26 倍。同时,提出动静结合的自适应调度方法,引入权重预加载和基于优先级的调度机制,提升 2.75 倍计算利用率,且调度开销可忽略不计。
最终,在 AMD V80 FPGA 上实现的 FlightVGM 性能卓越,在各类稀疏 VGM 工作负载下,性能比 NVIDIA 3090 GPU 高 1.30 倍,能效高 4.49 倍,相比最先进的定制加速器,平均性能也提高了 2.84 倍,为 VGM 的高效推理提供了创新且有效的解决方案 。
VGM介绍
VGM 在人工智能生成内容(AIGC)领域发展迅速,被视为通向通用人工智能(AGI)的重要里程碑。它能按用户提示生成创意视频,像 OpenAI 的 Sora 模型、谷歌的 Veo、字节跳动的 Dreamina 以及快手的 Kling 等都是典型代表。这些主流 VGM 大多基于 Diffusion Transformer(DiT)结构开发,该结构扩展性强,数据越多模型能力越强。
不过,VGM 发展面临诸多挑战。在计算特性上,与内存密集型的大语言模型(LLM)不同,基于 DiT 结构的 VGM 属于计算密集型。DiT 结构里的线性层带有额外批量维度,使得 VGM 运算强度比 LLM 高 40 多倍,计算资源消耗大。在硬件适配方面,稀疏化虽常用于加速计算密集型模型,但 VGM 稀疏化后在 GPU 上仍无法充分发挥性能。因为生成视频的时空相似性导致 VGM 激活存在冗余,而 GPU 的单指令多线程(SIMT)架构在处理稀疏激活时,会出现不规则内存访问和同步处理的问题,产生较大开销,致使实际与理论加速比差距高达 10 倍。FPGA 虽适合加速稀疏深度学习模型,可现有 FPGA 加速器处理 VGM 时吞吐量较低。以 AMD V80 FPGA 为例,其 FP16 峰值计算性能(PCP)与 NVIDIA 3090 GPU 相差超 21 倍,即便像 FlightLLM 这样的先进 FPGA 加速器,在 V80 FPGA 上的吞吐量也不理想。进一步深入看,VGM 还面临具体的三大挑战:大量冗余计算未被充分利用,现有加速器对 VGM 时空相似性利用不足,稀疏度低影响 GPU 吞吐量;基于 DSP 的处理引擎在混合精度下性能受限,FPGA 的 DSP58 模式配置局限导致处理引擎利用率不高;现有调度方法在在线稀疏化时计算利用率低,静态调度在在线稀疏化中无法应用,动态调度因 FPGA 嵌入式 CPU 性能和稀疏 DiT 结构问题产生过高开销。
创新点
主要创新点体现在架构设计、精度优化、调度方法三个方面。
独特的时空在线激活稀疏化架构:针对 VGMs 中存在大量冗余计算的问题,FlightVGM 提出了时空在线激活稀疏化架构。该架构同时考虑视频帧在时间和空间维度的相似性,通过定制的稀疏化和恢复单元,动态修剪激活。具体操作上,先进行帧间稀疏化,将输入激活按一定帧数分组,选取参考帧后对比其他帧的 token 与参考帧 token 的相似性,相似性超阈值的 token 计算结果可复用,减少计算量;接着进行帧内稀疏化,将每帧的 token 分块,再次通过相似性计算进一步削减计算量。这种架构有效降低了 3.17 倍的计算成本,极大提升了计算效率。
创新的混合精度 DSP58 扩展架构:考虑到 VGM 不同层对计算精度的敏感度差异,FlightVGM 提出浮点 - 定点混合精度 DSP58 扩展架构。在 AMD V80 FPGA 上,该架构针对 DSP58 只能配置为 FP16 或 INT8 模式的局限进行优化。通过过打包设计和额外电路,DSP - E 架构可在运行时灵活配置,支持两个 FP16 MAC 或四个 INT8 MAC 运算。在 FP16 模式下,利用额外逻辑恢复计算过程中的数据,确保精度;INT8 模式则复用硬件资源提升计算性能。与仅使用 FP16 的 DSP 原生设计相比,该架构将 PCP 提高了 3.26 倍。
动静结合的自适应调度方法:为解决现有调度方法在在线稀疏化时计算利用率低的问题,FlightVGM 采用动静结合的自适应调度方法。静态编译阶段完成算子融合和权重量化,动态调度阶段则依据实际工作负载动态调整算子执行顺序。调度器维护一个包含算子类型、预测 EFT 和实际 EFT 的数据库,根据激活稀疏化结果实时调整算子优先级。比如,尽早预加载权重使权重预加载和计算阶段重叠,优先执行高优先级算子,将其分配到最早可用的计算核心。通过这种方式,计算利用率提高了 2.75 倍,且调度开销可忽略不计。
论文的Evaluation
论文中精心挑选了两个基于 DiT 结构的前沿 VGM 模型 ——Latte-1 和 Open-Sora 1.2。Latte-1 专注于人类动作视频集训练,是 DiT 在视频生成任务应用的开拓者;Open-Sora 1.2 则是广泛应用的开源模型,能够生成各种宽高比的高分辨率视频。评估数据集采用 UCF-101,它涵盖了丰富的人类动作姿势数据,再结合相关演示提示,为全面评估 FlightVGM 提供了多样化的测试场景。
为了精准衡量 FlightVGM 的性能,选择了 CLIPSIM 和 VBench 这两个具有代表性的指标。CLIPSIM 用于衡量生成视频与提示的匹配程度,VBench 则聚焦于评估生成视频的整体质量,通过这两个指标,可以从不同维度对模型准确性进行量化评估。
为了凸显 FlightVGM 的优势,论文挑选了具有代表性的三类硬件作为对比基线。NVIDIA 3090 GPU 作为通用硬件的代表,以 FP16 精度运行原生 VGMs 来获取实际执行时间,并利用 nvidia-smi 工具评估其功耗。对于基于 Transformer 的 FPGA 加速器,选择了 HiSpMV 和 FlightLLM,它们都在 AMD Alveo U280 FPGA 上实现,且考虑了相同的激活稀疏化和混合精度优化,以便公平对比。对于基于 DiT 的 ASIC 加速器,选择了 InterArch 和 CMC,不仅使用它们的稀疏化方法,还将硬件参数配置与 FlightVGM 对齐,包括 PCP、内存带宽和片上缓冲区容量等关键参数。对于这些不支持最新模型的加速器,构建了周期精确的性能模拟器,经测试,模拟器结果与原始数据的差距小于 6%,确保了评估的准确性和可靠性。
FlightVGM 在 AMD V80 FPGA 上完成实现。每个 SLR 对应一个计算核心,在嵌入式 CPU 的统一调度下协同工作。V80 FPGA 配备了 32GB 的 HBM,带宽高达 819GB/s,还有 32GB 的 DDR 内存,带宽为 32GB/s,为数据传输提供了有力支持。FlightVGM 在 300MHz 频率下,实现了等效 20.3TOPS 的 INT8 PCP 和 2.8TOPS 的 FP16 PCP。通过实际运行获取 FPGA 的延迟数据,利用 ami_tool 工具精确测量功耗,为后续评估提供了准确的基础数据。
在模型准确性评估中,以原始的 FP16 精度密集模型作为参照基准,对比不同压缩方法下的模型表现。FlightVGM 采用了混合精度量化和激活稀疏化两种优化策略。在混合精度量化方面,对 DiT 块中的线性层进行量化,同时将注意力图计算和 DiT 块外的模块保持在 FP16 精度;在激活稀疏化方面,针对 QKV/O 投影和 FFN 分别设置了 0.95/0.98 和 0.92 的阈值。实验结果令人惊喜,FlightVGM 实现了 3.17 倍的端到端加速,而且与基线相比,模型准确性几乎没有损失,平均仅下降 0.008,而 INT8 量化的模型平均损失达到 0.042。从实际生成的视频效果来看,FlightVGM 生成的视频质量与原始模型几乎相同,充分证明了其在保证模型准确性的同时,有效提升了计算效率。
在性能评估环节,FlightVGM 分别与 GPU 和其他先进加速器进行对比。尽管 V80 FPGA 在 FP16 精度下的计算性能与 NVIDIA 3090 GPU 相比存在超过 21 倍的差距,但 FlightVGM 凭借对 VGM 固有稀疏性和混合精度的充分挖掘和利用,在性能和能效上成功超越了 GPU。具体数据显示,与 NVIDIA 3090 GPU 相比,FlightVGM 的性能提升了 1.30 倍,能效提高了 4.49 倍。
在与其他先进加速器的对比中,FlightVGM 同样表现出色。与基于 DiT 的加速器 InterArch 和 CMC 相比,FlightVGM 通过更高效的压缩算法和混合精度量化,进一步降低了计算成本,性能分别提高了 1.74 倍和 1.56 倍,能效分别提升了 1.33 倍和 1.27 倍。与基于 Transformer 的 FPGA 加速器 HiSpMV 和 FlightLLM 相比,FlightVGM 在处理 VGM 的大量矩阵乘法和支持在线稀疏化方面具有明显优势。与 HiSpMV 相比,加速比达到 7.69 倍,能效提高 3.52 倍;与 FlightLLM 相比,加速比为 3.12 倍,能效提高 1.43 倍。
论文还进行了消融研究,以深入了解各个组件对 FlightVGM 性能的影响。在研究 DSP-E 架构的效果时,对比了有无 DSP-E 设计的硬件计算性能。结果发现,DSP-E 架构有效地将计算性能提高了 1.20 倍。研究还发现,不同的计算性能比会对端到端延迟产生显著影响,选择合适的比例(如 6)时,能达到最优效果。综合混合精度带来的优势,相比仅使用浮点计算性能,整体等效计算性能提高了 3.26 倍。
对于自适应调度的效果评估,对比了引入自适应调度前后的延迟及其细分部分。结果表明,自适应调度有效解决了在线稀疏化后的工作负载不平衡问题,将处理单元(PE)的平均空闲率从 65.8% 大幅降低,平均 PE 利用率提高了 2.75 倍,而且引入的额外开销几乎可以忽略不计。
研究人员还对配备 AI Engine(AIE)的 FPGA 进行了评估。以 AMD VEK280 FPGA 为例,它虽然具有较高的 INT8 计算性能(228 TOPS),但内存带宽较低(86.7 GB/s),这使得 FlightVGM(AIE-based)无法有效加速 VGM。然而,如果为现有基于 AIE 的 FPGA 配备 HBM(如 FlightVGM(AIE + HBM)),在 Open-Sora 1.2 模型上可进一步实现 5.79 倍的加速,为后续的硬件优化提供了新的思路和方向。