矩阵计算电路、方法、电子设备及计算机可读存储介质技术

技术编号:31561767 阅读:18 留言:0更新日期:2021-12-25 10:42
本公开实施例公开了一种矩阵计算电路、方法、电子设备及计算机可读存储介质。其中该矩阵计算电路包括:指令解码电路,用于解码矩阵计算指令得到第一矩阵的首地址和第二矩阵的首地址;第一数据读取电路,用于根据所述第一矩阵的首地址生成第一数据的读取地址;根据所述第一数据的读取地址读取所述第一数据以及所述第一数据在所述第一矩阵中的位置;第二数据读取电路,用于根据所述第二矩阵的首地址和所述第一数据在所述第一矩阵中的位置生成第二数据的读取地址;根据所述第二数据的读取地址读取所述第二数据;计算电路,用于根据所述第一数据和所述第二数据计算得到第三数据。上述矩阵计算电路通过第一数据在第一矩阵中的位置生成第二数据的读取地址,减少了第二数据的读取数量以及计算量,解决了现有技术中浪费带宽的技术问题。带宽的技术问题。带宽的技术问题。

【技术实现步骤摘要】
矩阵计算电路、方法、电子设备及计算机可读存储介质


[0001]本公开涉及处理器领域,尤其涉及一种矩阵计算电路、方法、电子设备及计算机可读存储介质。

技术介绍

[0002]随着科学技术的发展,人类社会正在快速进入智能时代。智能时代的重要特点,就是人们获得数据的种类越来越多,获得数据的量越来越大,而对处理数据的速度要求越来越高。芯片是任务分配的基石,它从根本上决定了人们处理数据的能力。从应用领域来看,芯片主要有两条路线:一条是通用芯片路线,例如CPU等,它们能提供极大的灵活性,但是在处理特定领域算法时有效算力比较低;另一条是专用芯片路线,例如TPU等,它们在某些特定领域,能发挥较高的有效算力,但是面对灵活多变的比较通用的领域,它们处理能力比较差甚至无法处理。由于智能时代的数据种类繁多且数量巨大,所以要求芯片既具有极高的灵活性,能处理不同领域且日新月异的算法,又具有极强的处理能力,能快速处理极大的且急剧增长的数据量。
[0003]在神经网络计算中,卷积计算占了总运算量的大部分,而卷积计算可以转换成矩阵乘计算,因此要提高神经网络任务中的吞吐量、降低延时、提升芯片的有效算力,重点在于提升矩阵乘计算的速度。
[0004]图1a为在神经网络中矩阵乘计算的示意图。如图1a所示,M1为数据矩阵,M2为参数矩阵,M为输出矩阵。M1中的一行数据和M2中的一列参数做乘加计算得到M中的一个数据。很多神经网络中的数据矩阵和/或参数矩阵是稀疏矩阵,即矩阵的数据中存在大量的0。为了提升矩阵的计算速度,可以针对稀疏矩阵乘计算进行优化。
[0005]现有的优化方式一般是采取跳零计算的方法,即先将所有的数据和参数都取出来,在进行计算前判断数据是否为0。如果数据为0,则丢弃与之对应的参数,跳过此数据不计算;如果数据非0,则进行计算。在这种方法中,数据矩阵和参数矩阵的所有元素都会存储下来,如图1b所示。其中,P_D是数据矩阵存储的起始地址,P_W是参数矩阵存储的起始地址;数据矩阵和参数矩阵中的元素都会全部存储。在进行运算时,它们也会被一一读出来,将数据进行比较,再选择非0数据和其对应的参数进行运算,最后得到结果。
[0006]上述方案存在以下缺点:1、浪费存储。因为为0的数据也被存储下来了,但是在计算的时候并没有用到这些为0的数据;2、浪费带宽,因为数据为0时也会被读出来,占用带宽,但是其在计算的时候并没有用到。

技术实现思路

