CN1560727A - 一种新型“一间隔跳跃”高效矩阵乘法器 - Google Patents
一种新型“一间隔跳跃”高效矩阵乘法器 Download PDFInfo
- Publication number
- CN1560727A CN1560727A CNA2004100163537A CN200410016353A CN1560727A CN 1560727 A CN1560727 A CN 1560727A CN A2004100163537 A CNA2004100163537 A CN A2004100163537A CN 200410016353 A CN200410016353 A CN 200410016353A CN 1560727 A CN1560727 A CN 1560727A
- Authority
- CN
- China
- Prior art keywords
- matrix
- data
- multiplier
- multiplication
- multiplication unit
- 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.)
- Pending
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明为一种“一间隔跳跃”高效矩阵乘法器。它以基本的Knng-Leiserson矩阵乘法为基础,对每层数据之间的间隔进行压缩,然后重新设计各个乘法单元的连接方式和数据输入,并改变乘法器的运算次序,使得乘法运算在同一个垂线方向的运算单元中跳跃进行,以实现乘法器的正确功能,得到更高效率的矩阵乘法器。其乘法单元的利用率达到100%,其运算的速度比Knng-Leiserson乘法器快得多。
Description
技术领域
本发明属于电子技术领域,具体涉及一种“一间隔跳跃”结构的高效矩阵乘法器。
技术背景
并发运算(Concurrent)是现代计算机体系设计中非常重要的方面,它主要是指大量的计算在同时段进行,是并行运算的一种特殊形式。在DSP设计,计算机体系结构实现等方面都有十分广泛的应用。
一般我们采用处理器阵列的方式来实现并发运算,具体是通过有规则排列的VLSI芯片,实现向量和矩阵的运算,进而实现各种实际的并发运算[4]。
在各种排列规则中,矩阵乘法器的实现是最为重要的,各种向量都可以看成是特殊的矩阵。因此,设计高效和快速的矩阵乘法器,就成为了并发运算系统设计的核心问题。矩阵乘法器的基本单元是乘法运算单元(如图1所示),再加上三个数据寄存器RA,RB和RC。其中A是乘数,B是被乘数,C是乘积。单元的输入和输出关系为:
阵列连接方式主要有三种:线性连接,正交连接和六角形连接(如图2)。通过这些连接,可以实现向量和矩阵运算,以及线性方程组的求解。这里所讨论的主要是六角形连接。
两个矩阵相乘,在数学上可以将它们分别展开,然后求解。即:
[A]·[B]=[C] 。。。(1)
一般矩阵是稀疏矩阵,而稀疏矩阵一般可以压缩成带状矩阵,这样就可以大大节省乘法累加器的数目。如果矩阵A和B是带状矩阵,其带宽分别为WA和WB,那么矩阵C也是带状矩阵,其带宽为WC=WA+WB-1[1,2,3]:
将带状矩阵展开,可以得到具体的乘法器输入输出关系:
最基本的Kung-Leiserson矩阵乘法器[4,5,6]使用六角矩阵,WA=WB=4,所以该矩阵是4×4矩阵,输出矩阵C的带宽为7。数据按照节拍送入,输出矩阵C由六角矩阵的上方送出(如图3)。
该矩阵乘法器通过乘数阵列,被乘数阵列和输出阵列的同步脉动,从而实现了矩阵相乘的功能。
该矩阵乘法器有很大的缺点,就是单元利用率太低,仅为三分之一,即每一个节拍运算的时候,16个单元中仅5个单元或6个单元在运算,其它的单元为空操作。
n阶矩阵相乘所需要的时间节拍为:3n+min(WA,WB),其中min(WA,WB)是头尾未充分利用的时间节拍。如果n>>WA,WB,则时间节拍近似为3n。
对于大规模并发运算来说,这样的结构太浪费资源了。因此许多研究者设计了新结构的高效矩阵乘法器,比如Huang-Abraham乘法器和带有容错处理功能的CHAN-Wey乘法器[1],但这些乘法器的利用率和稳定程度并不高,本发明在最基本的Kung-Leiserson矩阵乘法器的基础上,设计出了更好的结构,从而提高了矩阵相乘的效率和运算的稳定程度。
参考文献:
[1]S.-W.Chan and C.-L.Wey,The design of concurrent error diagnosable systolicarrays for band matrix multiplications,IEEE Trans.Computer-Aided Design.,vol.7,pp.21-37,Jan.1988.
[2]J.M.RABAEY,Chapter 7:Designing Arithmetic Building Blocks,in Digital IntegeratedCircuits(a design perspective).Prentice-Hall International,Inc.,pp 383-433,1999.
[3]X.M.Li,and Z.R.Jiang,Chapter 5:System of Linear Equations Parallel Solution,inParallel Algorithms.Hunan,China:Hunan Science and Technology Press,pp 247-301,1991.
[4]H.T.Kung,Why systolic architecture?,IEEE Computer,vol.15,No 1,pp.37-45,Jan.1982.
[5]H.T.Kung,and C.E.Leiserson,Algorithms for VLSI processor arrays,in Introduction to VLSISystems,by C.A.Mead and L.A.Conway.Reading,MA:Addison-Wesley,1980.
[6]K.H.Huang and J.A.Abraham,Efficient parallel algorithms for processor arrays,inProc.IEEE ICPP,pp.271-279,1982.
发明内容
本发明的目的在于提出一种资源利用率高,计算稳定的高效矩阵乘法器,以便能够充分利用乘法单元,在同一时刻有尽可能多的单元并行运算。
本发明提出的矩阵乘法器是一种“一间隔跳跃”矩阵乘法器,以基本的Kung-Leiserson矩阵乘法器为基础,对每层数据之间的间隔进行压缩(矩阵压缩),然后重新设计各个乘法单元的连接方式和数据输入;并改变乘法器的运算次序,使得乘法运算在同一个垂线方向上的运算单元中跳跃进行(数据跳跃),以实现乘法器的正确功能。从而充分利用乘法器的并行流程,得到更高效率的矩阵乘法器。
本发明提出的矩阵乘法器采用了以下处理方式:矩阵压缩、先行处理和数据前移。
矩阵压缩:最基本的Kung-Leiserson矩阵乘法器(图3)的输出矩阵C的排列是很有规律的,以c11,c22,…..cnn为中轴,其余各项分别在左右展开。每个相邻的cnn之间的距离是3个时间节拍;本发明提出的“一间隔跳跃”矩阵乘法器是将Kung-Leiserson矩阵乘法器输出矩阵C中相邻的cnn之间的节拍缩短为一个时间节拍,使得输出矩阵C变得比较密集,而同样能够实现乘法的功能。
先行处理:将输出矩阵C压缩后,乘数矩阵A和被乘数矩阵B的排列也会变得密集,但是这些排列并不是简单的把原来的系数矩阵进行压缩,而是把原来需要在相乘时进行的计算先行处理,以系数表的方式存入到乘法器中,以达到加快乘法器速度,提高单元利用率的目的。
数据前移:“矩阵压缩”和“先行处理”之后,对矩阵乘法器进行调整,为了避免出现乘数和被乘数错位的情况,将落后的那个乘数提前(如果落后的是被乘数,那么就将被乘数提前),使得乘数同时出现在下面几个乘法单元的输入端。而不是照着基本六角形连接的方式,使数据按照节拍依次出现在下面的乘法单元的输入端(图4)。通过这些方法,可以提高乘法器的效率,实现稳定的乘法功能。
“一间隔跳跃”高效矩阵乘法器
最基本的Kung-Leiserson矩阵乘法器,每个相邻的cnn之间的距离是3个时间节拍。本发明将时间间隔压缩为1个时间节拍,并通过“先行处理”和“数据前移”的方法,使得乘数,被乘数的输入与运算单元的节拍能够配合上。
但是由于矩阵压缩比较大,光靠“先行处理”和“数据前移”的方法并不能完全实现正确的乘法功能。为了使乘法器能够正常工作,本发明改变了乘法器的运算次序,使得乘法运算在同一个垂线方向上的运算单元中跳跃进行(数据跳跃)(图5),其主要目的是满足乘法运算的功能,使得并行运算不会断链。该矩阵乘法器被命名为“一间隔跳跃高效矩阵乘法器”,具体的结构如图6所示。其具体节拍情况如下:
1、第一拍:结果数据矩阵C的部分数据出现在乘法矩阵下端;
2、第二拍:更多的结果数据矩阵C的数据出现在乘法矩阵下端,且第一拍中输入的矩阵C中的数据向上移动一个乘法单元;但由于垂直方向连接次序是跳跃进行的,该数据跳跃到乘法矩阵中相应的乘法单元处;同时输入乘数和被乘数数据矩阵A和B的部分数据,该数据可以根据具体的连接方式同时出现在几个乘法单元的输入端;此时结果矩阵C的部分数据和相应的乘数及被乘数数据相遇,开始进行单个乘法单元的乘加运算;
3、第三拍:结果矩阵C的输入数据继续向上跳跃一个乘法单元,同时乘数矩阵A和被乘数矩阵B的数据分别向右下和左下移动一个乘法单元;同样,这两个方向的连接关系也是跳跃进行的,所以该数据跳跃到乘法矩阵中相应的乘法单元处。那些三个输入端都有数据的乘法单元,开始进行乘加运算;
4、第四拍:数据矩阵A,B和C的数据继续按相应的方向跳动,更多的乘法单元开始运算;
5、第五拍:结果矩阵C的部分数据已经得到了结果,通过最后一次数据跳跃送出,其他的数据继续进行运算和跳跃;此时所有的乘法单元都开始了运算,单元利用率达到了最高;
6、第六拍:数据的运算和跳跃持续进行,直到结果矩阵C的所有数据都计算完为止。
从节拍图中可以看出,除去头尾未充分利用的时间节拍外,在每一个节拍运算时,16个乘法单元全都在运算,单元利用率为16/16,即100%。采用这种结构,n阶矩阵相乘所需要的平均时间节拍为:n+min(WA,WB),其中min(WA,WB)是头尾未充分利用的时间节拍。如果n>>WA,WB,则时间节拍近似为n。
本发明原理的特点:
1、采用软件中并行处理的原理,实现了硬件的并行处理,以达到加快乘法器处理速度,提高效率的目的。
2、利用“矩阵压缩”,“先行处理”,“数据前移”和“数据跳跃”的方法,对并行化后的乘法器连接次序进行调整,以实现正确的乘法功能。
3、通过对矩阵数据的间隔进行压缩,能够实现100%的乘法单元利用率,而且稳定状态时的乘法单元利用率比较平稳。此外该乘法器电路连接比较复杂,且要求每级乘法单元驱动下一级单元的能力比较大,适用于对利用率,稳定度及集成性要求极高的场合。
本发明具有以下优点:
1、通过对矩阵数据的间隔进行压缩,使其从最基本的Kung-Leiserson矩阵乘法器的“三个时钟节拍间隔”减少为“一个时钟节拍间隔”,并通过“数据跳跃”解决了并行运算断链的问题,从而实现了100%的乘法单元利用率,运算效率比最基本的Kung-Leiserson乘法器1/3的利用率提高了200%。
2、由于实现了100%的乘法单元利用率,“一间隔跳跃”高效矩阵乘法器的乘法运算速度比最基本的Kung-Leiserson乘法器快了很多。
3、本发明能够较快地达到稳定工作状态(4个时钟节拍);而且稳定状态时乘法单元利用率恒定为100%,不会上下波动;虽然芯片结构比较复杂,但集成性比较好,有利于大规模生产。
附图说明
图1:乘法运算单元
图2:阵列连接方式
图3:最基本的Kung-Leiserson矩阵乘法器
图4:数据前移
图5:数据跳跃示意图
图6:一间隔跳跃高效矩阵乘法器及其时间节拍
图7:两种乘法器结构在不同时间节拍下对应的单元利用率。
具体实施方式
下面通过具体实例进一步说明本发明:
对图6所示的乘法器结构进行单时钟节拍测试,具体的数据流如图5所示。最基本的Kung-Leiserson矩阵乘法器的数据流是沿着矩阵的垂线,自下而上的流动。而利用“数据跳跃”后,数据流在矩阵的乘法单元中跳跃,如图5中输入=>1=>4=>3=>2=>输出的次序。
通过与原有的结果进行比较,可以得到相应的效率和驱动表。从表中看出,“一间隔跳跃”高效矩阵乘法器的效率要比最基本的Kung-Leiserson结构1/3的利用率提高了200%,但同时驱动多个乘法单元的情况要比原来的Kung-Leiserson乘法器多。
表1:不同时钟节拍的乘法单元利用数目
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
Kung-Leiserson | 0 | 0 | 1 | 3 | 5 | 5 | 6 | 5 | 5 | 6 |
一间隔跳跃乘法器 | 0 | 3 | 9 | 15 | 16 | 16 | 16 | 16 | 16 | 16 |
表2:不同时钟节拍的乘法单元利用率
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
Kung-Leiserson | 0 | 0 | 6.25 | 18.75 | 31.25 | 31.25 | 37.5 | 31.25 | 31.25 | 37.5 |
一间隔跳跃乘法器 | 0 | 18.75 | 56.25 | 93.75 | 100 | 100 | 100 | 100 | 100 | 100 |
表3:驱动乘法单元的数目
驱动乘法单元数目 | 驱动一个单元 | 驱动两个单元 | 驱动三个单元 | 驱动四个单元 | 驱动单元总数 |
Kung-Leiserson | 48 | 0 | 0 | 0 | 48 |
一间隔跳跃乘法器 | 32 | 2 | 4 | 0 | 38 |
表4:矩阵乘法器的总体性能比较
A.w1和w2是两个输入数据矩阵的带宽
B.平均利用效率=每节拍平均运算乘法单元数目/运算乘法单元总数
C.min(w1,w2)指乘法器达到稳定状态之前所经过的最小时钟节拍数目
图7给出了“一间隔跳跃”高效矩阵乘法器在不同时间节拍下对应的单元利用率,并与最基本的Kung-Leiserson乘法器的相应单元利用率进行比较,可以看出平均单元利用率从约33%上升为100%,并且乘法器能够较快地达到正常工作状态。
因此,该实例表明,采用本发明进行乘法运算,可以极大地提高乘法运算单元的利用率,加快乘法器的运算速度,且运算稳定度非常高,芯片集成度也很好。代价是电路的结构比较复杂,且每个乘法单元的驱动力要求提高。因此该乘法器适用于对利用率,稳定度及集成性要求极高,而不在意乘法器复杂性和成本的场合。
Claims (3)
1、一种矩阵乘法器,以基本的Knng-Leiserson矩阵乘法器为基础,其特征在于采用以下处理方式:
(1)矩阵压缩,将Knng-Leiserson矩阵乘法器输出矩阵C中相邻的Cnn之间的节拍缩短为一个节拍;
(2)先行处理,将输出矩阵C压缩后,对乘数矩阵A和被乘数矩阵B,把原来需要相乘时进行的计算先行处理,以系数表示的方式存入到乘法器中;
(3)数据前移,将落后的那个乘数提前,使得乘数同时出现在下面几个乘法单元的输入端。
2、根据权利要求1所述的矩阵乘法器,其特征在于将乘法运算在同一个垂线方向上的运算单元中跳跃进行。
3、根据权利要求2所述的矩阵乘法器,其特征在于具体节拍情况如下:
(1)第一拍:结果数据矩阵C的部分数据出现在乘法矩阵下端;
(2)第二拍:更多的结果数据矩阵C的数据出现在乘法矩阵下端,且第一拍中输入的矩阵C中的数据向上移动一个乘法单元;但由于垂直方向连接次序是跳跃进行的,该数据跳跃到乘法矩阵中相应的乘法单元处;同时输入乘数和被乘数数据矩阵A和B的部分数据,该数据可以根据具体的连接方式同时出现在几个乘法单元的输入端;此时结果矩阵C的部分数据和相应的乘数及被乘数数据相遇,开始进行单个乘法单元的乘加运算;
(3)第三拍:结果矩阵C的输入数据继续向上跳跃一个乘法单元,同时乘数矩阵A和被乘数矩阵B的数据分别向右下和左下移动一个乘法单元;同样,这两个方向的连接关系也是跳跃进行的,所以该数据跳跃到乘法矩阵中相应的乘法单元处。那些三个输入端都有数据的乘法单元,开始进行乘加运算;
(4)第四拍:数据矩阵A,B和C的数据继续按相应的方向跳动,更多的乘法单元开始运算;
(5)第五拍:结果矩阵C的部分数据已经得到了结果,通过最后一次数据跳跃送出,其他的数据继续进行运算和跳跃;此时所有的乘法单元都开始了运算,单元利用率达到了最高;
(6)第六拍:数据的运算和跳跃持续进行,直到结果矩阵C的所有数据都计算完为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2004100163537A CN1560727A (zh) | 2004-02-16 | 2004-02-16 | 一种新型“一间隔跳跃”高效矩阵乘法器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2004100163537A CN1560727A (zh) | 2004-02-16 | 2004-02-16 | 一种新型“一间隔跳跃”高效矩阵乘法器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1560727A true CN1560727A (zh) | 2005-01-05 |
Family
ID=34440444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004100163537A Pending CN1560727A (zh) | 2004-02-16 | 2004-02-16 | 一种新型“一间隔跳跃”高效矩阵乘法器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1560727A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107742150A (zh) * | 2016-10-31 | 2018-02-27 | 腾讯科技(深圳)有限公司 | 一种卷积神经网络的数据处理方法和装置 |
-
2004
- 2004-02-16 CN CNA2004100163537A patent/CN1560727A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107742150A (zh) * | 2016-10-31 | 2018-02-27 | 腾讯科技(深圳)有限公司 | 一种卷积神经网络的数据处理方法和装置 |
CN107742150B (zh) * | 2016-10-31 | 2020-05-12 | 腾讯科技(深圳)有限公司 | 一种卷积神经网络的数据处理方法和装置 |
US11222240B2 (en) | 2016-10-31 | 2022-01-11 | Tencent Technology (Shenzhen) Company Limited | Data processing method and apparatus for convolutional neural network |
US11593594B2 (en) | 2016-10-31 | 2023-02-28 | Tencent Technology (Shenzhen) Company Limited | Data processing method and apparatus for convolutional neural network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ma et al. | Multiplier policies for digital signal processing | |
CN1735881A (zh) | 用于执行计算操作的方法和系统以及一种设备 | |
CN1731345A (zh) | 可扩展高基蒙哥马利模乘算法及其电路结构 | |
CN1570848A (zh) | 使用进位存储加法的蒙哥马利模乘器及其方法 | |
CN110851779B (zh) | 用于稀疏矩阵运算的脉动阵列架构 | |
CN1288545A (zh) | 运算装置及运算方法 | |
Wang et al. | DSP-efficient hardware acceleration of convolutional neural network inference on FPGAs | |
WO2022112739A1 (en) | Activation compression method for deep learning acceleration | |
CN111401554A (zh) | 支持多粒度稀疏与多模式量化的卷积神经网络的加速器 | |
CN112434801A (zh) | 一种按照比特精度进行权重拆分的卷积运算加速方法 | |
Li et al. | A precision-scalable energy-efficient bit-split-and-combination vector systolic accelerator for NAS-optimized DNNs on edge | |
WO2022205197A1 (zh) | 一种矩阵乘法器、矩阵计算方法及相关设备 | |
CN1811698A (zh) | 大数模幂系统的硬件高基实现方法 | |
CN1560727A (zh) | 一种新型“一间隔跳跃”高效矩阵乘法器 | |
CN1783060A (zh) | 乔列斯基分解算法装置 | |
CN110825346B (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
CN1108557C (zh) | 减少高速算术单元中超前进位加法器级数的结构和方法 | |
CN1187698C (zh) | 内在并行的二维离散小波变换的vlsi结构设计方法 | |
CN1560725A (zh) | 一种新型“两间隔并行”高效矩阵乘法器 | |
CN110688094B (zh) | 一种基于并行循环压缩的余数运算电路及方法 | |
CN1369777A (zh) | 时分型矩阵计算器 | |
CN1191547C (zh) | 在数字系统中建立和实现子波滤波器的方法和装置 | |
CN1560726A (zh) | 一种新型“一间隔并行”高效矩阵乘法器 | |
Raju et al. | Design and implementation of low power and high performance Vedic multiplier | |
CN1874510A (zh) | 一种用于视频编码的整数离散余弦变换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |