DEFA: Efficient Deformable Attention Acceleration via Pruning-Assisted Grid-Sam..... 论文解读

DEFA: Efficient Deformable Attention Acceleration via Pruning-Assisted Grid-Sampling and Multi-Scale Parallel Processing论文解读

这是一篇2024年3月发布在arxiv上面的论文,算是为数不多的对可变形注意力机制进行加速的论文。

论文地址:点击跳转https://arxiv.org/abs/2403.10913

摘要:这篇论文针对可变形注意力进行加速,提出了一种专用的算法架构协同设计,称为DEFA,这是msformattn加速的首个同类方法。在算法层面,DEFA对特征映射和采样点分别采用频率加权剪枝和概率感知剪枝,减少了80%以上的内存占用。在架构层面,它探索了多尺度并行性来显著提高吞吐量,并通过细粒度层融合和特征映射重用进一步减少内存访问。在代表性基准测试中进行了广泛评估,与强大的gpu相比,DEFA实现了10.1-31.9倍的加速提升和20.3-37.7倍的能效提升。它还可以与相关加速器竞争2.2-3.7倍的能效提升,同时为MSDeformAttn提供开创性的支持。

文章在引言的末尾提到:文章总共有4个贡献:
(1)全面表征了MSDeformAttn在可变形变压器中的性能瓶颈,找出了部署效率低下的根本原因。
(2)算法方面提出了频率加权fmap修剪(FWP)和概率感知点修剪(PAP)
(3)在硬件层面,设计了一个高效的msformattn架构,同时充分利用了算法级优化带来的性能收益。
(4)在硬件上实现,取得了提速。

论文 算法层面

3.1 PWP:文中提到采样中每个像素的访问概率差异较大,因此作者对像素的采样次数进行统计,然后将采样频率低的像素根据位置进行掩码,从而达到减少内存的目的。
3.2 PAP:设置了一个阈值来过滤掉接近于零的注意概率,它们构成了主导比例(在可变形的DETR中超过80%)。由它们加权的抽样值对聚合结果和检测延迟的贡献很小。因此,对接近于零的注意概率进行修剪,并将点掩码建立为位掩码,以消除对当前MSDeformAttn块中产生零加权采样值的采样点的后续处理。

高吞吐量的Deformble Attention架构的硬件设计

4.1数据流

DEFA重新组织了MSDeformAttn中的操作符,来启用FWP和PAP,减少了计算和内存访问。

首先,计算注意概率,更新点掩码;
然后,在可重构PE阵列中以MM模式生成经点掩码剪枝的掩码采样点,即公式1中的ΔP = QW𝑆。
接下来,掩码fmap的线性投影(V = XW Eq.1)被最后一个msformattn块的fmap掩码修剪,并在PE数组中执行。
最后,DEFA以BA模式用可重构PE阵列处理融合的MSGS和聚合操作符。
同时,fmap掩码生成器接收BI中的采样地址,并对下一个块执行FWP。

4.2 多尺度并行处理

在MSGS的biliner中,在没有bank冲突的情况下,并行计算四个采样点。这需要在一个周期内从16个SRAM组访问16个fmap像素,每个采样点有四个相邻像素。如果DEFA在一层多尺度fmap中处理4个采样点,即在如下图所示进行层内并行处理,则边界范围内的所有像素都以参考点为中心被存储在SRAM中。
在这里插入图片描述当多个采样像素存储在同一个库中时,这可能导致库冲突。为了防止这一问题,文章提出了基于采样点只与参考点位于多比例尺fmap的同一层的观察的层间并行处理,利用这一点来限制其层内的采样范围。
在这里插入图片描述
如上图所示,级内并行处理相比,DEFA处理从多比尺fmap的四个级别的参考点延伸出来的四个采样点。此外,每层限定范围内的像素被存储在整个16个SRAM组的每四个组中。有界范围被平铺到几个邻居窗口中,每个邻居窗口中的四个像素被映射到四个SRAM bank。这种方法允许在不同的bank中访问采样像素,而没有任何bank冲突。

4.3 细粒度算子融合与可重构PE阵列

提出了细粒度算子融合MSGS和aggregation,消除了采样值的片外转移。为了在PE阵列有限的计算资源下支持该过程,我们对BI进行了转换,并设计了一个可在BA模式和MM模式之间交替使用的可重构PE阵列,
Bi的的实现如下:
在这里插入图片描述
作者将利用 to = y - y0 和 t1 = x - x0,将上式替换为如下:
在这里插入图片描述
𝑡0和𝑡1的计算在其他单元进行。因此,图3中的BI操作符部分只使用了3个乘数和7个加法器。AG算子部分对注意概率和𝑆进行乘法运算。此外,MM模式下的PE阵列在输出静止数据流中的16元素向量(𝑄)和16 × 16贴图(𝑊)之间进行MM。

5 评估

5.1 实验方法