[0007]提供该
技术实现思路
部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该
技术实现思路
部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
[0008]为了解决现有技术中的上述技术问题,本公开实施例提出如下技术方案:
[0009]第一方面,本公开实施例提供一种矩阵计算电路,其特征在于,包括:
[0010]指令解码电路,用于解码矩阵计算指令得到第一矩阵的首地址和第二矩阵的首地址;
[0011]第一数据读取电路,用于根据所述第一矩阵的首地址生成第一数据的读取地址;根据所述第一数据的读取地址读取所述第一数据以及所述第一数据在所述第一矩阵中的位置;
[0012]第二数据读取电路,用于根据所述第二矩阵的首地址和所述第一数据在所述第一矩阵中的位置生成第二数据的读取地址;根据所述第二数据的读取地址读取所述第二数据;
[0013]计算电路,用于根据所述第一数据和所述第二数据计算得到第三数据。
[0014]进一步的,所述指令解码电路还用于解码矩阵指令得到第三矩阵的首地址,所述矩阵计算电路还包括:
[0015]存储地址生成电路,用于根据所述第三矩阵的首地址以及所述第一数据在所述第一矩阵中的位置生成第三数据的存储地址。
[0016]进一步的,所述矩阵计算电路还包括:
[0017]第一存储器、第二存储器以及第三存储器;
[0018]其中所述第一存储器用于存储所述第一数据和所述第一数据在所述第一矩阵中的位置;根据所述第一数据的读取地址释放所述读取地址对应的所述第一数据至所述计算电路,释放所述第一数据在所述第一矩阵中的位置至所述第一数据读取电路、所述第二数据读取电路以及所述存储地址生成电路;
[0019]所述第二存储器用于存储第二数据:根据所述第二数据的读取地址释放所述第二数据至所述计算电路;
[0020]所述第三存储器用于根据所述第三数据的存储地址,保存所述第三数据至所述存储地址所指示的存储位置上。
[0021]进一步的,所述第一数据在第一矩阵中的位置包括第一数据在所述第一矩阵中的横坐标和纵坐标,其中,
[0022]所述第二数据读取电路用于:
[0023]根据所述第二矩阵的首地址以及所述第一数据在所述第一矩阵中的纵坐标生成所述第二数据的读取地址。
[0024]进一步的,所述第一数据读取电路还用于:
[0025]根据所述第一数据在所述第一矩阵中的位置确定所述第一矩阵中的一行第一数据是否计算完毕;
[0026]响应于所述计算完毕,发送输出指令至所述计算电路。
[0027]进一步的,所述第一数据读取电路还用于:
[0028]比较本次读取的第一数据在第一矩阵中的横坐标与上次读取的第一数据在第一矩阵中的横坐标是否相同;
[0029]如果相同,则所述第一矩阵中的一行第一数据还未计算完毕;或者,
[0030]如果不同,则所述第一矩阵中的一行第一数据计算完毕。
[0031]进一步的,所述第一矩阵和/或第二矩阵为压缩矩阵,其中所述压缩矩阵的第一列
为原矩阵中的非0数据,第二列为所述非0数据在所述原矩阵中的横轴坐标,第三列为所述非0数据在所述原矩阵中的纵坐标。
[0032]第二方面,本公开实施例提供一种矩阵计算方法,其特征在于,包括:
[0033]解码矩阵计算指令得到第一矩阵的首地址、第二矩阵的首地址;
[0034]根据所述第一矩阵的首地址生成第一数据的读取地址;
[0035]根据所述第一数据的读取地址读取所述第一数据以及第一数据在所述第一矩阵中的位置;
[0036]根据所述第二矩阵的首地址和所述第一数据在所述第一矩阵中的位置生成第二数据的读取地址;
[0037]根据所述第二数据的读取地址读取所述第二数据;
[0038]根据所述第一数据和所述第二数据计算得到第三数据。
[0039]进一步的,所述方法还包括:
[0040]解码矩阵计算指令得到第三矩阵的首地址;
[0041]根据所述第三矩阵的首地址以及第一数据在第一矩阵中的位置生成第三数据的存储地址;
[0042]将所述第三数据存入所述存储地址。
[0043]第三方面,本公开实施例提供一种芯片,包括第一方面中任一项所述的矩阵计算电路。
[0044]第四方面,本公开实施例提供一种电子设备,包括:存储器,用于存储计算机可读指令;以及一个或多个处理器本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种矩阵计算电路,其特征在于,包括:指令解码电路,用于解码矩阵计算指令得到第一矩阵的首地址和第二矩阵的首地址;第一数据读取电路,用于根据所述第一矩阵的首地址生成第一数据的读取地址;根据所述第一数据的读取地址读取所述第一数据以及所述第一数据在所述第一矩阵中的位置;第二数据读取电路,用于根据所述第二矩阵的首地址和所述第一数据在所述第一矩阵中的位置生成第二数据的读取地址;根据所述第二数据的读取地址读取所述第二数据;计算电路,用于根据所述第一数据和所述第二数据计算得到第三数据。2.如权利要求1所述的矩阵计算电路,其特征在于,所述指令解码电路还用于解码矩阵指令得到第三矩阵的首地址,所述矩阵计算电路还包括:存储地址生成电路,用于根据所述第三矩阵的首地址以及所述第一数据在所述第一矩阵中的位置生成第三数据的存储地址。3.如权利要求2所述的矩阵计算电路,其特征在于,所述矩阵计算电路还包括:第一存储器、第二存储器以及第三存储器;其中所述第一存储器用于存储所述第一数据和所述第一数据在所述第一矩阵中的位置;根据所述第一数据的读取地址释放所述读取地址对应的所述第一数据至所述计算电路,释放所述第一数据在所述第一矩阵中的位置至所述第一数据读取电路、所述第二数据读取电路以及所述存储地址生成电路;所述第二存储器用于存储第二数据:根据所述第二数据的读取地址释放所述第二数据至所述计算电路;所述第三存储器用于根据所述第三数据的存储地址,保存所述第三数据至所述存储地址所指示的存储位置上。4.如权利要求1-3中任一项所述的矩阵计算电路,其特征在于,所述第一数据在第一矩阵中的位置包括第一数据在所述第一矩阵中的横坐标和纵坐标,其中,所述第二数据读取电路用于:根据所述第二矩阵的首地址以及所述第一数据在所述第一矩...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:北京希姆计算科技有限公司
类型:发明
国别省市:

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

1