一种矩阵乘法计算电路制造技术

技术编号:26637002 阅读:31 留言:0更新日期:2020-12-08 15:46
本实用新型专利技术公开了一种矩阵乘法计算电路,包括:第一存储器,用于存储第一阵列数据,第一阵列数据被限定为多个Nα×β的第一子数据矩阵;第二存储器,用于存储第二阵列数据,第二阵列数据被限定为多个β×γ的第二子数据矩阵;乘加器阵列,包括多个乘加计算单元,其排列成α×β的矩阵,每个乘加计算单元的第一输入端通过一个对应的随机存储器而连接至第一存储器,以从第一子数据矩阵中同步读取并存储N个同列第一数据,并在N个时钟周期依次分别将N个同列第一数据输入至对应的乘加计算单元,且每个乘加计算单元的第二输入端连接至第二存储器以在N个时钟周期内从第二子数据阵列中读取第二数据,从而对第一数据和第二数据进行矩阵乘法计算,进而提高计算效率。

【技术实现步骤摘要】
一种矩阵乘法计算电路
本技术涉及数字电路
,具体涉及一种矩阵乘法计算电路。
技术介绍
矩阵是高等代数中常见工具,常见于统计分析等应用数学学科中。在科学、工程、机械或经济、金融等行业发挥着不可替代的作用。其中,通用矩阵乘法(GeneralMatrixMultiply,GEMM)运算是非常重要的算子之一,该算子常见于各种异构计算设备的软件支持包中。上层软件的功能离不开底层硬件的支持,实现适用于GEMM算子的计算电路成为设计高性能计算芯片的重要工作之一。在工程实践中,通常需要将时序、功耗、带宽等多种问题统筹考虑,以使得设计达到最优。现有的GEMM计算电路在乘法器的输入端口网络上的设计以及流程调度方面优化不充分,存在计算效率低等问题。
技术实现思路
本技术提供一种矩阵乘法计算电路,其那个能够提高矩阵乘法计算电路在进行矩阵乘法计算时的计算效率。为解决上述技术问题,本技术提供的第一个技术方案为:提供一种矩阵乘法计算电路,包括:第一存储器,用于存储第一阵列数据,其中,所述第一阵列数据被限定为多个Nα×β的第一子数据矩阵;第二存储器,用于存储第二阵列数据,其中,所述第二阵列数据被限定为多个β×γ的第二子数据矩阵;乘加器阵列,包括多个乘加计算单元,其排列成α×β的矩阵,其中,每个乘加计算单元的第一输入端通过一个对应的随机存储器而连接至所述第一存储器,以从所述第一子数据矩阵中同步读取并存储N个同列第一数据,并在N个时钟周期依次分别将所述N个同列第一数据输入至对应的所述乘加计算单元,且每个乘加计算单元的第二输入端连接至所述第二存储器以在所述N个时钟周期内从所述第二子数据阵列中读取第二数据,从而对所述第一数据和所述第二数据进行矩阵乘法计算。其中,每个所述乘加计算单元包括乘法器和加法器,其中,所述乘法器的第一输入端作为所述乘加计算单元的所述第一输入端,以在所述N个时钟周期依次分别接收所述随机存储器所传来的所述N个同列第一数据;所述乘法器的第二输入端作为所述乘加计算单元的所述第二输入端,以在所述N个时钟周期内从所述第二子数据阵列中读取所述第二数据;所述加法器的第一输入端连接所述乘法器的输出端以接收所述乘法器的输出结果,所述加法器的输出端作为对应的所述乘加计算单元的输出端,而所述加法器的第二输入端连接同一行相邻的另一所述乘加计算单元的所述输出端,以使同一行的所述乘加计算单元的输出级联在一起后输出。其中,所述矩阵乘法计算电路进一步包括:多个环形存储器,其中,所述多个环形存储器包括第一环形存储器及第二环形存储器,在所述第一环形存储器连接所述乘加器阵列,以存储所述第一数据及所述第二数据进行矩阵乘法计算的计算结果时,所述第二环形存储器将自身存储的上一计算任务中的所述第一数据及所述第二数据进行矩阵乘法计算的计算结果输出至外部设备。其中,所述矩阵乘法计算电路进一步包括:累加电路,连接在所述乘加器阵列与多个所述环形存储器之间,以累加不同的所述第一子数据阵列间的同行第一数据与不同的所述第二子数据矩阵间的同列第二数据的计算结果。其中,所述矩阵乘法计算电路进一步包括:输出电路,连接所述第二环形存储器,用于将所述第二环形存储器中存储的上一计算任务中的所述第一数据及所述第二数据进行矩阵乘法计算的计算结果进行输出。其中,所述矩阵乘法计算电路进一步包括:切换电路,用于在多个所述环形存储器与所述累加电路及所述输出电路之间切换,以切换多个所述环形存储器中部分所述环形存储器连接至所述累加电路,及其余所述环形存储器连接至所述输出电路。其中,N等于2。其中,所述矩阵乘法计算电路进一步包括:π移相器,连接在所述第二存储器和所述乘加器阵列的第二输入端之间,以使每个所述乘加计算单元从所述随机存储器的读取频率与从所述第二存储器的读取频率相同。其中,所述累加电路包括多个累加单元,每个所述累加单元对应与一行的乘加计算单元的输出端连接。其中,每一所述环形存储器包括多个环形存储单元,每一所述环形存储单元对应与一个累加单元连接。本技术的有益效果是:区别于现有技术的情况,本技术提供的矩阵乘法计算电路中,乘加器阵列通过一个对应的随机存储器连接至第一存储器,以从第一存储器中存储的第一子数据矩阵中读取并存储N个同列第一数据,并在N个时钟周期内依次分别将N个同列第一数据输入至对应的乘加计算单元,乘加器阵列还连接至第二存储器,以在N个时钟周期内从第二存储器中存储的第二子数据矩阵中读取第二数据,进而对第一数据和第二数据进行矩阵乘法计算。以此通过随机存储器预先存储需要进行计算的数据,以提高计算效率。附图说明为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:图1是本技术矩阵乘法计算电路的第一实施例的结构示意图;图2是本技术矩阵乘法计算电路的第二实施例的结构示意图;图3a是本技术矩阵乘法计算电路中未启用π移相器13时第一数据及第二数据进行乘法运算的时序波形图;图3b是本技术矩阵乘法计算电路中启用π移相器13时第一数据及第二数据进行乘法运算的时序波形图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。现有的GEMM计算电路在进行矩阵运算时,需要等第一阵列数据中的所有数据自第一存储器中全部输入至乘加器阵列之后,才可以接收第二存储器中存储的第二阵列数据,以开始第一阵列数据及第二阵列数据的矩阵计算。在第一阵列数据中的所有数据自第一存储器中全部输入至乘加器阵列之前,乘加器阵列的计算无效,这样增加了等待时间,会造成时钟浪费,效率下降。本申请提供的矩阵乘法计算电路能够解决此问题,下面结合附图和实施例对本技术进行详细的说明。请参见图1,为本申请矩阵乘法计算电路的第一实施例的结构示意图。本实施例中,矩阵乘法计算电路包括:第一存储器11、第二存储器13、随机存储器14及乘加器阵列15。其中,第一存储器11用于存储第一阵列数据,在一实施例中,假设第一阵列数据为Aik,即第一阵列数据的尺寸为i×k,其中,第一阵列数据Aik被限定为多个Nα×β的第一子数据矩阵,即将第一阵列数据Aik分为多个Nα×β的第一子数据矩阵,即在一实施例中,第一子数据矩阵的尺寸为Nα×β;第二存储器12用于存储第二阵列数据,在一实施例中,假设第二阵列数据为Bkj,即第二阵列数据的尺寸为k×j,其中,第二阵列数据Bkj被限定为多个β×γ的第二子数据矩阵,即将第二阵列数据Bkj分为多个β×γ的第二子数据矩阵,即在一实施例中,第本文档来自技高网...

