CN1560727A - 一种新型“一间隔跳跃”高效矩阵乘法器 - Google Patents

一种新型“一间隔跳跃”高效矩阵乘法器 Download PDF

Info

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
Application number
CNA2004100163537A
Other languages
English (en)
Inventor
杨贇
赵文庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CNA2004100163537A priority Critical patent/CN1560727A/zh
Publication of CN1560727A publication Critical patent/CN1560727A/zh
Pending legal-status Critical Current

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 11 a 12 · · · a 1 n a 21 a 22 · · · a 2 n · · · a n 1 a n 2 · · · a nn · b 11 b 12 · · · b 1 n b 21 b 22 · · · b 2 n · · · b n 1 b n 2 · · · b nn = c 11 c 12 · · · c 1 n c 21 c 22 · · · c 2 n · · · c n 1 c n 2 · · · c nn - - - ( 2 )
一般矩阵是稀疏矩阵,而稀疏矩阵一般可以压缩成带状矩阵,这样就可以大大节省乘法累加器的数目。如果矩阵A和B是带状矩阵,其带宽分别为WA和WB,那么矩阵C也是带状矩阵,其带宽为WC=WA+WB-1[1,2,3]:
Figure A20041001635300041
Figure A20041001635300042
将带状矩阵展开,可以得到具体的乘法器输入输出关系:
Figure A20041001635300044
Figure A20041001635300045
Figure A20041001635300046
Figure A20041001635300047
Figure A20041001635300051
最基本的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:矩阵乘法器的总体性能比较
Figure A20041001635300091
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的所有数据都计算完为止。
CNA2004100163537A 2004-02-16 2004-02-16 一种新型“一间隔跳跃”高效矩阵乘法器 Pending CN1560727A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107742150A (zh) * 2016-10-31 2018-02-27 腾讯科技(深圳)有限公司 一种卷积神经网络的数据处理方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
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
CN1735881A (zh) 用于执行计算操作的方法和系统以及一种设备
CN1731345A (zh) 可扩展高基蒙哥马利模乘算法及其电路结构
Kung et al. A two-level pipelined systolic array for convolutions
US20220164663A1 (en) Activation Compression Method for Deep Learning Acceleration
CN1570848A (zh) 使用进位存储加法的蒙哥马利模乘器及其方法
CN110851779B (zh) 用于稀疏矩阵运算的脉动阵列架构
Wang et al. DSP-efficient hardware acceleration of convolutional neural network inference on FPGAs
CN111401554A (zh) 支持多粒度稀疏与多模式量化的卷积神经网络的加速器
CN112434801A (zh) 一种按照比特精度进行权重拆分的卷积运算加速方法
CN113283587A (zh) 一种Winograd卷积运算加速方法及加速模块
CN1568456A (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结构设计方法
CN110688094B (zh) 一种基于并行循环压缩的余数运算电路及方法
CN1560725A (zh) 一种新型“两间隔并行”高效矩阵乘法器
CN1369777A (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