ME-ViT:一种用于视觉 Transformer 的单次加载内存高效 FPGA 加速器
图像与视频处理
2024-02-16 v1
摘要
视觉 Transformer(ViT)已成为物体分类任务的最先进解决方案。然而,其计算需求和高参数量使其不适合实时推理,从而需要高效的硬件实现。现有的 ViT 硬件加速器受限于频繁的片外内存访问,这限制了可实现的吞吐量。在高计算通信比设备(例如带宽有限的边缘 FPGA)中,片外内存访问对整体吞吐量构成了严重瓶颈。本工作提出了 ME-ViT,这是一种新颖的用于 ViT 推理的\underline{内}存\underline{高}效 FPGA 加速器,旨在最小化内存流量。我们在设计 ME-ViT 时提出了一种\textit{单次加载策略}:模型参数仅加载一次,中间结果存储在片上,所有操作均在单个处理单元中实现。为实现这一目标,我们设计了一种内存高效的处理单元(ME-PE),通过重用\textit{多用途缓冲区}在同一架构上处理 ViT 推理的多个关键操作。我们还将 Softmax 和 LayerNorm 函数集成到 ME-PE 中,以最小化矩阵乘法之间的停顿。我们在 32 和 16 的脉动阵列尺寸上评估了 ME-ViT,与 FPGA 上最先进的 ViT 加速器相比,两种设计的内存带宽分别实现了高达 9.22和 17.89的整体提升,每个 DSP 的吞吐量提升了 2.16。与 GPU(FPGA)基线相比,ME-ViT 的能效提升了高达 4.00(1.03)。ME-ViT 可在 Xilinx Alveo U200 上实现多达 5 个 ME-PE 实例化,与最先进的 FPGA 基线相比,吞吐量提升了 5.10,与 GPU(FPGA)基线相比,能效提升了 5.85(1.51)。
引用
@article{arxiv.2402.09709,
title = {ME-ViT: A Single-Load Memory-Efficient FPGA Accelerator for Vision Transformers},
author = {Kyle Marino and Pengmiao Zhang and Viktor Prasanna},
journal= {arXiv preprint arXiv:2402.09709},
year = {2024}
}