【技术保护点】
1.一种矩阵乘法计算电路,其特征在于,包括:/n第一存储器,用于存储第一阵列数据,其中,所述第一阵列数据被限定为多个Nα×β的第一子数据矩阵;/n第二存储器,用于存储第二阵列数据,其中,所述第二阵列数据被限定为多个β×γ的第二子数据矩阵;/n乘加器阵列,包括多个乘加计算单元,其排列成α×β的矩阵,其中,每个乘加计算单元的第一输入端通过一个对应的随机存储器而连接至所述第一存储器,以从所述第一子数据矩阵中同步读取并存储N个同列第一数据,并在N个时钟周期依次分别将所述N个同列第一数据输入至对应的所述乘加计算单元,且每个乘加计算单元的第二输入端连接至所述第二存储器以在所述N个时钟周期内从所述第二子数据阵列中读取第二数据,从而对所述第一数据和所述第二数据进行矩阵乘法计算。/n

【技术特征摘要】
1.一种矩阵乘法计算电路,其特征在于,包括:
第一存储器,用于存储第一阵列数据,其中,所述第一阵列数据被限定为多个Nα×β的第一子数据矩阵;
第二存储器,用于存储第二阵列数据,其中,所述第二阵列数据被限定为多个β×γ的第二子数据矩阵;
乘加器阵列,包括多个乘加计算单元,其排列成α×β的矩阵,其中,每个乘加计算单元的第一输入端通过一个对应的随机存储器而连接至所述第一存储器,以从所述第一子数据矩阵中同步读取并存储N个同列第一数据,并在N个时钟周期依次分别将所述N个同列第一数据输入至对应的所述乘加计算单元,且每个乘加计算单元的第二输入端连接至所述第二存储器以在所述N个时钟周期内从所述第二子数据阵列中读取第二数据,从而对所述第一数据和所述第二数据进行矩阵乘法计算。


2.根据权利要求1所述的矩阵乘法计算电路,其特征在于,每个所述乘加计算单元包括乘法器和加法器,其中,所述乘法器的第一输入端作为所述乘加计算单元的所述第一输入端,以在所述N个时钟周期依次分别接收所述随机存储器所传来的所述N个同列第一数据;所述乘法器的第二输入端作为所述乘加计算单元的所述第二输入端,以在所述N个时钟周期内从所述第二子数据阵列中读取所述第二数据;
所述加法器的第一输入端连接所述乘法器的输出端以接收所述乘法器的输出结果,所述加法器的输出端作为对应的所述乘加计算单元的输出端,而所述加法器的第二输入端连接同一行相邻的另一所述乘加计算单元的所述输出端,以使同一行的所述乘加计算单元的输出级联在一起后输出。


3.根据权利要求2所述的矩阵乘法计算电路,其特征在于,进一步包括:
多个环形存储器,其中,所述多个环形存储器包括第一环形存储器及第二环形存储器,在所述第一环形存储器连接所述乘加器阵列,以存储所述第一数据及所述第二数据进...

【专利技术属性】
技术研发人员:江宏武于振华
申请(专利权)人:科大讯飞股份有限公司
类型:新型
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1