CN113901747A - 一种可配置稀疏注意力机制的硬件加速器 - Google Patents
一种可配置稀疏注意力机制的硬件加速器 Download PDFInfo
- Publication number
- CN113901747A CN113901747A CN202111197446.4A CN202111197446A CN113901747A CN 113901747 A CN113901747 A CN 113901747A CN 202111197446 A CN202111197446 A CN 202111197446A CN 113901747 A CN113901747 A CN 113901747A
- Authority
- CN
- China
- Prior art keywords
- matrix
- sparse
- configurable
- module
- fractional
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000007246 mechanism Effects 0.000 title claims abstract description 40
- 239000011159 matrix material Substances 0.000 claims abstract description 207
- 238000005070 sampling Methods 0.000 claims abstract description 23
- 238000004806 packaging method and process Methods 0.000 claims abstract description 14
- 230000004913 activation Effects 0.000 claims abstract description 4
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000000034 method Methods 0.000 claims description 11
- 238000012856 packing Methods 0.000 claims description 8
- 238000003058 natural language processing Methods 0.000 claims description 7
- 238000013473 artificial intelligence Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 239000011800 void material Substances 0.000 claims description 3
- 238000011065 in-situ storage Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Complex Calculations (AREA)
Abstract
本发明公布了一种可配置稀疏注意力机制的硬件加速器,包括:样本化稠密矩阵乘法运算模块、掩模分块打包模块和可配置稀疏矩阵乘法运算模块;样本化稠密矩阵乘法运算模块采用脉动阵列的硬件结构;掩模分块打包模块包括列号计数器,行激活单元计数器以及缓冲区;可配置稀疏矩阵乘法运算模块包括可配置运算单元PE、寄存器阵列和除法器,可配置运算单元与寄存器阵列分离。本发明根据输入矩阵的特性,高效动态地决定分数矩阵的稀疏模式,在较高的稀疏度下,仍然可以保持较高的流通量,能够高效地、动态地加速稀疏注意力机制的运算。
Description
技术领域
本发明涉及人工智能应用硬件加速器,具体涉及一种可配置稀疏注意力机制的硬件加速器,是一种针对稀疏注意力机制的,可配置多阶段脉动阵列硬件加速器。
背景技术
基于注意力机制的人工神经网络在近年的机器学习占据重要的地位。文献[1](A.Vaswani,N.Shazeer,N.Parmar,J.Uszkoreit,L.Jones,A.N.Gomez,Kaiser,andI.Polosukhin,“Attention is all you need,”in Proceedings of the 31stInternational Conference on Neural Information Processing Systems,2017,pp.6000–6010.)记载了注意力机制。其中,转换器(Transformer)结构以注意力机制为其基本组件,在各类人工智能任务中有着出色的表现,例如自然语言处理领域的语言模型,机器翻译、文本分类和文本生成,以及计算机视觉领域的图像标题,图像生成和图像分片等。
注意力机制以三个矩阵作为输入,分别称为查询矩阵Q,键矩阵K和值矩阵V。首先通过Q矩阵与K矩阵的矩阵乘法获得分数矩阵S,然后通过按行软性最大值Softmax操作进行归一化,最终与V矩阵进行矩阵乘法得到输出矩阵。由于注意力机制以K矩阵和V矩阵编码信息,实现注意力机制需要大量的计算资源,而且随着输入序列的长度平方增长。例如,在文献[2](J.Devlin,M.-W.Chang,K.Lee,and K.Toutanova,“Bert:Pre-training of deepbidirectional transformers for language understanding,”in NAACL-HLT,2019.)记载的BERT模型中,输入的单词数可以高达1.6万,这时其计算需求将高达861.9吉浮点运算(GFLOPs)。
现有技术从分数矩阵S的稀疏性入手,可以减少注意力机制所需的大量计算资源。分数矩阵S的稀疏性具有一定的模式,是由软件动态决定的。而稀疏注意力机制的计算依然需要硬件的参与。目前已有多个稀疏注意力机制专用的硬件加速器。文献[3](B.Li,S.Pandey,H.Fang,Y.Lyv,J.Li,J.Chen,M.Xie,L.Wan,H.Liu,and C.Ding,“Ftrans:energy-efficient acceleration of transformers using fpga,”in Proceedings ofthe ACM/IEEE International Symposium on Low Power Electronics and Design,2020)记载的FTRANS是一个现场可编程逻辑门阵列(FPGA)加速器,使用了快速傅里叶变换的方法加速注意力机制。但这种方法限制了权重矩阵仅能为块循环矩阵,使得其失去了针对其他应用的通用性。文献[4](H.Wang,Z.Zhang,and S.Han,“Spatten:Efficient sparseattention architecture with cascade token and head pruning,”in Proceedings ofthe International Symposium on High Performance Computer Architecture,2021.)记载的SpAtten采用了代符剪枝技术,取出了注意力矩阵中的一些行和列。但其计算引擎是针对并行矩阵乘法运算设计的,因此在无结构动态稀疏矩阵上表现较差。文献[5](T.J.Ham,S.J.Jung,S.Kim,Y.H.Oh,Y.Park,Y.Song,J.-H.Park,S.Lee,K.Park,J.W.Leeet al.,“A^3:Accelerating attention mechanisms in neural networks withapproximation,”in2020IEEE International Symposium on High PerformanceComputer Architecture(HPCA).IEEE,2020.)记载的A3专注于用缩减的运算量近似注意力机制。但是,该工作在硬件结构层次只设计了若干点积运算器,并没有很好的硬件加速能力。
发明内容
本发明的目的是提供一种可配置稀疏注意力机制的硬件加速器,采用本发明提供的新的硬件加速器结构,能够高效地、动态地加速稀疏注意力机制的运算,可应用于各类人工智能任务中,例如自然语言处理领域的语言模型,机器翻译、文本分类和文本生成,以及计算机视觉领域的图像标题,图像生成和图像分片等。
本发明首先通过样本化稠密矩阵乘法(SDDMM)模块获得低比特数的分数矩阵样本掩模,然后将样本掩模分块打包后,输入到可配置稀疏矩阵乘法(SpMM)模块中。可配置稀疏矩阵乘法模块是一个分数矩阵固定的数据流运算器。其特点是,将数据移动结构与运算单元分离,可以以样本掩模块为配置,动态地决定运算单元在阵列中的位置,完成两步稀疏矩阵乘法运算和Softmax操作。
本发明提供的技术方案如下:
一种可配置稀疏注意力机制的硬件加速器,包括:样本化稠密矩阵乘法运算模块、掩模分块打包模块和可配置稀疏矩阵乘法运算模块;其中,
样本化稠密矩阵乘法运算模块通过采用脉动阵列的硬件结构,用于动态地进行低比特数的矩阵乘法,并输出分数矩阵样本掩模;
掩模分块打包模块包括一个列号计数器,多个行激活单元计数器以及缓冲区;用于以样本化稠密矩阵乘法运算模块输出的分数矩阵样本掩模作为输入,分数矩阵样本掩模逐列接收并记录列编号;设定阈值,并将超过阈值的比较结果的列编号收集起来,按行打包储存在缓冲区(缓存)中;当在某一行中已收集的数量达到可配置稀疏矩阵乘法模块一行的运算器数量时,将缓存的结果整体输出到可配置稀疏矩阵乘法模块中,作为配置信息。
可配置稀疏矩阵乘法运算模块包括可配置运算单元PE、寄存器阵列和除法器,用于实现分数矩阵固定的数据流运算模式。其中,可配置运算单元与寄存器阵列分离。在每一个可配置运算单元中,可通过可配置单元中的多选器动态连接寄存器阵列的同一行的寄存器,通过多阶段数据通路实现不同运算模式,并通过空泡控制器保持输出的正确性。
上述的可配置稀疏注意力机制的硬件加速器的功能实现,具体是通过使用动态生成分数矩阵样本掩模和分块打包机制的模块,代替了现有技术中的基于排序的复杂模块(排序模块);同时,通过采用基于脉动阵列的分数矩阵固定的数据流,以及可配置的运算单元,获得比现有的稀疏矩阵运算技术更好性能的硬件加速器。包括以下步骤:
A.建立样本化稠密矩阵乘法运算模块,进行样本化稠密矩阵乘法运算。使用脉动阵列的硬件结构,动态地进行低比特数的矩阵乘法,输出分数矩阵样本掩模;包括如下过程:
A1.以查询矩阵Q和键矩阵K作为样本化稠密矩阵乘法运算模块的输入,获取Q和K矩阵的最高的多个比特位,得到低比特数表示的Q矩阵和K矩阵;
A2.使用脉动阵列结构对步骤A1得到的低比特数表示的Q矩阵和K矩阵进行矩阵乘法操作;
A3.对矩阵乘法操作的结果进行Softmax操作;
A4.将Softmax操作得到的结果与一个阈值进行比较,得到比较结果矩阵,作为分数矩阵样本掩模输出。阈值的具体选择与稀疏度有关,通常在0.002至0.08之间。
B.建立掩模分块打包模块,进行掩模分块打包。包括如下过程:
B1.对样本化稠密矩阵乘法运算模块输出的分数矩阵样本掩模进行掩模分块打包,逐列接收并记录列编号。
B2.将超过阈值的比较结果矩阵的列号收集起来,按行打包储存在缓存中;
B3.当存在某一行中已收集的数量达到可配置稀疏矩阵乘法模块一行的运算器数量时,将缓存的结果整体输出到可配置稀疏矩阵乘法模块中,作为配置信息。
C.建立可配置稀疏矩阵乘法运算模块,使用分数矩阵固定的数据流结构在脉动阵列的基础上,将运算单元与数据寄存器阵列分离。每一个运算单元具有动态配置与同一行的数据寄存器的连接的能力,以对应上分数矩阵样本掩模。运算单元支持以下四个运算阶段,以实现稀注意力机制的计算:
C1.稀疏分数矩阵计算阶段,输入查询矩阵Q、键矩阵K和掩模配置信息,将一行中的运算单元配置到需要计算分数矩阵的位置,以输出固定的数据流的方式计算出稀疏分数矩阵S,保留在运算单元中。
C2.自然对数幂计算阶段,将稀疏分数矩阵S逐元素计算自然对数幂,原地保存在运算单元中。
C3.稀疏输出矩阵计算阶段。输入值矩阵V,以权重固定的数据流的方式,计算出稀疏分数矩阵S的自然对数幂与值矩阵V的矩阵乘法结果。计算的结果为一个输出矩阵,它在运算过程中逐步按行向运算单元阵列边缘移动,在阵列边缘被缓存和累加。
C4.除法阶段,将缓存中的输出矩阵逐元素除以一行的总和,得到输出矩阵,即注意力机制最终的结果。
通过上述步骤,即可实现可配置稀疏注意力机制的硬件加速器。
与现有技术相比,本发明的有益效果:
本发明提供一种可配置稀疏注意力机制的硬件加速器,能够高效地、动态地加速稀疏注意力机制的运算。本发明的技术优势包括:
A.本发明可以根据输入矩阵的特性,高效动态地决定分数矩阵的稀疏模式,节省了至少5.9倍的计算量,同时保持输出结果的准确性。
B.本发明可以高效地加速稀疏注意力机制的运算,具有高流通量529GOP/S,低芯片面积16.9mm2和低功耗2.76W。在较高的稀疏度下,仍然可以保持较高的流通量。
附图说明
图1为本发明中分数矩阵固定的数据流在稠密时的计算模式示意图;
图中,Q(0,k)表示查询矩阵的第0行,Q(1,k)表示其第1行,同样K(0,k)表示键矩阵的第0行,V(k,0)表示值矩阵的第0列,O(0,j)表示输出矩阵的第0行,以此类推;PE表示运算单元,S(i,j)表示分数矩阵的第i行第j列的元素;exp表示自然对数幂;div表示除法器。
图2为本发明中分数矩阵固定的数据流在稀疏时的计算模式示意图;
图中,稀疏模式的黑色方块表示需要运算的元素,白色方块表示不需要运算的元素。其余标记同图1。
图3为可配置稀疏矩阵乘法运算器的结构示意图;
图中,①表示用于储存矩阵Q的寄存器;②表示用于储存矩阵K和矩阵V的寄存器;③表示可配置运算单元;④为除法器。
图4为可配置运算单元的结构示意图;
图中,⑤表示多选器;⑥表示分数矩阵S寄存器;⑦表示结果矩阵Z寄存器;⑧表示分数矩阵S的自然对数幂寄存器以及自然对数幂运算模块;⑨表示空泡控制器。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。本发明提供一种可配置稀疏注意力机制的硬件加速器,包括:样本化稠密矩阵乘法运算模块、掩模分块打包模块和可配置稀疏矩阵乘法运算模块。在自然语言处理和计算机视觉的任务中,使用处理注意力机制包含转换器结构的人工神经网络进行推理时,可以将三个输入矩阵Q、K和V发送给本发明提供的硬件加速器,并接收硬件加速器的输出矩阵,达到提高运算速度的效果。
在自然语言处理中,Q和K矩阵是文本中单词的编码矩阵,V是与K对应的翻译后单词的编码矩阵;在计算机视觉任务中,Q和K矩阵是图像编码矩阵,V是与K对应的转换后图像编码矩阵。在完整的人工神经网络中,隐藏层的转换器的Q、K和V矩阵通常仅为中间数据。
本发明中,样本化稠密矩阵乘法运算模块为通常的矩阵乘法加速器模块,使用脉动阵列实现,而不采用现有技术中复杂的排序模块产生动态稀疏模式。对于输入的数据,截取其定点小数表示的最高若干位,通常取4位,得到低比特位数表示的矩阵。将低比特位数表示的矩阵输入到脉动矩阵中,获得矩阵乘法结果。将矩阵乘法结果移出脉动阵列,进入自然对数幂运算器。缓存其结果后,再逐元素与每一行的和与阈值的乘积进行比较,将超过阈值的输出为1,否则输出为0,得到一个一比特长的掩模矩阵。阈值的具体选择与稀疏度有关,通常在0.002至0.08之间。
本发明中的掩模分块打包模块包括一个列号计数器,多个行激活单元计数器以及缓冲区。掩模打包模块将样本化稠密矩阵乘法运算模块得到的掩模矩阵逐列输入,同时累计列号计数器。当某一行输入了值为1的元素时,将当前列号缓存入该行的缓冲区,并累计该行的激活单元计数器。当某一行的激活单元计数器达到稀疏矩阵乘法模块一行的运算单元数时,将缓冲区整体作为其配置数据输出到稀疏矩阵乘法模块中。
可配置稀疏矩阵乘法运算模块,包括可配置运算单元PE、寄存器阵列、除法器和空泡控制器。在现有的脉动阵列的基础上,将运算单元与寄存器阵列分离。每一个运算单元中,通过多选器可以动态连接同一行的寄存器,通过多阶段数据通路实现不同运算模式,并通过空泡控制器保持输出的正确性。
可配置稀疏矩阵乘法运算模块实现的是分数矩阵固定的数据流运算模式。如图1所示,在稠密矩阵的情况下,需要分4步进行运算。第一步中,矩阵Q的每一行分别输入到运算阵列的每一行中,每一行比上一行晚输入一个周期;矩阵K的每一行分别输入到运算阵列的每一列中,每一列比上一列晚一个周期。每一个运算单元PE负责计算分数矩阵S的同样位置的元素,每一个周期将输入的数据相乘后与本地储存的数据累加,并将输入的数据传递给相邻的运算单元,矩阵S的数据向右传递,矩阵K的数据向下传递。当分数矩阵S计算完毕后,进入第二步,每一个运算单元内部计算矩阵S的自然对数幂,并本地储存。第三步中,矩阵V以第一步中矩阵K的方式输入到运算阵列中。每一个运算单元保持矩阵S不变,将输入的矩阵V的数据与其相乘,并与左侧运算单元传递过来的数据相加,结果传递给右侧的运算单元,矩阵V的数据传递给下方的运算单元。最左侧的运算单元接受0作为输入,最右侧的运算单元将输出的结果存入缓存中。计算完毕后,进入第四步,将矩阵S的数据向右传递并累加得到总和,并让缓存中的输出矩阵Z逐元素除以每一行的总和,得到输出矩阵O。
在稀疏矩阵乘法的情况下,如图2所示,稀疏模式如左侧,其中黑色方块表示矩阵S中需要计算的位置,白色方块表示不需要计算的位置,可以直接记为0。右侧是运算阵列的示意图,其数据的流放方式同图1中的第一步和第三步,但仅在稀疏模式中需要计算的位置配置了运算单元,其余位置仅用寄存器保持数据流通。
可配置稀疏矩阵乘法运算器的整体架构如图3所示。图中①表示用于储存矩阵Q的寄存器,可以在一行中脉动地移动数据。②表示用于储存矩阵K和矩阵V的寄存器,可以在一列中脉动地移动数据。③表示可配置运算单元PE,每一个运算单元都与同一行中所有①和②相连,使得其可以访问同一行的任意数据,等价于可以配置在同一行中的任意位置。③与同一行的右侧相连,作为数据输出通道。最右侧与④除法器相连。每一行的可配置运算单元③的数量与目标稀疏度有关,例如稀疏度不超过50%时,每一行的③的数量是①的数量的一半。
可配置运算单元的结构和连接方式如图4所示,其中左右两个大的方框分别表示一个配置运算单元。⑤表示多选器,⑥表示分数矩阵S寄存器,⑦表示结果矩阵Z寄存器,⑧表示分数矩阵S的自然对数幂寄存器以及自然对数幂运算模块,⑨表示空泡控制器。控制信号为C1到C5,其中C1和C2为位置配置信号,在第一步时,C1和C2分别为该运算单元在一行的位置;在第三步时,C1为从⑧读取数据,C2与第一步相同。C3为阶段输入控制信号,在第一步时从⑦读数据,第二步时从左侧的⑨或者最左侧的0信号读取数据。C4为阶段输出控制信号,在第一步时,将输出存放至⑥中,在第三步时,将输出存放至⑦中。C5为空泡控制信号,是一个长度可控的移位寄存器FIFO,其长度被配置当前运算单元与右侧的运算单元之间在稀疏模式上的距离,用于保持数据结果累加的正确性。⑧与右侧运算单元的⑧相连接,使得第四步时可以求和。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (10)
1.一种可配置稀疏注意力机制的硬件加速器,包括:样本化稠密矩阵乘法运算模块、掩模分块打包模块和可配置稀疏矩阵乘法运算模块;其中:
样本化稠密矩阵乘法运算模块通过采用脉动阵列的硬件结构,用于动态地进行低比特数的矩阵乘法,并输出分数矩阵样本掩模;
掩模分块打包模块包括一个列号计数器,多个行激活单元计数器以及缓冲区;用于以样本化稠密矩阵乘法运算模块输出的分数矩阵样本掩模作为输入,逐列接收并记录列编号,并将超过阈值的比较结果的列号收集起来,按行打包储存在缓冲区中;当在某一行中已收集的数量达到可配置稀疏矩阵乘法模块一行的运算器数量时,将缓存的结果整体输出到可配置稀疏矩阵乘法模块中,作为配置信息;
可配置稀疏矩阵乘法运算模块包括可配置运算单元PE、寄存器阵列和除法器,用于实现分数矩阵固定的数据流运算模式;其中,可配置运算单元与寄存器阵列分离;寄存器阵列的同一行的寄存器,通过多阶段数据通路实现不同运算模式,并通过空泡控制器保持输出的正确性。
2.如权利要求1所述可配置稀疏注意力机制的硬件加速器,其特征是,在每一个可配置运算单元中,可通过多选器动态连接寄存器阵列的同一行的寄存器。
3.如权利要求1所述可配置稀疏注意力机制的硬件加速器,其特征是,所述可配置稀疏注意力机制的硬件加速器可应用于人工智能任务中,包括自然语言处理、机器翻译、文本分类和文本生成、图像处理。
4.如权利要求1所述可配置稀疏注意力机制的硬件加速器,其特征是,具体是通过使用动态生成分数矩阵样本掩模和分块打包机制的模块,同时通过采用基于脉动阵列的分数矩阵固定的数据流,以及可配置的运算单元,获得所述可配置稀疏注意力机制的硬件加速器;包括以下步骤:
A.建立样本化稠密矩阵乘法运算模块,进行样本化稠密矩阵乘法运算:
以查询矩阵Q和键矩阵K作为样本化稠密矩阵乘法运算模块的输入,使用脉动阵列的硬件结构,动态地进行低比特数的矩阵乘法,输出分数矩阵样本掩模;
B.建立掩模分块打包模块,进行掩模分块打包;包括如下过程:
B1.对样本化稠密矩阵乘法运算模块输出的分数矩阵样本掩模进行掩模分块打包,逐列接收并记录列编号;
B2.设置阈值,将超过阈值的比较结果矩阵的列号收集起来,按行打包储存在缓冲区中;
B3.当在某一行中已收集的数量达到可配置稀疏矩阵乘法模块一行的运算器数量时,将缓存的结果整体输出到可配置稀疏矩阵乘法模块中,作为配置信息;
C.建立可配置稀疏矩阵乘法运算模块,使用分数矩阵固定的数据流结构在脉动阵列,并将运算单元与数据寄存器阵列分离;每一个运算单元与同一行的数据寄存器的动态连接,且对应分数矩阵样本掩模;运算单元实现稀注意力机制的计算,包括以下四个运算阶段:
C1.稀疏分数矩阵计算阶段;
输入查询矩阵Q、键矩阵K和掩模配置信息,将一行中的运算单元配置到需要计算分数矩阵的位置,以输出固定的数据流的方式计算出稀疏分数矩阵S,保留在运算单元中;
C2.自然对数幂计算阶段;
将稀疏分数矩阵S逐元素计算自然对数幂,原地保存在运算单元中;
C3.稀疏输出矩阵计算阶段;
输入值矩阵V,以权重固定的数据流的方式计算出稀疏分数矩阵S的自然对数幂与值矩阵V的矩阵乘法结果;
C4.除法阶段;
将缓存中的输出矩阵逐元素除以一行的总和,得到输出矩阵,即注意力机制最终的结果;
通过上述步骤,即可实现可配置稀疏注意力机制的硬件加速器。
5.如权利要求4所述可配置稀疏注意力机制的硬件加速器,其特征是,步骤A具体包括如下过程:
A1.以查询矩阵Q和键矩阵K作为样本化稠密矩阵乘法运算模块的输入,获取Q和K矩阵的最高的多个比特位,得到低比特数表示的Q矩阵和K矩阵;
A2.使用脉动阵列结构对步骤A1得到的低比特数表示的Q矩阵和K矩阵进行矩阵乘法操作;
A3.对矩阵乘法操作的结果进行Softmax操作;
A4.将Softmax操作得到的结果与一个阈值进行比较,得到比较结果矩阵,作为分数矩阵样本掩模输出。
6.如权利要求5所述可配置稀疏注意力机制的硬件加速器,其特征是,所述阈值的具体选择与稀疏度有关,通常在0.002至0.08之间。
7.如权利要求4所述可配置稀疏注意力机制的硬件加速器,其特征是,步骤C3中,所述矩阵乘法结果为一个输出矩阵,在运算过程中逐步按行向运算单元阵列边缘移动,在阵列边缘被缓存和累加。
8.如权利要求4所述可配置稀疏注意力机制的硬件加速器,其特征是,在自然语言处理和计算机视觉任务处理中,将输入矩阵发送给所述可配置稀疏注意力机制的硬件加速器,输入矩阵包括查询矩阵Q,键矩阵K和值矩阵V;通过硬件加速器得到输出矩阵。
9.如权利要求4所述可配置稀疏注意力机制的硬件加速器,其特征是,在自然语言处理中,矩阵Q和K均为文本中单词的编码矩阵,V是与K对应的翻译后单词的编码矩阵。
10.如权利要求4所述可配置稀疏注意力机制的硬件加速器,其特征是,在计算机视觉任务中,Q和K矩阵是图像编码矩阵,V是与K对应的转换后图像编码矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111197446.4A CN113901747B (zh) | 2021-10-14 | 2021-10-14 | 一种可配置稀疏注意力机制的硬件加速器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111197446.4A CN113901747B (zh) | 2021-10-14 | 2021-10-14 | 一种可配置稀疏注意力机制的硬件加速器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113901747A true CN113901747A (zh) | 2022-01-07 |
CN113901747B CN113901747B (zh) | 2024-07-16 |
Family
ID=79192129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111197446.4A Active CN113901747B (zh) | 2021-10-14 | 2021-10-14 | 一种可配置稀疏注意力机制的硬件加速器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113901747B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117634568A (zh) * | 2023-06-05 | 2024-03-01 | 合肥辉羲智能科技有限公司 | 一种基于数据流的注意力机制加速器 |
CN118036678A (zh) * | 2024-04-11 | 2024-05-14 | 清华大学 | 自动化注意力稀疏化方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472350A (zh) * | 2018-10-30 | 2019-03-15 | 南京大学 | 一种基于块循环稀疏矩阵的神经网络加速*** |
CN110991480A (zh) * | 2019-10-31 | 2020-04-10 | 上海交通大学 | 一种基于注意力机制的稀疏编码方法 |
CN112949856A (zh) * | 2021-03-09 | 2021-06-11 | 华东师范大学 | 基于稀疏注意力机制的多智能体强化学习方法及*** |
CN113077047A (zh) * | 2021-04-08 | 2021-07-06 | 华南理工大学 | 一种基于特征图稀疏性的卷积神经网络加速器 |
-
2021
- 2021-10-14 CN CN202111197446.4A patent/CN113901747B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472350A (zh) * | 2018-10-30 | 2019-03-15 | 南京大学 | 一种基于块循环稀疏矩阵的神经网络加速*** |
CN110991480A (zh) * | 2019-10-31 | 2020-04-10 | 上海交通大学 | 一种基于注意力机制的稀疏编码方法 |
CN112949856A (zh) * | 2021-03-09 | 2021-06-11 | 华东师范大学 | 基于稀疏注意力机制的多智能体强化学习方法及*** |
CN113077047A (zh) * | 2021-04-08 | 2021-07-06 | 华南理工大学 | 一种基于特征图稀疏性的卷积神经网络加速器 |
Non-Patent Citations (3)
Title |
---|
YU-HSIN CHEN 等: "Eyeriss v2: A Flexible Accelerator for Emerging Deep Neural Networks on Mobile Devices", 《 IEEE JOURNAL ON EMERGING AND SELECTED TOPICS IN CIRCUITS AND SYSTEMS》, 11 April 2019 (2019-04-11) * |
李永博;王琴;蒋剑飞;: "稀疏卷积神经网络加速器设计", 微电子学与计算机, no. 06, 5 June 2020 (2020-06-05) * |
王硕 等: "开源硬件与开源EDA工具:芯片未来设计的加速器", 《前沿科学》, no. 4, 15 April 2019 (2019-04-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117634568A (zh) * | 2023-06-05 | 2024-03-01 | 合肥辉羲智能科技有限公司 | 一种基于数据流的注意力机制加速器 |
CN118036678A (zh) * | 2024-04-11 | 2024-05-14 | 清华大学 | 自动化注意力稀疏化方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113901747B (zh) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yepez et al. | Stride 2 1-D, 2-D, and 3-D Winograd for convolutional neural networks | |
US11710032B2 (en) | Pooling unit for deep learning acceleration | |
Fan et al. | Reconfigurable acceleration of 3D-CNNs for human action recognition with block floating-point representation | |
Dong et al. | Heatvit: Hardware-efficient adaptive token pruning for vision transformers | |
CN115186802A (zh) | 基于卷积神经网络的块稀疏方法、装置及处理单元 | |
US20220222533A1 (en) | Low-power, high-performance artificial neural network training accelerator and acceleration method | |
Shu et al. | High energy efficiency FPGA-based accelerator for convolutional neural networks using weight combination | |
CN114996638A (zh) | 一种顺序架构的可配置快速傅里叶变换电路 | |
Tao et al. | Hima: A fast and scalable history-based memory access engine for differentiable neural computer | |
CN113901747A (zh) | 一种可配置稀疏注意力机制的硬件加速器 | |
CN111985626A (zh) | 一种加速rnn网络的***、方法及存储介质 | |
Wang et al. | COSA: Co-Operative Systolic Arrays for Multi-head Attention Mechanism in Neural Network using Hybrid Data Reuse and Fusion Methodologies | |
CN115204373A (zh) | 一种卷积神经网络的快速卷积及缓存模式的设计方法 | |
CN113378109B (zh) | 一种基于存内计算的混合基快速傅里叶变换计算电路 | |
Hadnagy et al. | Efficient implementation of convolutional neural networks on FPGA | |
Zhong et al. | An ultra high-speed FFT processor | |
Huynh | Evaluation of artificial neural network architectures for pattern recognition on fpga | |
CN112992248A (zh) | 一种基于fifo的可变长循环移位寄存器的pe计算单元结构 | |
Mertzios | Parallel modeling and structure of nonlinear Volterra discrete systems | |
CN112396153A (zh) | 一种用于深度学习的加速装置及计算装置 | |
KR100667188B1 (ko) | 고속 푸리에 변환 장치 및 고속 푸리에 변환 방법 | |
CN112712174B (zh) | 全频域卷积神经网络的硬件加速器、加速方法和图像分类方法 | |
US20220309123A1 (en) | Fast fourier transform device and digital filter device | |
US20230289397A1 (en) | Fast fourier transform device, digital filtering device, fast fourier transform method, and non-transitory computer-readable medium | |
CN112749799B (zh) | 基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |