面向多头、行与块稀疏性的移动端Transformer加速器
Mobile Accelerator Exploiting Sparsity of Multi-Heads, Lines, and Blocks in Transformers in Computer Vision 阅读总结中文标题面向多头、行与块稀疏性的移动端Transformer加速器作者Eunji Kwon, Haena Song, Jihye Park, Seokhyeong Kang发表DATE 2023平台Xilinx ZCU104 FPGA目标模型DETR目标检测、ViT-Tiny/Small/Base图像分类摘要Transformer模型在计算机视觉任务中表现优异但其计算与存储密集特性使其难以部署于移动端。剪枝虽能有效压缩模型但通用计算平台CPU/GPU难以高效加速结构化稀疏模型。本文提出一种面向多头注意力头级剪枝、行/列级剪枝与块级剪枝的低功耗加速器。核心贡献包括1头调度算法——支持头级操作跳过并解决多处理单元间的负载均衡问题2稀疏通用矩阵乘法sparse GEMM模块——支持行级与块级稀疏跳过。在DETR模型上与移动GPU和CPU相比能效分别提升6.1倍与13.6倍ViT模型平均能效分别提升2.6倍与7.9倍。核心专有名词解析术语缩写定义面向跨专业读者多头自注意力MSATransformer编码器的核心模块由多个并行的单头注意力SHA组成每个头独立计算注意力分布后拼接。单头注意力SHA单个注意力头执行Attention(Q,K,V)Softmax(QK^T/√d)V包含三次矩阵乘与一次Softmax。头剪枝Head Pruning移除整个注意力头即该头的Q/K/V投影权重全部置零粗粒度稀疏可直接跳过整个SHA计算。行/列剪枝Line Pruning移除权重矩阵的整行或整列对应输入/输出维度产生连续零行/零列适合结构化跳过。块剪枝Block Pruning将矩阵划分为固定大小的块如8×8移除贡献低的块产生块级稀疏。结构化稀疏Structured Sparsity零值以规则模式整行、整列、整块、整个头分布硬件可用简单索引判断跳过无需复杂零值检测。非结构化稀疏Unstructured Sparsity零值随机分布需逐元素检查索引开销大硬件加速困难。稀疏GEMMSparse GEMM通用矩阵乘法的稀疏版本利用行/列/块级稀疏跳过无效计算仅对非零行/列做分块乘加。负载均衡Load Balancing多个SHA处理单元并行计算时各单元分配的操作量应接近否则快的单元需等待慢的单元浪费算力。头调度算法Head Scheduling动态决定哪些头保留、哪些跳过并将保留下来的头按计算量配对后分发至不同SHA PE实现负载均衡。SDP注意力Scaled Dot-Product AttentionSoftmax(QK^T/√d)V注意力机制的核心运算。FFNFeed-Forward NetworkTransformer编码器中MSA后的两层全连接网络占参数量与计算量的主要部分。一、研究动机与核心问题1.1 通用计算平台的两大缺陷缺陷一资源共享导致性能波动CPU与GPU同时运行系统任务与AI任务资源竞争导致推理延迟不可预测。移动端AI要求恒定低延迟而非峰值吞吐。专用加速器可提供确定性延迟。缺陷二结构化稀疏加速能力不足剪枝后模型具有结构化稀疏整行/整列/整头/整块为零但GPU的SIMT单指令多线程架构对不规则稀疏的利用率极低——零值行仍占线程资源不贡献算力却消耗功耗。1.2 三维稀疏性本文定义三种粒度结构化的稀疏类型并设计硬件统一支持稀疏类型来源跳过机制Type A-1输入行稀疏Patch/Token剪枝输入矩阵部分整行为零Sparse GEMM跳过对应行Type A-2权重列稀疏维度/通道剪枝权重矩阵部分整列为零Sparse GEMM跳过对应列Type A-3交叉行/列稀疏维度剪枝同时影响输入列与权重行Sparse GEMM双向跳过Type B块稀疏块剪枝或Softmax/ReLU产生零值聚类Sparse GEMM跳过含零块的分块乘法Type C头稀疏头剪枝整个SHA的所有权重为零跳过整个SHA计算二、三种跳过方法2.1 头级跳过与头调度算法问题头剪枝后保留的各头因额外行/块剪枝导致计算量不同。若多个SHA PE并行执行操作量不均导致负载失衡部分PE空转。算法流程共5步Step 1识别所有层中被剪枝的头移除其权重。Step 2将保留的权重紧凑排列供后续调度。Step 3逐头统计行/列/块稀疏度计算每个SHA所需操作数。Step 4将稀疏矩阵转为稠密矩阵移除零行/列生成零行/零列掩码供硬件使用。Step 5按操作数排序将操作数相近的头两两配对后分发给两个SHA PE本设计部署两个SHA PE。效果头级跳过MSA延迟与剪枝比例呈线性降低。负载均衡无头剪枝但行剪枝70%时仅靠负载均衡即降低延迟10.21%ViT-Base。2.2 行级跳过核心思想若输入矩阵A的第i行全为零 → 输出矩阵C的第i行全为零若权重矩阵B的第j列全为零 → 输出矩阵C的第j列全为零。实现机制将稀疏矩阵压缩为稠密矩阵移除全零行/列生成掩码记录原始位置。对稠密矩阵执行分块GEMM。输出时根据掩码将结果填回原始位置无需额外缓冲预计算输出地址。2.3 块级跳过分块GEMM过程中若某数据块全为零由掩码判断则跳过该块的全部乘加操作。适用于块剪枝产生的稀疏矩阵也适用于Softmax/ReLU后产生零值聚类。Sparse GEMM相对FTRANS的FFT-IFFT PE行稀疏75%时矩阵乘法延迟降低58.95%。三、硬件架构与数据流3.1 整体数据流以ViT-Base编码器层为例阶段操作模块Step A-DQ_i/K_i/V_i生成GEMMSHA PE内GEMMStep DFSDP注意力QK^T/√d → Softmax → ×VSHA PE内SDP模块Step 1-4两SHA PE并行执行重复H_r/2次两个SHA PE 头调度器Step 5拼接各头输出 × W_OGEMMGEMM模块Step 6-9FFN1 × FFN2GEMMGEMM模块层尾残差加和 LayerNormAddNorm模块双缓冲所有模块输入加载与计算流水化覆盖数据搬运延迟。SoftMax优化使用变换式exp(x_i - x_max - ln(Σexp(x_j - x_max)))降低指数与除法运算量。3.2 资源部署策略模型总头数SHA PE数每PE处理头数时钟DETR824轮185 MHzViT-Tiny331轮185 MHzViT-Small623轮100 MHzViT-Base1226轮100 MHzViT-Tiny部署3个SHA PE等于头数完全并行其余部署2个PE。FPGA资源占用ZCU104功耗PL1.88–4.56 W吞吐12.0–36.1 GOP/s随模型与频率变化资源利用率BRAM 47–80%、DSP 19–31%、FF 16–24%、LUT 31–87%四、实验与对比结果4.1 剪枝策略与精度损失模型剪枝组合精度指标精度损失DETR头50% 行75%AP505点ViT-Tiny行70%仅行剪Top-12%ViT-Small头70% 行75%Top-12%ViT-Base头70% 行75%Top-12%ViT-Tiny仅3个头若做头剪枝会损失过多信息故只做行剪枝。4.2 加速效果对比基准DETR加速比ViT平均加速比vs 移动CPUARM Cortex-A5711.9×延迟/ 13.6×能效6.5×延迟/ 7.9×能效vs 移动GPUJetson Nano5.3×延迟/ 6.1×能效2.0×延迟/ 2.6×能效4.3 与FTRANS对比指标本文ZCU104FTRANSVCU118目标模型DETR视觉BERTNLP吞吐36 GOP/s170 GOP/sPL功耗3.35 W25 W功率效率10.6 GOP/s/W6.8 GOP/s/W吞吐/DSP0.0830.026功率效率提升55.8%每DSP吞吐提升3.2倍。4.4 头调度算法效果头跳过MSA延迟随剪枝比例线性下降。负载均衡ViT-Base在仅行剪枝70%无头剪枝时因负载均衡降低延迟10.21%图5-a。五、技术总结本设计通过结构化稀疏的全粒度覆盖与专用数据流调度在FPGA上实现Transformer推理加速稀疏类型全覆盖头级、行级输入行/权重列/交叉、块级三维稀疏统一由头调度Sparse GEMM处理。头级负载均衡按各头实际操作量而非固定头数进行任务分配以操作数相近配对分发消除PE间空转。稀疏GEMM设计数据压缩→分块乘加→零块跳过→原位输出消除缓冲开销。资源与精度折中通过可配置PE数量2/3个适配不同模型头数在资源受限下最大化并行度。实验表明结构化稀疏经专用数据流调度后其延迟增益与稀疏比例呈近似线性关系头跳过或接近线性行跳过58.95%延迟降幅对应75%稀疏远优于GPU对稀疏的利用率。该方案证明——针对视觉Transformer的结构化稀疏进行定制化数据流设计可在移动端功耗预算内实现显著优于通用平台的能效。