文章目录
论文精读-基于FPGA的卷积神经网络和视觉Transformer通用加速器
优势:
1.针对CNN和Transformer提出了通用的计算映射(共用计算单元,通过不同的映射指令,指导数据通路和并行计算)
2.非线性与归一化加速单元(支持softmax,gelu,层归一化函数,共用加速单元)
3.计算空间探索,通过片上模型计算量穷举(profiling),得到最佳计算量配置参数。同理在进行e^x函数近似时,也进行相同操作。
4.使用分布式存储复用权重,减少片外访问(多级存储降低延迟)+ 非线性与归一化单元使用低精度计算(fp16),PE计算阵列使用DSP时钟倍频和INT8乘法并行计算方法共享DSP资源,减少资源消耗。
小结:本文使用片上计算量穷举法得到最低计算量从而降低整体工作负载,通过新架构的设计(基于FPGA的加速器设计,统一映射+非线性与归一化加速单元+多级存储降低延迟)提高计算效率
概述
针对计算机视觉领域中基于现场可编程逻辑门阵列(FPGA)的传统卷积神经网(CNN)络加速器不适配视 觉Transformer网络的问题,该文提出一种面向卷积神经网络和Transformer的通用FPGA加速器。首先,根据卷 积和注意力机制的计算特征,提出一种面向FPGA的通用计算映射方法;其次,提出一种非线性与归一化加速单 元,为计算机视觉神经网络模型中的多种非线性和归一化操作提供加速支持;然后,在Xilinx XCVU37P FP- GA上实现了加速器设计。实验结果表明,所提出的非线性与归一化加速单元在提高吞吐量的同时仅造成很小的 精度损失,ResNet-50和ViT-B/16在所提FPGA加速器上的性能分别达到了589.94 GOPS和564.76 GOPS。与 GPU实现相比,能效比分别提高了5.19倍和7.17倍;与其他基于FPGA的大规模加速器设计相比,能效比有明显 提高,同时计算效率较对比FPGA加速器提高了8.02%~177.53%。
研究背景
卷积和注意力机制概述
卷积是传统CNN最核心的组成部件,同时也是CNN模型中计算量最大的操作,卷积计算过程 如图1所示。卷积使用卷积核在输入特征图的2维空 间上滑动计算每个像素点及其相邻像素点与卷积核 的点积,最终得到一张输出特征图。图1中的Cin 和 Cout 分别表示卷积操作的输入通道数和输出通道 数。K 表示卷积核大小。Hin 和Win 表示输入特征图 的高度和宽度。Hout 和Wout 表示输入特征图的高度 和宽度。
注意力机制最关键的部分是自注意力操作,自 注意力计算流程如图2(a)所示。Xin 是自注意力操 作的输入,分别与权重WQ , WK 和WV 作线性矩阵


乘法得到Q, K 和V 。为避免Softmax函数的输入 绝对值过大,导致函数的梯度过小进而影响到梯度下降。将Q除以 sqrt(dk)。缩放后的Q与K 的转置KT 相乘,然后进行 Softmax操作,结果与V 相乘得到自注意力最终结 果Oattn 。现有的基于注意力机制的Transformer模 型大多数使用多头自注意力,由多个自注意力操作 组成,数量用Head(h)表示。图2(b)展示了Trans- former中多头自注意力的计算过程。每个头使用不 同的权重WQi , WKi 和WVi 来分别得到Qi , Ki 和 Vi。最后将h个自注意力输出拼接为Omulti−attn作为 多头自注意力的最终结果。
计算方式差异
由上述可知,卷积和注意力机

本文提出了一种基于FPGA的通用加速器,针对CNN和Transformer设计了通用计算映射、非线性与归一化加速单元,并通过优化乘法和存储策略,显著提升了计算效率,相比于GPU和传统FPGA设计,能效比大幅提高。

2万+

被折叠的 条评论
为什么被折叠?



