前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >绕过除法与平方根,PEANO-ViT 在 FPGA 上实现高效视觉Transformer !

绕过除法与平方根,PEANO-ViT 在 FPGA 上实现高效视觉Transformer !

作者头像
集智书童公众号
发布2024-07-10 14:20:29
780
发布2024-07-10 14:20:29
举报
文章被收录于专栏:集智书童

免责声明

凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。

在硬件平台,尤其是现场可编程门阵列(FPGAs)上部署视觉 Transformer (ViTs)面临许多挑战,这主要是由于它们非线性函数(如层归一化、softmax和高斯误差线性单元(GELU))巨大的计算和功率需求所致。 这些关键函数由于其复杂的数学运算以及FPGA固有的资源数量和架构限制,对硬件高效实现构成了重大障碍。PEANO-ViT提出了一种新颖的方法来简化层归一化层的实现,通过引入一种无需除法的技巧,同时逼近除法和平方根函数。 此外,PEANO-ViT提供了一个多尺度除法策略,以消除softmax层中的除法操作,并借助基于Pade的指数函数逼近。最后,PEANO-ViT为GELU函数引入了分段线性逼近,精心设计以绕开与GELU相关的计算密集型操作。 在作者全面的评估中,PEANO-ViT显示出最小的准确度下降(对于DeiT-B来说),同时显著提高了功率效率,分别为层归一化、softmax和GELU实现了、和的改进。这种改进是通过大幅减少这些非线性操作的DSP、LUT和寄存器数量实现的。 因此,PEANO-ViT使得在资源和功率受限的FPGA平台上高效部署视觉 Transformer 成为可能。

1. Introduction

计算机视觉的格局随着深度学习架构的出现而被彻底改变,其中视觉 Transformer (ViTs)(Abadi等人,2016年;Chen等人,2017年;Chen等人,2017年)作为一种特别有前景的方法脱颖而出。与使用局部感受野的传统CNN不同,ViTs使用自注意力机制来捕捉图像中的全局依赖,这使得对视觉数据的理解更为全面。这使ViTs成为研究的前沿,在各类计算机视觉任务中显示出最先进的表现。

ViTs依赖于一系列相同的编码器块逐步从图像中提取复杂特征。这些编码器块由两个主要组成部分构成:多头注意力(MHA)和前馈网络(FFN),每个部分之前都有一个层归一化块。MHA和FFN内部嵌入了线性层、GELU和softmax,并通过两个残差连接整合,这两个连接位于归一化阶段的两侧。最后一个编码器的输出通过分类器得到类别预测。

尽管ViTs的性能卓越,但由于其庞大的参数数量和巨大的计算需求,ViTs在实践部署中面临重大挑战。已经探索了多种方法来提高ViTs的效率,包括量化、剪枝(He等人,2016年)和低秩近似(Chen等人,2017年)。然而,在如现场可编程门阵列(FPGA)等硬件平台上部署ViTs,面临着根本性的挑战。其中,对ViTs架构至关重要的非线性层——层归一化、softmax和GELU——尤为突出。虽然这些函数对于网络建模复杂模式至关重要,但它们的计算强度大,因此在FPGA上高效实现这些函数成为了一个关键的挑战。

作者的研究有两个主要贡献。首先,作者提出了PEANO-ViT,这是一种利用硬件优化近似技术的新方法,用于ViTs中的非线性函数。PEANO-ViT中的方法为在FPGA平台上实现ViTs中的关键函数提供了全面的解决方案。通过利用诸如基于Pade的指数函数近似和位操作运算来实现softmax层中的有效除法等创新技术,作者努力实现性能与资源保护并重的均衡且资源高效的实现。层归一化实现通过一种新颖的方式逼近平方根的倒数,,有效地解决了计算挑战。此外,作者对GELU采用分段线性近似,不仅最小化了资源使用,还密切保持了原始函数的行为。其次,作者通过全面的实验证明,PEANO-ViT使得在FPGA上高效执行ViTs成为可能,对准确性的影响最小,同时在计算效率和功耗方面有显著改进。

2. Related Work

Transformer(Xiong等人,2017年),最初是为了解决自然语言处理任务中的长序列而开发的,成为了计算机视觉应用中ViT(Bahdanau等人,2015年)的灵感来源。ViT通过将图像处理为一系列标记并利用自注意力机制的能力,取得了令人印象深刻的结果。然而,尽管对于性能至关重要,ViT中的核心非线性函数——softmax、GELU和层归一化——在计算上成本高昂,阻碍了其在高效硬件上的实现。一些研究探索了这些层的硬件高效策略,提出了各种平衡近似精度与计算成本的近似技术。与PEANO-ViT相比,其特点在表1中进行了总结。基本层归一化、softmax和GELU的计算分别如方程(1-3)所示。在方程1中,和是可学习参数,而和分别表示层归一化函数输入数据的平均值和方差。

Softmax Implementations

