【技术实现步骤摘要】
矩阵乘法器
本专利技术涉及计算
,尤其涉及一种矩阵乘法器。
技术介绍
目前,要计算两个矩阵A和B的乘积,可以通过以下两种方式中的任意一种方式进行计算:方式一、通过向量处理器进行计算。假设C=A*B,向量处理器可同时计算的元素个数为M个,参见图1,向量处理器会将矩阵A的第i行向量(包括元素Ai1、Ai2、…、Ai(M-1)、AiM)加载到源寄存器Reg0中,再将矩阵B的第j列向量(包括元素Bj1、Bj2、…、Bj(M-1)、BjM)加载到寄存器Regl中,可以实现Reg0与Reg1各对应元素之间的乘法,最后通过加法树来完成累加操作,计算出矩阵C的第i行第j列的数据Cij,进行多次计算则可以得到矩阵C。方式二、为了进一步提高计算速度,可以通过二维的计算阵列来完成矩阵的乘法运算。例如,二维的计算阵列可以为N*N的脉动阵列。在方式一中,完成两个N*N的矩阵乘法运算,需要N^3次乘法操作,由于向量处理器每个时钟周期可以计算M个元素之间的乘法,因此完成一次乘法运算所需时长为N^3/M个时钟周期。在方式二中, ...
【技术保护点】
1.一种矩阵乘法器,其特征在于,包括:/n第一存储器,用于存储第一矩阵,所述第一矩阵为M*K矩阵;/n第二存储器,用于存储第二矩阵,所述第二矩阵为K*N矩阵;/n与所述第一存储器和所述第二存储器连接的运算电路,所述运算电路包括X行*Y列运算单元,每个运算单元包括向量乘法电路和加法电路,所述矩阵乘法电路用于接收所述第一存储器发送的行向量数据和第二存储器发送的列向量数据,并将两路向量相乘;所述加法电路用于对所述两路向量相乘的结果相加,以及对属于同一个运算单元的计算结果进行累加得到每个运算单元的运算结果。/n
【技术特征摘要】
1.一种矩阵乘法器,其特征在于,包括:
第一存储器,用于存储第一矩阵,所述第一矩阵为M*K矩阵;
第二存储器,用于存储第二矩阵,所述第二矩阵为K*N矩阵;
与所述第一存储器和所述第二存储器连接的运算电路,所述运算电路包括X行*Y列运算单元,每个运算单元包括向量乘法电路和加法电路,所述矩阵乘法电路用于接收所述第一存储器发送的行向量数据和第二存储器发送的列向量数据,并将两路向量相乘;所述加法电路用于对所述两路向量相乘的结果相加,以及对属于同一个运算单元的计算结果进行累加得到每个运算单元的运算结果。
2.如权利要求1所述的矩阵乘法器,其特征在于,所述矩阵乘法器包括:
与所述运算电路连接的控制器,所述控制器用于:
将所述第一矩阵以规模为X*L的子块为单位进行分块,得到S×R个相同大小的子块,其中,将所述S×R个子块的第s行第r列的子块记为Asr,s=(1、2、3、……S),r=(1、2、3、……R);
将所述第二矩阵以规模为L*Y的子块为单位进行分块,得到R×T个相同大小的子块,其中,将所述R×T个子块中的第r行第t列记为Brt,r=(1、2、3、……R),t=(1、2、3、……T)。
3.如权利要求2所述的矩阵控制器,其特征在于,所述控制器还用于:
将任意一个子块Asr的X个行向量中的第x行和对应的子块Brt的Y个列向量中的第y列,输入到所述X行*Y列运算单元中的第x行第y列的运算单元中进行运算,x=(1、2、3、……X),y=(1、2、3、……Y),其中,所述任意一个子块Asr中的r和所述对应的子块Brt中的r的取值相等。
4.如权利要求2或3所述的矩阵乘法器,其特征在于,所述控制器具体用于:
将任意一个子块Asr的X个行向量中的第x行和对应的子块Brt的Y个列向量中的第y列,在同一个时钟周期并行输入到所述X行*Y列运算单元中的第x行第y列的运算单元中进行运算。
5.如权利要求2-4任意一项所述的矩阵乘法器,其特征在于,
所述控制器还用于控制所述任意一个Asr的行向量按照x行号从小到大的顺序依次进入到所述X行*Y列运算单元对应的第x行,并且相邻行向量在进入到同一列不同行的运算单元的时间差为1个时钟周期;所述控制器还用于同时控制所述对应的子块Brt的列向量按照y列号从小到大的顺序依次进入到所述X行*Y列运算单元对应的第y行,并且相邻列向量在进入到同一行不同列的运算单元的时间差为1个时钟周期。
<...
【专利技术属性】
技术研发人员:刘虎,廖恒,屠嘉晋,袁宏辉,林灏勋,朱凡,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。