CN111581595A - 一种矩阵乘法计算方法及计算电路 - Google Patents
一种矩阵乘法计算方法及计算电路 Download PDFInfo
- Publication number
- CN111581595A CN111581595A CN202010334174.7A CN202010334174A CN111581595A CN 111581595 A CN111581595 A CN 111581595A CN 202010334174 A CN202010334174 A CN 202010334174A CN 111581595 A CN111581595 A CN 111581595A
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- matrix
- same
- calculation
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 228
- 238000004364 calculation method Methods 0.000 title claims abstract description 205
- 238000000034 method Methods 0.000 claims abstract description 52
- 230000015654 memory Effects 0.000 claims description 160
- 238000009825 accumulation Methods 0.000 claims description 24
- 238000003491 array Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种矩阵乘法计算方法及计算电路,其中,计算方法包括:存储第一阵列数据,其中,所述第一阵列数据被限定为多个Nα×β的第一子数据矩阵;存储第二阵列数据,其中,所述第二阵列数据被限定为多个β×γ的第二子数据矩阵;从第一子数据矩阵中同步获取N个同列第一数据,从第二子数据矩阵中获取第二数据,并在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算。通过此方法能够提高计算效率。
Description
技术领域
本发明涉及数字电路技术领域,具体涉及一种矩阵乘法计算方法及计算电路。
背景技术
矩阵是高等代数中常见工具,常见于统计分析等应用数学学科中。在科学、工程、机械或经济、金融等行业发挥着不可替代的作用。其中,通用矩阵乘法(General MatrixMultiply,GEMM)运算是非常重要的算子之一,该算子常见于各种异构计算设备的软件支持包中。
上层软件的功能离不开底层硬件的支持,实现适用于GEMM算子的计算电路成为设计高性能计算芯片的重要工作之一。在工程实践中,通常需要将时序、功耗、带宽等多种问题统筹考虑,以使得设计达到最优。现有的GEMM计算电路在乘法器的输入端口网络上的设计以及流程调度方面优化不充分,存在计算效率低等问题。
发明内容
本发明提供一种矩阵乘法计算方法及电路,其能够在进行矩阵乘法计算时提高计算效率。
为解决上述技术问题,本发明提供的第一个技术方案为:提供一种矩阵乘法计算方法,包括:存储第一阵列数据,其中,第一阵列数据被限定为多个Nα×β的第一子数据矩阵;存储第二阵列数据,其中,所述第二阵列数据被限定为多个β×γ的第二子数据矩阵;从第一子数据矩阵中同步获取N个同列第一数据,从第二子数据矩阵中获取第二数据,并在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算。
其中,所述从第一子数据矩阵中同步获取N个同列第一数据,从第二子数据矩阵中获取第二数据,并在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算之后还包括:累加不同的所述第一子数据阵列间的同行第一数据与不同的所述第二子数据矩阵间的同列第二数据的计算结果。
其中,所述累加不同的所述第一子数据阵列间的同行第一数据与不同的所述第二子数据矩阵间的同列第二数据的计算结果之后还包括:存储所述第一数据与所述第二数据进行第一运算的计算结果,并在存储所述第一数据与所述第二数据进行第一运算的计算结果的过程中,将存储的上一计算任务中的所述第一数据及所述第二数据进行第一运算的计算结果输出至外部设备。
其中,N等于2。
其中,所述从第一子数据矩阵中同步获取N个同列第一数据,从第二子数据矩阵中获取第二数据还包括:将从所述第一子数据矩阵中获取N个同列第一数据的读取频率保持与从所述第二子数据矩阵中获取第二数据的读取频率相同。
其中,所述将从所述第一子数据矩阵中获取N个同列第一数据的读取频率保持与从所述第二子数据矩阵中获取第二数据的读取频率相同具体包括:将从所述第一子数据矩阵中获取N个同列第一数据的读取时钟偏移180度;以偏移180度的读取时钟而读取所述第二子数据中的第二数据。
其中,所述存储所述第一数据与所述第二数据进行第一运算的计算结果,并在存储所述第一数据与所述第二数据进行第一运算的计算结果的过程中,将存储的上一计算任务中的所述第一数据及所述第二数据进行第一运算的计算结果输出至外部设备还包括:检测所述第一数据及所述第二数据进行第一运算是否结束;若是,将所述第一数据与所述第二数据进行第一运算的计算结果输出至外部设备,并在输出所述第一数据与所述第二数据进行第一运算的计算结果的过程中,存储下一计算任务中的所述第一数据及所述第二数据进行第一运算的计算结果。
其中,所述从第一子数据矩阵中同步获取N个同列第一数据,从第二子数据矩阵中获取第二数据,并在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算还包括:在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算的过程中,从所述第一子数据矩阵中同步获取另一组N个同列第一数据;在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算完成后,将获取的另一组N个同列第一数据与所述第二数据进行矩阵乘法运算。
为解决上述技术问题,本发明提供的第二个技术方案为:提供一种矩阵乘法计算电路,包括:第一存储器,用于存储第一阵列数据,其中,所述第一阵列数据被限定为多个Nα×β的第一子数据矩阵;第二存储器,用于存储第二阵列数据,其中,所述第二阵列数据被限定为多个β×γ的第二子数据矩阵;乘加器阵列,包括多个乘加计算单元,其排列成α×β的矩阵,其中,每个乘加计算单元的第一输入端通过一个对应的随机存储器而连接至所述第一存储器,以从所述第一子数据矩阵中同步读取并存储N个同列第一数据,并在N个时钟周期依次分别将所述N个同列第一数据输入至对应的所述乘加计算单元,且每个乘加计算单元的第二输入端连接至所述第二存储器以在所述N个时钟周期内从所述第二子数据阵列中读取第二数据,从而对所述第一数据和所述第二数据进行矩阵乘法计算。
其中,每个所述乘加计算单元包括乘法器和加法器,其中,所述乘法器的第一输入端作为所述乘加计算单元的所述第一输入端,以在所述N个时钟周期依次分别接收所述随机存储器所传来的所述N个同列第一数据;所述乘法器的第二输入端作为所述乘加计算单元的所述第二输入端,以在所述N个时钟周期内从所述第二子数据阵列中读取所述第二数据;所述加法器的第一输入端连接所述乘法器的输出端以接收所述乘法器的输出结果,所述加法器的输出端作为对应的所述乘加计算单元的输出端,而所述加法器的第二输入端连接同一行相邻的另一所述乘加计算单元的所述输出端,以使同一行的所述乘加计算单元的输出级联在一起后输出。
其中,矩阵乘法计算电路进一步包括:
多个环形存储器,其中,所述多个环形存储器包括第一环形存储器及第二环形存储器,在所述第一环形存储器连接所述乘加器阵列,以存储所述第一数据及所述第二数据进行矩阵乘法计算的计算结果时,所述第二环形存储器将自身存储的上一计算任务中的所述第一数据及所述第二数据进行矩阵乘法计算的计算结果输出至外部设备。
其中,矩阵乘法计算电路进一步包括:累加电路,连接在所述乘加器阵列与多个所述环形存储器之间,以累加不同的所述第一子数据阵列间的同行第一数据与不同的所述第二子数据矩阵间的同列第二数据的计算结果。
其中,矩阵乘法计算电路进一步包括:π移相器,连接在所述第二存储器和所述乘加器阵列的第二输入端之间,以使每个所述乘加计算单元从所述随机存储器的读取频率与从所述第二存储器的读取频率相同。
本发明的有益效果是:区别于现有技术的情况,本发明提供的矩阵乘法计算方法中,通过从第一存储器中存储的第一子数据矩阵中读取N个同列第一数据,从第二子数据矩阵中获取第二数据,并在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算。相较于现有的在将第一子数据矩阵中的所有第一数据全部读取后才可进行矩阵乘法运算的方式,本申请减少了读取第一数据的时间,提高了计算效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
图1是本发明矩阵乘法计算电路的第一实施例的结构示意图;
图2是本发明矩阵乘法计算电路的第二实施例的结构示意图;
图3a是本发明矩阵乘法计算电路中未启用π移相器13时第一数据及第二数据进行乘法运算的时序波形图;
图3b是本发明矩阵乘法计算电路中启用π移相器13时第一数据及第二数据进行乘法运算的时序波形图;
图4是本发明矩阵乘法计算方法的第一实施例的流程示意图;
图5是本发明矩阵乘法计算方法的第二实施例的流程示意图;
图6是本发明矩阵乘法计算方法的第三实施例的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有的GEMM计算电路在进行矩阵运算时,需要等第一阵列数据中的所有数据自第一存储器中全部输入至乘加器阵列之后,才可以接收第二存储器中存储的第二阵列数据,以开始第一阵列数据及第二阵列数据的矩阵计算。在第一阵列数据中的所有数据自第一存储器中全部输入至乘加器阵列之前,乘加器阵列的计算无效,这样增加了等待时间,会造成时钟浪费,效率下降。本申请提供的矩阵乘法计算电路能够解决此问题,下面结合附图和实施例对本发明进行详细的说明。
请参见图1,为本申请矩阵乘法计算电路的第一实施例的结构示意图。本实施例中,矩阵乘法计算电路包括:第一存储器11、第二存储器13、随机存储器14及乘加器阵列15。
其中,第一存储器11用于存储第一阵列数据,在一实施例中,假设第一阵列数据为Aik,即第一阵列数据的尺寸为i×k,其中,第一阵列数据Aik被限定为多个Nα×β的第一子数据矩阵,即将第一阵列数据Aik分为多个Nα×β的第一子数据矩阵,即在一实施例中,第一子数据矩阵的尺寸为Nα×β;第二存储器12用于存储第二阵列数据,在一实施例中,假设第二阵列数据为Bkj,即第二阵列数据的尺寸为k×j,其中,第二阵列数据Bkj被限定为多个β×γ的第二子数据矩阵,即将第二阵列数据Bkj分为多个β×γ的第二子数据矩阵,即在一实施例中,第二子数据矩阵的尺寸为β×γ。
乘加器阵列15包括多个乘加计算单元151,其排列成α×β的矩阵,其乘加器阵列15中的乘加计算单元151与第一子数据矩阵的尺寸对应。其中,每个乘加计算单元151的第一输入端U通过一个对应的随机存储器14而连接至第一存储器11,且每个乘加计算单元151的第二输入端V连接至第二存储器12。其中,每一乘加计算单元151通过第一输入端U从第一存储器11存储的第一子数据矩阵中同步读取并存储N个同列第一数据,并在N个时钟周期依次分别将N个同列第一数据输入至对应的乘加计算单元151;每个乘加计算单元151在N个时钟周期内通过第二输入端V从第二存储器12中存储的第二子数据阵列中读取第二数据。在每一乘加计算单元151通过第一输入端U及第二输入端V分别从第一存储器11及第二存储器12中获取第一数据及第二数据后,在每一乘加计算单元151中对第一数据及第二数据进行矩阵乘法运算。
具体的,在实施例中,乘加器阵列15对第一阵列数据为Aik及第二阵列数据Bkj进行矩阵计算。在一实施例中,可通过如下公式(1)对第一阵列数据为Aik及第二阵列数据Bkj进行矩阵计算:
其中,Cij表示第一阵列数据为Aik及第二阵列数据Bkj乘积的累加和,其中,i表示第一阵列数据的行,j表示第二阵列数据的列,t表示第一阵列数据的第t行,r表示第二阵列数据的第r行,k为自然数。
在本实施例中,第一存储器11与乘加器阵列15之间连接随机存储器14,具体的,第一存储器11与乘加器阵列15中的每一乘加计算单元151之间连接一个随机存储器14。现有技术中,在通过GEMM计算电路进行矩阵运算时,需要等第一存储器11中存储的第一子数据矩阵中所有数据都输入到乘加计算单元151的第一输入端U后,乘加计算单元151的第二输入端V才从第二存储器12中接收第二子数据矩阵,在第一子数据矩阵中的数据送入第一输入端U之前,乘加器阵列中的所有计算均为无效,这使得计算效率下降。本实施例通过随机存储器14从第一存储器11存储的第一子数据矩阵中同步读取并存储N个同列第一数据,并在N个时钟周期依次分别将N个同列第一数据输入至对应的乘加计算单元151。在第一个N个同列第一数据进行矩阵乘法运算时,随机存储器14从第一存储器11中读取另一个N个同列第一数据。这样就不用等第一子数据矩阵中的数据全部送达,减少了等待时间,大大提高了矩阵乘法计算的计算效率。
具体的,如图1所示,每个乘加计算单元151包括一个乘法器152及一个加法器153。其中,乘加计算单元151的第一输入端U为乘法器的第一输入端U,乘加计算单元152的第二输入端V为乘法器的第二输入端V。具体的,乘法器152通过第一输入端U在N个时钟周期依次分别接收随机存储器14所传来的N个同列第一数据;乘法器152通过第二输入端V在N个时钟周期内从第二子数据阵列中读取第二数据,进而使得第一数据及第二数据在乘法器152中进行乘法计算,以得到乘法计算的计算结果。
其中,加法器153的第一输入端H连接乘法器152的输出端,以接收从乘法器152输出的第一数据及第二数据进行乘法计算的计算结果。加法器153的输出端S作为乘加计算单元151的输出端,加法器153的第二输入端W连接同一行相邻的另一乘加计算单元151的输出端S,以使同一行的乘加计算单元151的输出级联在一起后输出。具体的,位于同一行的第一个乘加计算单元151的第二输入端(即加法器153的第二输入端W)接地。在第一数据及第二数据进行乘法运算以得到乘法运算结果后,输入至加法器153中,以在加法器153中与位于同一行相邻的上一乘加计算单元151的输出结果进行相加,通过输出端S输出至与当前乘加计算单元151相邻的下一乘加计算单元151中的加法器153。
本实施例中,矩阵乘法计算电路进一步包括:累加电路16及环形存储器17。其中,累加电路16连接在乘加器阵列15与环形存储器17之间,以累加不同的第一子数据阵列间的同行第一数据与不同的所述第二子数据矩阵间的同列第二数据的计算结果。具体的,第一存储器中存储有多个Nα×β的第一子数据矩阵,在其中一个Nα×β的第一子数据矩阵与第二子数据矩阵在乘加器阵列15中计算完后,其输入至累加电路16,累加电路16将其输送至环形存储器17中进行存储,在进行第一个Nα×β的第一子数据矩阵与第二子数据矩阵运算时,环形存储器17中存储无效数据,即相当于存储为零。接着在第二个Nα×β的第一子数据矩阵与第二子数据矩阵计算完成后,计算结果输送至累加电路16,累加电路16从环形存储器17中接收上一次的计算结果,并与本次计算结果进行相加,并将相加后的结果输送至环形存储器17进行存储。直至最后一个Nα×β的第一子数据矩阵与第二子数据矩阵的计算完成,环形存储器17输出最终计算结果,进而得到矩阵乘法计算的计算结果。需要说明的是,在累加电路16从环形存储器17中接收上一次的计算结果后,环形存储器17当前存储的数据被无效,即清零。
具体的,累加电路16包括多个累加单元161,每个累加单元161对应与一行的乘加计算单元151的输出端S连接。环形存储器17包括多个环形存储单元171,每一环形存储单元171对应与一个累加单元161连接。如图1所示,每一累加单元16包括两个输入端和一个输出端,其中,一个输入端与位于同一行的乘加计算单元151的输出端S连接,以接收乘加器阵列中计算的当前的Nα×β的第一子数据矩阵与第二子数据矩阵的计算结果;而另一个输入端与环形存储器17中的一个环形存储单元171连接,以从环形存储单元171中接收存储的上一个Nα×β的第一子数据矩阵与第二子数据矩阵的计算结果;输出端连接环形存储器17的一个环形存储单元171,每一累加单元161将当前的Nα×β的第一子数据矩阵与第二子数据矩阵的计算结果与上一个Nα×β的第一子数据矩阵与第二子数据矩阵的计算结果进行相加后,将相加后的结果通过输出端输送至环形存储器17的环形存储单元171以进行存储,直至最后一个Nα×β的第一子数据矩阵与第二子数据矩阵计算完后,将计算结果输出至外部设备。在一实施例中,外部设备可以是显示设备,其用于显示计算结果,在另一实施例中,外部设备还可以是语音设备,其用于读取计算结果,具体不做限定。其中,第一存储器11及第二存储器12可以为顺序存储器,顺序存储器为按照某种顺序进行存取的存储器,其存储时间与存储单元的物理位置有关,在另一实施例中,第一存储器11及第二存储器12可以为随机存储器,在此不作限定。当然,其还可以是其他类型存储器,在此不做限定。随机存储器14的任何存储单元的内容都能够被随机存取,其存储时间与存储单元的物理位置无关。在一实施例中,环形存储器17与第一存储器11及第二存储器12、随机存储器14可以为同类型的存储器,其数据读取与数据写入的方式不同。例如,第一存储器11及第二存储器12、随机存储器14在读取数据时需要按照一定的顺序进行读取,而环形存储器17在读取数据后,还需要写入数据。
在一实施例中,N×γ的值不超过环形存储器17的深度的整数,N可以为大于1的整数,在一具体实施例中,N等于2。
其中,在一实施例中,若限定后的第一子数据矩阵及第二子数据矩阵的尺寸小于限定尺寸,可以通过填零扩充,将其补到与限定尺寸一致。
进一步的,在本实施例中,矩阵乘法计算电路还包括π移相器13。其中,π移相器13连接在第二存储器12和乘加器阵列15的第二输入端V之间,以使每个乘加计算单元151从随机存储器14的读取数据的读取频率与从第二存储器12的读取数据的读取频率相同。具体的,π移相器13能够使得乘加器阵列15相对于随机存储器14的读取时钟而偏移180度读取第二子数据阵列中的第二数据,进而使得乘加计算单元151从随机存储器14的读取频率与从第二存储器12的读取频率相同。
在一实施例中,为了避免对随机存储器14的占用面积过大,可以设置N等于2,在N等于2时,乘加器阵列15通过随机存储器14从第一存储器11中读取第一子数据阵列中的N列第一数据时的速率是从第二存储器12中读取第二子数据阵列中的第二数据的速度的2倍,即随机存储器14的读取时钟频率是第二存储器12的读取时钟频率的2倍,这会使得数据搬运过程中产生较高的功耗。在第二存储器12和乘加器阵列15的第二输入端V之间设置π移相器13,能够将随机存储器14的读取时钟频率降低一倍,以此会使得在对随机存储器14进行布线时,难度降低,进而降低系统布线难度,还会在数据搬运过程中降低功耗。
为了保证在对随机存储器14的读取时钟频率降低一倍之后计算结果仍然准确,在启用π移相器13后,即实现对第二输入端V的数据移相180度后,还可以将组内的第3个及第4个数据的存储位置进行调换,具体的,每组内包括4个数据,在调换后,数据与未启用π移相器13之前的数据一样,具体请参照图3a及图3b,其中,图3a是未启用π移相器13之前的第一数据及第二数据在乘法器153中相乘的结果,图3b是启用π移相器13之前的第一数据及第二数据在乘法器153中相乘的结果。如图3b所示,将每组内的第3个及第4个数据的存储位置进行调换,其结果与图3a中所示的相同,以此在随机存储器14的读取时钟频率降低一倍之后保证计算结果的准确性。
请参见图2,为本发明矩阵乘法计算电路的第二实施例的结构示意图,与第一实施例相比区别在于:本实施例还包括:切换电路18及输出电路19,另外,本实施例中的环形存储器17包括多个。
如图2所示,其中,切换电路18连接累加电路16及环形存储器17,环形存储器17包括多个,在一实施例中,环形存储器17包括第一环形存储器172及第二环形存储器173,在一实施例中,若累加电路16连接第一环形存储器172时,输出电路19连接第二环形存储器173;若累加电路16连接第二环形存储器173时,输出电路19连接第一环形存储器172。
具体的,如图2所示,其中,第一环形存储器172通过累加电路16连接至乘加器阵列15,此时第一环形存储器172用于存储当前计算任务中的第一数据及第二数据进行矩阵乘法计算的计算结果。进一步的,第二环形存储器173连接输出电路19,其用于输出上一计算任务中的第一数据及第二数据进行矩阵乘法计算的计算结果。具体的,假设当前需要进行两个矩阵的计算,即A×B矩阵及C×D矩阵,在将A×B矩阵计算完后并保存在环形存储器172中后,第一环形存储器172断开与乘加器陈列15的连接,与输出电路19建立连接,通过输出电路19将计算结果输出,在第一环形存储器172断开与乘加器陈列15的连接的同时,第二环形存储器173通过累加器16与乘加器阵列15建立连接,以存储C×D矩阵计算过程中产生的数据。
进一步地,切换电路18用于在第一环形存储器172及第二环形存储器173与累加电路16及输出电路19之间切换,以切换第一环形存储器172连接至累加电路16,及第二环形存储器173连接至输出电路19,或者,使得第二环形存储器173连接至累加电路16,及第一环形存储器172连接至输出电路19。
现有的只具备一个环形存储器的GEMM计算电路,在其中一个矩阵计算完成后,需要等待环形存储器中存储的数据全部输出完成后才能够计算下一个矩阵计算,这增加了等待时间,降低了两个计算任务之间的计算效率,本实施例提供的矩阵乘法计算电路,通过设置多个环形存储器,以控制多个环形存储器与累加器或输出电路的连接,以使得在当前计算任务完成后,不需要等待时间即可进行下一任务的计算,提高了计算效率。
本发明提供的矩阵乘法计算电路,通过在乘加器阵列与第一存储器之间设置随机存储器,以使得在进行矩阵计算时,不需要等待第一子数据阵列中的数据全部输入至乘加计算单元的第一输入端即可进行计算,节省了计算过程中的等待时间,提高了计算效率。通过在第二存储器与乘加器阵列之间设置π移相器13,以将乘加器阵列对随机存储器14的读取时钟频率降低一倍,进而使得乘加计算单元151从随机存储器14的读取频率与从第二存储器12的读取频率相同。以降低系统布线难度,还会在数据搬运过程中降低功耗。通过设置多个环形存储器,并控制多个环形存储器与累加器或输出电路的连接,以使得在当前计算任务完成后,不需要等待时间即可进行下一任务的计算,提高了计算效率。
请参见图4,为本发明矩阵乘法计算方法的第一实施例的流程示意图。包括:
步骤S41:存储第一阵列数据,其中,第一阵列数据被限定为多个Nα×β的第一子数据矩阵。
具体的,存储第一阵列数据,假设第一阵列数据为Aik,即第一阵列数据的尺寸为i×k,其中,第一阵列数据Aik被限定为多个Nα×β的第一子数据矩阵,即将第一阵列数据Aik分为多个Nα×β的第一子数据矩阵,即在一实施例中,第一子数据矩阵的尺寸为Nα×β。
在一实施例中,结合上述图1及图2所示的矩阵乘法计算电路,其中,可以利用第一存储器存储第一阵列数据Aik。
步骤S41:存储第二阵列数据,其中,所述第二阵列数据被限定为多个β×γ的第二子数据矩阵。
存储第二阵列数据,在一实施例中,假设第二阵列数据为Bkj,即第二阵列数据的尺寸为k×j,其中,第二阵列数据Bkj被限定为多个β×γ的第二子数据矩阵,即将第二阵列数据Bkj分为多个β×γ的第二子数据矩阵,即在一实施例中,第二子数据矩阵的尺寸为β×γ。
在一实施例中,结合上述图1及图2所示的矩阵乘法计算电路,其中,可以利用第二存储器存储第二阵列数据Bkj。
步骤S43:从第一子数据矩阵中同步获取N个同列第一数据,从第二子数据矩阵中获取第二数据,并在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算。
具体的,在进行矩阵乘法计算时,从第一阵列数据Aik的多个Nα×β的第一子数据矩阵中获取N个同列的第一数据,具体的,从第一阵列数据Aik的多个Nα×β的第一子数据矩阵中的其中一个Nα×β的第一子数据矩阵中获取N个同列的第一数据。从第二阵列数据Bkj的多个β×γ的第二子数据矩阵中获取第二数据,具体的,从第二阵列数据Bkj的多个β×γ的第二子数据矩阵中的其中一个β×γ的第二子数据矩阵中获取第二数据,在获取到N个同列的第一数据及第二数据之后,在N个时钟周期内分别依次将N个同列第一数据与第二数据进行矩阵乘法运算。
具体的,结合图1及图2所示的矩阵乘法计算电路,乘加器阵列通过随机存储器从第一存储器中获取N个同列的第一数据,从第二存储器中获取第二数据,在乘加器阵列中的乘加计算单元中进行矩阵乘法计算。具体的,乘加器阵列对第一阵列数据为Aik及第二阵列数据Bkj进行矩阵计算。在一实施例中,可通过如下公式(1)对第一阵列数据为Aik及第二阵列数据Bkj进行矩阵计算:
其中,Cij表示第一阵列数据为Aik及第二阵列数据Bkj乘积的累加和,其中,i表示第一阵列数据的行,j表示第二阵列数据的列,t表示第一阵列数据的第t行,r表示第二阵列数据的第r行,k为自然数。
本申请提供的矩阵乘法计算方法,其在进行矩阵乘法计算时,先获取存储的第一阵列数据中的部分第一数据,再获取第二数据以进行乘加运算。相较于传统的一次性获取第一阵列数据中的全部第一数据,再与第二数据进行乘加计算以得到矩阵计算结果的方式,其减少了前期获取第一数据的等待时间。例如假设第一阵列数据中分割而成的第一子数据矩阵的尺寸为2×3,以本申请的计算方法进行计算时,前期只需要先从第一子数据矩阵中获取一列数据,即获取两个数据,而传统的计算方式再进行计算时,需要将第一子数据矩阵中的六个数据全部获取之后再进行计算,获取六个数据所使用的时间要长于获取两个数据所使用的时间,因此,通过本申请的计算方式,其能够节约等待时间,提高计算效率。
结合图2及图3所提供的矩阵乘法计算电路,其通过随机存储器从第一子数据矩阵中获取N个同列第一数据。具体的,将每一随机存储器分为M个块,M个块分别编号为y1、y2、y3……yM。且每一个块的储存深度为N,即每一个块可以存储N个数据。每一个块都定义有五个状态,分别为:空闲态、装载态、就绪态、占用态和释放态。结合图4所述的计算方法及图1、图2所示的计算电路对其进行说明。具体的,空闲态为空闲状态,装载态为从第一存储器中获取N个同列第一数据的过程,就绪态为从第一存储器中获取N个同列第一数据完成后的状态,占用态为将N个同列第一数据输送至乘加器阵列中进行乘加计算的状态,释放态为将N个同列第一数据输送至乘加器阵列完成后的状态。其中,在从第一子数据矩阵中获取N个同列第一数据时,先判断编号为y1的块是否为空闲态,若是,则进入装载态,将从第一子数据矩阵中获取的N个同列第一数据存储至编号为y1的块中,在存储完成后,将编号为y1的块切换为就绪态,此时进入占用态,将存储的第一数据输送至乘加器阵列中,以与第二数据进行乘加计算,在计算完成后,将其切换为释放态。
进一步地,在一实施例中,为了进一步节约等待时间,在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算的过程中,随机存储器继续从所述第一子数据矩阵中同步获取另一组N个同列第一数据,并在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算完成后,将获取的另一组N个同列第一数据与所述第二数据进行矩阵乘法运算。具体的,在编号为y1的块从第一子数据矩阵中获取的N个同列第一数据完成并切换至就绪态后,编号为y2的块从第一子数据矩阵中获取另一组N个同列第一数据,以此,在编号为y2的块获取第一数据时,乘加器阵列中正计算编号为y1的块中获取的第一数据。
具体的,在一实施例中,在随机存储器进行数据装载的过程中,判断随机存储器中标号为y1的块是否处于空闲态,若是空闲态,则进入装载态,从第一存储器中获取N个同列的第一数据,在进行计算时,判断编号为y1的块是否为就绪态,即编号为y1的块是否完成数据状态,若是,则将编号为y1的块切换为就绪态。若标号为y1的块不是空闲态,则判断编号为y2的块是否为空闲态。总而言之,在随机存储器中的各个块处于空闲态时,即可从第一存储器中获取第一数据。在进行计算时,需要判断参与计算的块是否处于就绪态,及判断需要参与计算的数据是否存储完成。并且在计算完成后,即参与计算的数据全部输出后,需要将其切换为释放态,以便于其进行下一次数据装载。
可知,整个计算过程中,需要的等待时间只有第一次获取N个同列第一数据的时间。其相对于现有技术,大大缩减了取数时间,提高了计算效率。
请参见图5,为本发明矩阵乘法计算方法的第二实施例的流程示意图,其中步骤S51、步骤S52及步骤S53与图4所示的第一实施例中的步骤S41、步骤S42及步骤S43相同,区别在于,本实施例还在步骤S53之后还包括:
步骤S54:累加不同的所述第一子数据阵列间的同行第一数据与不同的所述第二子数据矩阵间的同列第二数据的计算结果。
具体的,第一阵列数据被限定为多个第一子数据矩阵,第二阵列数据被限定为多个第二子数据矩阵,在每一个第一子数据矩阵与第二子数据矩阵计算完成后,将计算结果进行输出,在第二个第一子数据矩阵与第二子数据矩阵计算完成后,其结果与第一个计算结果进行相加,在第三个第一子数据矩阵与第二子数据矩阵计算完成后,其结果与上一次累加的结果再次相加。
具体的,结合上述图1及图2所示的矩阵乘法计算电路,乘加器阵列将第一次计算的第一个第一子数据矩阵的第一数据与第一个第二子数据矩阵的第二数据计算完成后,将结果通过累加器输送至环形存储器,使其保存在环形存储器中,在第二次计算的第二个第一子数据矩阵的第一数据与第二个第二子数据矩阵的第二数据计算完成后,将结果输送至累加器,累加器从环形存储器中获取环形存储器中存储的数据,在累加其中将其相加,并将相加后的结果再次输送至环形存储器,直至累加至最后一个第一子数据矩阵与第二子数据矩阵计算完成。
请参见图6,为本发明矩阵乘法计算方法的第三实施例的流程示意图,其中,步骤S61、步骤S62、步骤S63及步骤S64与图5所示的第二实施例中的步骤S51、步骤S52、步骤S53及步骤S54相同,区别在于,本实施例在步骤S64之后还包括:
步骤S65:存储所述第一数据与所述第二数据进行第一运算的计算结果,并在存储所述第一数据与所述第二数据进行第一运算的计算结果的过程中,将存储的上一计算任务中的所述第一数据及所述第二数据进行第一运算的计算结果输出至外部设备。
具体的,在将当前计算的矩阵中的所有第一数据及所有第二数据计算完成后,将计算结果进行存储,并在存储过程中,将存储的上一个计算任务中的计算结果进行输出。具体的,假设上一个计算任务为A×B矩阵,当前计算任务为C×D矩阵,在将C×D矩阵中的第一数据及第二数据计算完成后,将计算结果保存,并在保存的过程中将A×B矩阵的计算结果输出。
结合图2所示的矩阵乘法计算电路,该实施例包含多个环形存储器,假设环形存储器数量为2,在其中一个环形存储器保存C×D矩阵中的第一数据及第二数据的计算结果时,另一个环形存储器输出其自身保存的A×B矩阵中的第一数据及第二数据的计算结果至外部设备。
步骤S66:检测第一数据及第二数据进行第一运算是否结束。
具体的,检测当前计算任务中的计算是否结果,如图2所示的计算电路,在计算结束后,切换电路将当前用于保存的环形存储器断开,将另一个环形存储器接通,在没有计算结束时,切换电路不切换环形存储器。
步骤S67:将所述第一数据与所述第二数据进行第一运算的计算结果输出至外部设备,并在输出所述第一数据与所述第二数据进行第一运算的计算结果的过程中,存储下一计算任务中的所述第一数据及所述第二数据进行第一运算的计算结果。
具体的,假设当前正在进行计算的矩阵为C×D矩阵,下一个等待计算的任务为E×F矩阵;在C×D矩阵中的第一数据与第二数据进行矩阵乘法计算完成后,将计算结果保存于当前与乘加器阵列连通的环形存储器中,并将该环形存储器与乘加器阵列断开,此时,将另一个环形存储器与乘加器阵列连通,以存储E×F矩阵中第一数据及第二数据的计算结果。
具体的,在一实施例中,将第一环形存储器172及第二环形存储器173分别记作x1及x2,并且对其定义四个状态,分别为:空闲态、工作态、完成态和输出态。其中,空闲态为处于空闲时的状态,工作态为与累加器连接时的状态,完成态为存储第一数据阵列及第二数据阵列的计算数据完成的状态,输出态为与输出电路连接输出计算结果的状态。其中,在进行计算时,判断编号为x1的第一环形存储器172是否处于空闲态,若是,则将该第一环形存储器172锁定,使其连接至累加电路,并进入工作态,参与矩阵计算过程,并在计算完成且数据存储完成后,将标号为x1的第一环形存储器172切换为完成态,并将处于完成态的编号为x1的第二环形存储器172进行切换至输出态,使其连接至输出电路,进而将存储的数据输出至外部设备。若编号为x1的第一环形存储器172不是空闲态,则判断标号为x2的第二环形存储器173是否为空闲态,若是,则进行工作态、完成态和输出态的切换,若不是,则判断其他环形存储器的状态。
本实施例所述的计算方法,其在计算一个矩阵的同步,将另一个矩阵计算的结果进行输出。现有的计算方法,其只具备一个环形存储器,在当前的计算任务完成后,需要等待环形存储器中存储的数据全部输出完之后,才能进行下一个任务的计算,其增加了等待时间。本申请提供的方法,其在进行一个矩阵运算的同步,可以将另一个矩阵的运算结果输出,其两个任务的计算之间不需要等待时间,相较于现有技术,大大提高了计算效率。
上述图4至图6所示的计算方法中,为了进一步降低功耗,将从所述第一子数据矩阵中获取N个同列第一数据的读取频率保持与从所述第二子数据矩阵中获取第二数据的读取频率相同。具体的,将从所述第一子数据矩阵中获取N个同列第一数据的读取时钟偏移180度;以偏移180度的读取时钟而读取所述第二子数据中的第二数据。
在一实施例中,为了避免随即存储器的占用面积过大,一般设置N等于2,在在N等于2时,乘加器阵列通过随机存储器从第一存储器中读取第一子数据阵列中的N列第一数据时的速率是从第二存储器中读取第二子数据阵列中的第二数据的速度的2倍,即随机存储器的读取时钟频率是第二存储器的读取时钟频率的2倍,这会使得数据搬运过程中产生较高的功耗。在第二存储器和乘加器阵列的第二输入端V之间设置π移相器,能够将随机存储器的读取时钟频率降低一倍,以此会使得后端对随机存储器进行布线时,难度降低,进而降低系统布线难度,还会在数据搬运过程中降低功耗。
为了保证在对随机存储器的读取时钟频率降低一倍之后计算结果仍然准确,在启用π移相器后,以实现对第二输入端V的数据移相180度后,还需要将组内的第3个及第4个数据的存储位置进行调换,具体的,每组内包括4个数据,在调换后,数据与未启用π移相器之前的数据一样,具体请参照图3a及图3b,其中,图3a是未启用π移相器之前的第一数据及第二数据在乘法器中相乘的结果,图3b是启用π移相器13之前的第一数据及第二数据在乘法器中相乘的结果。如图3b所示,将每组内的第3个及第4个数据的存储位置进行调换,其结果与图3a中所示的相同,以此在随机存储器的读取时钟频率降低一倍之后保证计算结果的准确性。
本发明提供的矩阵乘法计算方法及矩阵乘法计算电路,其一方面能够通过随机存储器从第一子数据矩阵中获取部分第一数据,并在计算过程中,持续获取第一数据,减少了前期获取第一数据的等到时间,提高了计算效率。还通过设置多个环形存储器,在进行多个任务计算时,使得其中部分环形存储器进行计算,另一部分将计算好的结果输出,进而较少了多个任务计算之间的等待时间,进一步提高计算效率。通过设置π移相器使得读取第一数据的频率与读取第二数据的频率相同,进一步降低了计算过程中的功耗。
以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (13)
1.一种矩阵乘法计算方法,其特征在于,包括:
存储第一阵列数据,其中,所述第一阵列数据被限定为多个Nα×β的第一子数据矩阵;
存储第二阵列数据,其中,所述第二阵列数据被限定为多个β×γ的第二子数据矩阵;
从第一子数据矩阵中同步获取N个同列第一数据,从第二子数据矩阵中获取第二数据,并在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算。
2.根据权利要求1所述的矩阵乘法计算方法,其特征在于,所述从第一子数据矩阵中同步获取N个同列第一数据,从第二子数据矩阵中获取第二数据,并在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算之后还包括:
累加不同的所述第一子数据阵列间的同行第一数据与不同的所述第二子数据矩阵间的同列第二数据的计算结果。
3.根据权利要求2所述的矩阵乘法计算方法,其特征在于,所述累加不同的所述第一子数据阵列间的同行第一数据与不同的所述第二子数据矩阵间的同列第二数据的计算结果之后还包括:
存储所述第一数据与所述第二数据进行第一运算的计算结果,并在存储所述第一数据与所述第二数据进行第一运算的计算结果的过程中,将存储的上一计算任务中的所述第一数据及所述第二数据进行第一运算的计算结果输出至外部设备。
4.根据权利要求1所述的矩阵乘法计算方法,其特征在于,N等于2。
5.根据权利要求3所述的矩阵乘法计算方法,其特征在于,所述从第一子数据矩阵中同步获取N个同列第一数据,从第二子数据矩阵中获取第二数据还包括:
将从所述第一子数据矩阵中获取N个同列第一数据的读取频率保持与从所述第二子数据矩阵中获取第二数据的读取频率相同。
6.根据权利要求5所述的矩阵乘法计算方法,其特征在于,所述将从所述第一子数据矩阵中获取N个同列第一数据的读取频率保持与从所述第二子数据矩阵中获取第二数据的读取频率相同具体包括:
将从所述第一子数据矩阵中获取N个同列第一数据的读取时钟偏移180度;
以偏移180度的读取时钟而读取所述第二子数据中的第二数据。
7.根据权利要求3所述的矩阵乘法计算方法,其特征在于,所述存储所述第一数据与所述第二数据进行第一运算的计算结果,并在存储所述第一数据与所述第二数据进行第一运算的计算结果的过程中,将存储的上一计算任务中的所述第一数据及所述第二数据进行第一运算的计算结果输出至外部设备还包括:
检测所述第一数据及所述第二数据进行第一运算是否结束;
若是,将所述第一数据与所述第二数据进行第一运算的计算结果输出至外部设备,并在输出所述第一数据与所述第二数据进行第一运算的计算结果的过程中,存储下一计算任务中的所述第一数据及所述第二数据进行第一运算的计算结果。
8.根据权利要求1所述的矩阵乘法计算方法,其特征在于,所述从第一子数据矩阵中同步获取N个同列第一数据,从第二子数据矩阵中获取第二数据,并在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算还包括:
在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算的过程中,从所述第一子数据矩阵中同步获取另一组N个同列第一数据;
在N个时钟周期依次分别将所述N个同列第一数据与所述第二数据进行矩阵乘法运算完成后,将获取的另一组N个同列第一数据与所述第二数据进行矩阵乘法运算。
9.一种矩阵乘法计算电路,其特征在于,包括:
第一存储器,用于存储第一阵列数据,其中,所述第一阵列数据被限定为多个Nα×β的第一子数据矩阵;
第二存储器,用于存储第二阵列数据,其中,所述第二阵列数据被限定为多个β×γ的第二子数据矩阵;
乘加器阵列,包括多个乘加计算单元,其排列成α×β的矩阵,其中,每个乘加计算单元的第一输入端通过一个对应的随机存储器而连接至所述第一存储器,以从所述第一子数据矩阵中同步读取并存储N个同列第一数据,并在N个时钟周期依次分别将所述N个同列第一数据输入至对应的所述乘加计算单元,且每个乘加计算单元的第二输入端连接至所述第二存储器以在所述N个时钟周期内从所述第二子数据阵列中读取第二数据,从而对所述第一数据和所述第二数据进行矩阵乘法计算。
10.根据权利要求9所述的矩阵乘法计算电路,其特征在于,每个所述乘加计算单元包括乘法器和加法器,其中,所述乘法器的第一输入端作为所述乘加计算单元的所述第一输入端,以在所述N个时钟周期依次分别接收所述随机存储器所传来的所述N个同列第一数据;所述乘法器的第二输入端作为所述乘加计算单元的所述第二输入端,以在所述N个时钟周期内从所述第二子数据阵列中读取所述第二数据;
所述加法器的第一输入端连接所述乘法器的输出端以接收所述乘法器的输出结果,所述加法器的输出端作为对应的所述乘加计算单元的输出端,而所述加法器的第二输入端连接同一行相邻的另一所述乘加计算单元的所述输出端,以使同一行的所述乘加计算单元的输出级联在一起后输出。
11.根据权利要求10所述的矩阵乘法计算电路,其特征在于,进一步包括:多个环形存储器,其中,所述多个环形存储器包括第一环形存储器及第二环形存储器,在所述第一环形存储器连接所述乘加器阵列,以存储所述第一数据及所述第二数据进行矩阵乘法计算的计算结果时,所述第二环形存储器将自身存储的上一计算任务中的所述第一数据及所述第二数据进行矩阵乘法计算的计算结果输出至外部设备。
12.根据权利要求11所述的矩阵乘法计算电路,其特征在于,进一步包括:
累加电路,连接在所述乘加器阵列与多个所述环形存储器之间,以累加不同的所述第一子数据阵列间的同行第一数据与不同的所述第二子数据矩阵间的同列第二数据的计算结果。
13.根据权利要求12所述的矩阵乘法计算电路,其特征在于,进一步包括:
π移相器,连接在所述第二存储器和所述乘加器阵列的第二输入端之间,以使每个所述乘加计算单元从所述随机存储器的读取频率与从所述第二存储器的读取频率相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010334174.7A CN111581595B (zh) | 2020-04-24 | 2020-04-24 | 一种矩阵乘法计算方法及计算电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010334174.7A CN111581595B (zh) | 2020-04-24 | 2020-04-24 | 一种矩阵乘法计算方法及计算电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111581595A true CN111581595A (zh) | 2020-08-25 |
CN111581595B CN111581595B (zh) | 2024-02-13 |
Family
ID=72122661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010334174.7A Active CN111581595B (zh) | 2020-04-24 | 2020-04-24 | 一种矩阵乘法计算方法及计算电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111581595B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112927125A (zh) * | 2021-01-31 | 2021-06-08 | 成都商汤科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN113496008A (zh) * | 2021-09-06 | 2021-10-12 | 北京壁仞科技开发有限公司 | 用于执行矩阵计算的方法、计算设备和计算机存储介质 |
WO2022226721A1 (zh) * | 2021-04-26 | 2022-11-03 | 华为技术有限公司 | 一种矩阵乘法器及矩阵乘法器的控制方法 |
CN115756384A (zh) * | 2022-11-22 | 2023-03-07 | 海光信息技术股份有限公司 | 张量计算单元及使用方法、数据处理装置及操作方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445471A (zh) * | 2016-10-13 | 2017-02-22 | 北京百度网讯科技有限公司 | 处理器和用于在处理器上执行矩阵乘运算的方法 |
CN107315574A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行矩阵乘运算的装置和方法 |
CN109992743A (zh) * | 2017-12-29 | 2019-07-09 | 华为技术有限公司 | 矩阵乘法器 |
CN110147347A (zh) * | 2019-03-18 | 2019-08-20 | 腾讯科技(深圳)有限公司 | 用于矩阵处理的芯片、矩阵处理方法、装置及存储介质 |
CN212112470U (zh) * | 2020-04-24 | 2020-12-08 | 科大讯飞股份有限公司 | 一种矩阵乘法计算电路 |
-
2020
- 2020-04-24 CN CN202010334174.7A patent/CN111581595B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315574A (zh) * | 2016-04-26 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 一种用于执行矩阵乘运算的装置和方法 |
CN106445471A (zh) * | 2016-10-13 | 2017-02-22 | 北京百度网讯科技有限公司 | 处理器和用于在处理器上执行矩阵乘运算的方法 |
US20180107630A1 (en) * | 2016-10-13 | 2018-04-19 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Processor and method for executing matrix multiplication operation on processor |
CN109992743A (zh) * | 2017-12-29 | 2019-07-09 | 华为技术有限公司 | 矩阵乘法器 |
CN111859273A (zh) * | 2017-12-29 | 2020-10-30 | 华为技术有限公司 | 矩阵乘法器 |
CN110147347A (zh) * | 2019-03-18 | 2019-08-20 | 腾讯科技(深圳)有限公司 | 用于矩阵处理的芯片、矩阵处理方法、装置及存储介质 |
CN212112470U (zh) * | 2020-04-24 | 2020-12-08 | 科大讯飞股份有限公司 | 一种矩阵乘法计算电路 |
Non-Patent Citations (1)
Title |
---|
李明,杨博涵,沈绪榜: "基于二维网孔互连网络的并行矩阵乘算法", no. 02 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112927125A (zh) * | 2021-01-31 | 2021-06-08 | 成都商汤科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
WO2022226721A1 (zh) * | 2021-04-26 | 2022-11-03 | 华为技术有限公司 | 一种矩阵乘法器及矩阵乘法器的控制方法 |
CN113496008A (zh) * | 2021-09-06 | 2021-10-12 | 北京壁仞科技开发有限公司 | 用于执行矩阵计算的方法、计算设备和计算机存储介质 |
CN113496008B (zh) * | 2021-09-06 | 2021-12-03 | 北京壁仞科技开发有限公司 | 用于执行矩阵计算的方法、计算设备和计算机存储介质 |
CN115756384A (zh) * | 2022-11-22 | 2023-03-07 | 海光信息技术股份有限公司 | 张量计算单元及使用方法、数据处理装置及操作方法 |
CN115756384B (zh) * | 2022-11-22 | 2024-05-17 | 海光信息技术股份有限公司 | 张量计算单元及使用方法、数据处理装置及操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111581595B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111581595A (zh) | 一种矩阵乘法计算方法及计算电路 | |
US8051124B2 (en) | High speed and efficient matrix multiplication hardware module | |
EP3654210A1 (en) | Chip device and related products | |
CN100465876C (zh) | 基于单fpga的矩阵乘法器装置 | |
JPH0425586B2 (zh) | ||
JPH0230535B2 (zh) | ||
CN212112470U (zh) | 一种矩阵乘法计算电路 | |
JPH0660106A (ja) | 共分散行列を生成する方法および装置 | |
WO2005088640A9 (en) | Improvements relating to orthogonal data memory | |
JP6003744B2 (ja) | 演算処理装置及び演算処理方法 | |
US5422836A (en) | Circuit arrangement for calculating matrix operations in signal processing | |
CN112446007A (zh) | 一种矩阵运算方法、运算装置以及处理器 | |
WO2021168644A1 (zh) | 数据处理装置、电子设备和数据处理方法 | |
US20230253032A1 (en) | In-memory computation device and in-memory computation method to perform multiplication operation in memory cell array according to bit orders | |
JPH09259115A (ja) | ビット−シリアルマトリックス転置のための超大規模集積回路 | |
CN110673824B (zh) | 矩阵向量乘电路以及循环神经网络硬件加速器 | |
CN116050492A (zh) | 一种扩展单元 | |
JPS63501828A (ja) | マルチゾ−ンプロセツサ | |
CN115728566B (zh) | 一种信号发生装置、测控系统以及量子计算机 | |
JP2002269067A (ja) | 行列演算装置 | |
CN115437602A (zh) | 任意精度计算加速器、集成电路装置、板卡及方法 | |
US20220366216A1 (en) | Method and non-transitory computer readable medium for compute-in-memory macro arrangement, and electronic device applying the same | |
CN116306823B (zh) | 为mac阵列提供数据的方法、装置和芯片 | |
CN118069315A (zh) | 基于分布式平台的稀疏三角矩阵的求解方法及装置 | |
CN114186679A (zh) | 一种基于fpga的卷积神经网络加速器及其优化方法 |
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 | ||
GR01 | Patent grant |