softmax层的实现已经成为研究焦点,许多研究致力于通过各种近似技术优化其效率。在硬件平台上高效实现softmax的主要挑战来自于的非线性函数和最终规范化输出值的除法操作。先前的研究工作,如(Han et al., 2017)针对指数函数的有效计算,但受到了昂贵的除法操作的阻碍。相比之下,(Han et al., 2017; Wang et al., 2017)和(Han et al., 2017)的研究采用了位操作技术来简化指数函数的近似并消除除法的需求。尽管这些方法对于减少计算需求和适合硬件实现很有帮助,但由于它们本质上需要迭代,因此计算复杂度仍然很高,导致推理延迟增加。

Layer Normalization Implementations

对于层归一化的硬件实现,主要障碍包括对平方根函数的有效近似以及除法运算的管理。在(Wang等人,2017年)中引入的方法解决了除法操作的问题,但仍然采用精确但资源密集的平方根公式,导致吞吐量降低。

GELU Implementations

除了层归一化和softmax之外,GELU函数的近似也在ViTs的硬件部署中提出了重大挑战。这是由于其复杂的非线性特性,需要执行函数以及多项式计算。在(Han et al., 2017)一文中,作者探讨了通过简化非线性的函数使用位操作来近似GELU函数的方法。(Han et al., 2017)还提出了一种创新方法,利用现有的softmax硬件来促进GELU计算。尽管这些方法旨在提高硬件效率并最小化资源消耗,但计算延迟仍然是一个问题。这是由于在(Han et al., 2017)中某些位操作操作的迭代性质,以及(Han et al., 2017)中对GELU使用的非优化硬件所致。

3. Methodology

在本节中,作者描述了用于近似层归一化、softmax和GELU函数的技术。作者的重点是开发避免除法且确保与硬件实现兼容的方法,同时尽可能保持模型的准确性。

Softmax

作者的方法分为两个步骤:首先,作者基于Pade方法引入了指数函数的近似。其次,作者通过提出多尺度倒数近似(MSR-approx)方法来避免除法运算。

算法2展示了倒数函数的多尺度逼近,它使用一个可调整的整数阈值 和预先存储的值 。MSR-approx 通过定义一个灵活的尺度值,将所有的值映射到区间 内,这解决了的动态范围问题。例如,如果 ,那么对于 ,则 ,而对于其他的值,。因此,作者只需要预先存储 。图1c展示了当 时,作者的 MSR-approx 方法与原始倒数函数的比较。选择 是在 MSR-approx 的准确性和为预先存储值所需的内存之间进行的权衡。

较大的 提出了更接近倒数函数的近似,同时需要更大的内存来预先存储值。使用 MSR-approx 方案的 softmax 在算法3中呈现。

提高多尺度除法准确性的另一种方法是使用预存储点之间的线性插值(而不是直接使用这些点中的任何一个)。例如,如果 且 ,则尺度等于 ,所以在基本的 MSR-approx 方法中,作者用 来近似 。相反,作者可以对 和 进行线性插值以获得更接近 的近似值。通过线性插值增强的 MSR 近似(称为 LMSR-approx)在略微增加资源消耗和计算周期的情况下获得了更高的准确性,展示了准确性与资源效率之间的明确权衡。

Gelu

PEANO-ViT采用分段线性方法来近似高斯误差线性单元(GELU)。与ViT中的其他非线性函数(如平方根和指数函数)不同,GELU在其定义域的两端表现出主要是线性的行为。此外,GELU激活函数在其非线性区域内的值范围很窄。这些特性促使采用分段线性逼近作为复制GELU函数功能的高度适合方法。

作者的方法在GELU计算中使用六个断点,导致七个线性段。最初的断点设置在和,以模拟当趋近于时GELU的线性行为。重要的是,与许多已建立的激活函数(例如ReLU、PReLU、GELU、SiLU)一样,作者的逼近确保激活函数与原点相交,引入了第三个断点。为了捕捉GELU生成负输出的能力,在处设置一个断点来逼近其最小值,从而提高了作者逼近的忠实度。为了优化在区间和内GELU的过渡非线性行为的表示,引入了额外的断点和。这些点是通过最小化均方误差确定的,确保在指定范围内更精确的逼近。以下列出了提到的断点,图1d可视化了作者的最终逼近,如下方程所示:

注:似乎是一个打印错误,可能应该是0。

FPGA Implementation

图2展示了PEANO-ViT的非线性层在FPGA上的整体实现。值得注意的是,每个非线性函数同时处理个元素,这使得计算时间大约减少了倍。为了进一步提高处理速度,在所有三个实现中的读取、存储和计算阶段之间集成了FIFO队列。与GELU不同,层归一化和softmax都需要对输入数据双次读取——第一次用于初步计算,第二次用于归一化阶段。在与主数据流并行集成一个额外的FIFO显著降低了层归一化和softmax模块的延迟,因为这样就不需要临时存储输入值以进行第二次计算阶段。增加参数会加速非线性函数的处理,但代价是FPGA资源消耗更多。因此,PEANO-ViT变成了一个可配置的硬件框架,同时保持了其软件的灵活性。