基准。 论文在Deformable DETR (De DETR)[1]、DN-DETR[4]和DINO[5]编码器中的MSDeformAttn层上评估DEFA。评估任务是在COCO 2017数据集上进行目标检测[15]。作者使用PyTorch在参考官方实现的基准测试上进行实验。通过第3节中的软件方法对修正后的模型进行微调以恢复精度。在推理过程中,模型编码器层中的msformattn模块被量化为12位。作者将DEFA与NVIDIA RTX 2080Ti和3090Ti gpu以及SOTA注意力加速器进行了比较[11,10,12]。

硬件实现。DEFA在SystemVerilog中描述,并使用Synopsys Design Compiler在400MHz时钟频率下进行合成,以估计40nm技术下的面积和功耗。我们实现了一个周期精确模拟器来模拟计算和内存访问,并评估了DEFA的性能。我们使用CACTI获得SRAM的面积和能耗[16],外部存储系统采用中等的256GB/s HBM2,数据访问消耗1.2pJ/b[17]。

5.2 算法评估

在这里插入图片描述
图6 (a)给出了我们的方法的标准平均精度(AP),以及与基准基准和Faster R-CNN的比较[9]。FWP、PAP、水平范围缩小和INT12量化的处理分别导致基准上平均下降0.8、0.3、0.26和0.07 AP。与INT12量化相比,没有采用INT8量化,因为它会导致基准测试平均下降9.7 AP,这是一个不可接受的精度下降。 DEFA保持了相对较高的检测精度,AP损失可以忽略不计,比Faster R-CNN高出3.5-7.4 AP。图6 (b)显示了我们的剪枝算法在采样点、fmap像素和计算成本上的减少比例。FWP和PAP平均减少43%的fmap像素和84%的采样点,并且消除了不重要的fmap像素和采样点的计算成本,占整体计算的50%以上。对于逐级范围缩小,我们在每个级别调整采样偏移的有界范围,以实现精度和SRAM大小之间的权衡。

5.3 硬件优化策略活的性能
  • 27
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用GATK的combinegvcf模块合并gvcf文件,可是到了这一步Using GATK jar /stor9000/apps/users/NWSUAF/2022050434/biosoft/gatk4.3/gatk-4.3.0.0/gatk-package-4.3.0.0-local.jar Running: java -Dsamjdk.use_async_io_read_samtools=false -Dsamjdk.use_async_io_write_samtools=true -Dsamjdk.use_async_io_write_tribble=false -Dsamjdk.compression_level=2 -jar /stor9000/apps/users/NWSUAF/2022050434/biosoft/gatk4.3/gatk-4.3.0.0/gatk-package-4.3.0.0-local.jar CombineGVCFs -R /stor9000/apps/users/NWSUAF/2008115251/genomes/ARS-UCD1.2_Btau5.0.1Y.fa --variant /stor9000/apps/users/NWSUAF/2020055419/home/xncattle/03.GVCF/01_out_GVCF/XN_22/1_XN_22.g.vcf.gz --variant /stor9000/apps/users/NWSUAF/2020055419/home/xncattle/03.GVCF/01_out_GVCF/XN_18/1_XN_18.g.vcf.gz -O /stor9000/apps/users/NWSUAF/2022050469/candy/bwa/gatk/Combine/chr1.g.vcf.gz 09:10:40.524 INFO NativeLibraryLoader - Loading libgkl_compression.so from jar:file:/stor9000/apps/users/NWSUAF/2022050434/biosoft/gatk4.3/gatk-4.3.0.0/gatk-package-4.3.0.0-local.jar!/com/intel/gkl/native/libgkl_compression.so 09:10:50.696 INFO CombineGVCFs - ------------------------------------------------------------ 09:10:50.697 INFO CombineGVCFs - The Genome Analysis Toolkit (GATK) v4.3.0.0 09:10:50.697 INFO CombineGVCFs - For support and documentation go to https://software.broadinstitute.org/gatk/ 09:10:50.698 INFO CombineGVCFs - Executing as 2022050469@node54 on Linux v3.10.0-1127.el7.x86_64 amd64 09:10:50.698 INFO CombineGVCFs - Java runtime: Java HotSpot(TM) 64-Bit Server VM v1.8.0_72-b15 09:10:50.698 INFO CombineGVCFs - Start Date/Time: July 21, 2023 9:10:40 AM CST 09:10:50.698 INFO CombineGVCFs - ------------------------------------------------------------ 09:10:50.698 INFO CombineGVCFs - ------------------------------------------------------------ 09:10:50.698 INFO CombineGVCFs - HTSJDK Version: 3.0.1 09:10:50.699 INFO CombineGVCFs - Picard Version: 2.27.5 09:10:50.699 INFO CombineGVCFs - Built for Spark Version: 2.4.5 09:10:50.699 INFO CombineGVCFs - HTSJDK Defaults.COMPRESSION_LEVEL : 2 09:10:50.699 INFO CombineGVCFs - HTSJDK Defa就停止了,没有输出文件,也没有报错文件
07-22

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值