4. Results and Discussions

在本研究中,作者在频率为250 MHz的Xilinx UltraScale+ VUp9P板上实现了PEANO-ViT模型。作者使用了Xilinx的Vivado功耗报告来评估每个设计的功耗。为了评估PEANO-ViT的性能,作者采用了公开可用的ImageNet-1K数据集(Deng等人,2015年)和三种不同的模型架构,即ViT(Deng等人,2015年)、DeiT(Deng等人,2015年)和Swin(Deng等人,2015年),涵盖各种规模(小型、基础和大型)。需要指出的是,作者的实验设置不需要广泛的重新训练。相反,作者在将每个近似方法整合到模型后,只进行了两个

个时期的微调。作者从TIMM库(Hardt等人,2017年)的预训练模型作为起点,并使用PyTorch实现作者的近似。

算法2 多尺度倒数近似(MSR-approx)

ImageNet Classification

表2提供了基于PEANO-ViT近似的四个ViT模型与分别在FPGA和GPU平台上实现的(Hardt等人,2017)和(Bordes等人,2018)提出的技术在准确度损失方面的比较。在作者的分析中,作者将层归一化参数和MSR-近似参数设置为零线性插值的值。PEANO-ViT相比于(Bordes等人,2018)和(Hardt等人,2017)的优越性能源于其对softmax、GELU和层归一化函数的独立近似,而(Bordes等人,2018)仅关注softmax和GELU,(Hardt等人,2017)仅关注层归一化和softmax。表2的结果表明,当将近似应用于所有非线性块时,PEANO-ViT表现出最小的准确度下降。此外,在使用类似的近似方法时,PEANO-ViT在DeiT-S、Swin-B和ViT-L模型上相比于(Bordes等人,2018)和SOLE(Hardt等人,2017)方法实现了更低的准确度降低。对于DeiT-B模型,当从MSR-近似切换到LMSR-近似时,PEANO-ViT显示出比SOLE(Hardt等人,2017)更小的准确度下降。值得注意的是,通过调整和以及将线性插值纳入MSR近似(LMSR-approx),PEANO-ViT能够进一步最小化准确度损失。

表2. 在ImageNet-1K基准上近似引起的准确度损失。(Hardt等人,2017)和(Bordes等人,2018)的结果(如果可用)直接来源于论文。FP32和FiP16分别代表32位浮点数和16位固定点数。

Hardware Cost

表3详细展示了通过实施PEANO-ViT所获得的能效增益和资源使用减少情况。通过利用PEANO-ViT引入的快速且硬件兼容的近似方法,与硬件密集且成本高昂的精确非线性实现的迭代方法相关的显著功耗和资源使用大大降低。此外,表3提供了PEANO-ViT每个非线性层的资源利用分解。在处理如标准化、softmax和GELU等层时,作者同时处理16个元素,从而实现了一个并行度水平(LoP)为16,以与LTrans-OPU进行公平比较。这个LoP可以根据资源可用性和延迟目标进行调整,使PEANO-ViT成为一个用于提升机器学习任务速度的多功能框架。增加LoP可以提高处理速度,但也可能导致更高的资源消耗和功耗。

Flexibility of PEANO-ViT

PEANO-ViT是一个高度灵活的框架,可以量身定制以满足特定的准确度目标、硬件资源限制和功耗要求。这种适应性是通过调整诸如层归一化中的、softmax中的以及softmax的MSR或LMSR近似选择等关键参数来实现的。此外,该框架在确定用于逼近GELU函数的线性段数量方面也提供了灵活性。表4展示了不同配置对逼近函数的均方误差准确度的影响。增加和的值,扩大GELU中的线性段数量,以及选择LMSR而非MSR,都会提高准确度,但同时也会消耗更多的硬件资源,导致功耗增加。

5. Conclusion

PEANO-ViT通过近似非线性块和消除除法操作来优化ViT模型,在最小减少的情况下保持了高精度。这种方法提高了功率效率和资源节省,为可持续深度学习树立了新的基准。

其灵活性使得可以在准确性、硬件资源和功耗方面进行定制调整,确保在不牺牲效率或准确性的情况下满足特定的性能要求。

参考

[1].PEANO-ViT: Power-Efficient Approximations of Non-Linearities in Vision Transformers.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 集智书童 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Introduction
  • 2. Related Work
  • Softmax Implementations
  • Layer Normalization Implementations
  • GELU Implementations
  • 3. Methodology
  • Softmax
  • Gelu
  • FPGA Implementation
  • 4. Results and Discussions
  • ImageNet Classification
  • Hardware Cost
  • Flexibility of PEANO-ViT
  • 5. Conclusion
  • 参考
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档