一种存内精度可调的矢量矩阵乘法运算方法及运算器技术

技术编号:32632084 阅读:18 留言:0更新日期:2022-03-12 18:06
本发明专利技术公开了一种存内精度可调的矢量矩阵乘法运算方法及运算器,包括:基于运算数据的拆分转换规则将存储矩阵拆分为1个符号位矩阵、p1‑

【技术实现步骤摘要】
一种存内精度可调的矢量矩阵乘法运算方法及运算器


[0001]本专利技术属于模拟电路领域,更具体地,涉及一种存内精度可调的矢量矩阵乘法运算方法及运算器。

技术介绍

[0002]随着人工智能时代对数据量的爆发性增长,传统的冯
·
诺依曼计算机已经无法满足当前信息时代对计算机算力与计算机能效的迫切需求。存内计算模式,作为一种具有高运算能效,低运算延时,低运算时间复杂度的运算方式正在逐渐展现其价值。在这之中,基于非易失性存储器的存内矢量

矩阵运算在人工执行,科学计算等数据密集型任务中已经展现出了其相对传统的数字计算机巨大的能效与算力优势。
[0003]然而,基于非易失存储器的存内矢量

矩阵运算作为一种模拟运算模式,由于器件非理想效应的影响,其计算精度受到了很大的限制。基于单一存储器阵列的矢量

矩阵运算只能提供低精度的运算结果。而使用多片阵列进行精度扩展时,往往伴随着计算能效的指数倍下降。因此,为了使得存内计算模式具有更好的通用性,迫切的需要一种高能效的存内计算精度可调的矩阵运算核。

技术实现思路

[0004]针对现有技术的以上缺陷或改进需求,本专利技术提供了一种存内精度可调的矢量矩阵乘法运算方法及运算器,用以实现可变精度的矢量

矩阵运算,以解决现有忆阻矢量

矩阵运算单元无法针对不同的应用实现精度可调计算的技术问题。
[0005]为了实现上述目的,第一方面,本专利技术提供了一种存内精度可调的矢量矩阵乘法运算方法,包括以下步骤:
[0006]S1、基于运算数据的拆分转换规则,将存储矩阵中的各运算数据分别转换为长度为p1+k1的混合进制数据,得到转换后的存储矩阵;将转换后的存储矩阵中的各混合进制数据按位进行整合,得到1个符号位矩阵、p1‑
1个高位矩阵和k1个低位矩阵,并按照高低位顺序分别存储在对应的非易失存储阵列中;一个非易失存储阵列存储一个矩阵,用于进行运算的非易失存储阵列的个数为p1+k1个,p1和k1根据所需计算精度可调;
[0007]S2、基于运算数据的拆分转换规则,将输入矢量中的各运算数据分别转换为长度为p2+k2的混合进制数据,得到转换后的输入矢量;将转换后的输入矢量中的各混合进制数据按位进行整合,得到1个符号位矢量、p2‑
1个高位矢量和k2个低位矢量;
[0008]S3、将符号位矢量、高位矢量和低位矢量依次输入到p1+k1个非易失存储阵列中,依次实现符号位矢量、高位矢量和低位矢量与p1+k1个矩阵的乘法运算;
[0009]S4、基于二进制运算规则对所得乘法运算结果进行移位与累加,得到输入矢量与存储矩阵的矢量矩阵乘法运算结果;
[0010]上述运算数据的拆分转换规则为:对运算数据进行补码操作,得到m比特的二进制补码表达;将补码表达中的前p位数据按二进制位进行拆分,得到1个符号位数据和p

1个高
位数据;将补码表达中后m

p位数据顺序拆分为k个长度分别为m1、m2、

、m
k
的二进制数据后,转化为对应的十进制数,得到k个低位数据;进而得到从高位到低位依次排列的1个符号位数据、p

1个高位数据和k个低位数据,记为长度为p+k的混合进制数据;其中,
[0011]进一步优选地,上述非易失存储阵列为十字交叉结构,非易失存储器件位于十字交叉点上;非易失存储器件用于进行二值存储或多值存储;基于二值存储的非易失存储器件的非易失存储阵列记为二值非易失存储阵列;基于多值存储的非易失存储器件的非易失存储阵列记为多值非易失存储阵列;
[0012]上述非易失存储阵列包括二值非易失存储阵列和多值非易失存储阵列;
[0013]二值非易失存储阵列用于存储符号位矩阵和高位矩阵;
[0014]多值非易失存储阵列用于存储低位矩阵。
[0015]第二方面,本专利技术提供了一种存内精度可调的矢量矩阵乘法运算器,包括:外部输入模块、存内计算模块和移位累加模块;
[0016]存内计算模块包括p1+k1个非易失存储阵列,其中,p1和k1根据所需计算精度可调;
[0017]外部输入模块用于基于运算数据的拆分转换规则,将存储矩阵中的各运算数据分别转换为长度为p1+k1的混合进制数据,得到转换后的存储矩阵;将转换后的存储矩阵中的各混合进制数据按位进行整合,得到1个符号位矩阵、p1‑
1个高位矩阵和k1个低位矩阵,并按照高低位顺序分别存储在对应的非易失存储阵列中;一个非易失存储阵列存储一个矩阵;
[0018]外部输入模块还用于基于运算数据的拆分转换规则,将输入矢量中的各运算数据分别转换为长度为p2+k2的混合进制数据,得到转换后的输入矢量;将转换后的输入矢量中的各混合进制数据按位进行整合,得到1个符号位矢量、p2‑
1个高位矢量和k2个低位矢量,并依次输入到p1+k1个非易失存储阵列中;
[0019]存内计算模块用于基于非易失存储阵列依次实现符号位矢量、高位矢量和低位矢量与p1+k1个矩阵的乘法运算;
[0020]移位累加模块用于基于二进制运算规则对所得乘法运算结果进行移位与累加,得到输入矢量与存储矩阵的矢量矩阵乘法运算结果;
[0021]上述运算数据的拆分转换规则为:对运算数据进行补码操作,得到m比特的二进制补码表达;将补码表达中的前p位数据按二进制位进行拆分,得到1个符号位数据和p

1个高位数据;将补码表达中后m

p位数据顺序拆分为k个长度分别为m1、m2、

、m
k
的二进制数据后,转化为对应的十进制数,得到k个低位数据;进而得到从高位到低位依次排列的1个符号位数据、p

1个高位数据和k个低位数据,记为长度为p+k的混合进制数据;其中,
[0022]进一步优选地,上述非易失存储阵列为十字交叉结构,非易失存储器件位于十字交叉点上;非易失存储器件用于进行二值存储或多值存储;基于二值存储的非易失存储器件的非易失存储阵列记为二值非易失存储阵列;基于多值存储的非易失存储器件的非易失存储阵列记为多值非易失存储阵列;
[0023]上述非易失存储阵列包括二值非易失存储阵列和多值非易失存储阵列;
[0024]二值非易失存储阵列用于存储符号位矩阵和高位矩阵;
[0025]多值非易失存储阵列用于存储低位矩阵。
[0026]进一步优选地,上述非易失存储器件包括:阻变存储器、相变存储器、NOR

FLASH、自旋转移力矩磁存储器或铁电场效应晶体管。
[0027]进一步优选地,存内计算模块包括二值运算单元和多值运算单元;
[0028]二值运算单元包括p1个二值运算器;二值运算器包括二值非易失存储阵列和第一外围电路;第一外围电路包括第一数模转换模块和第一模数转换模块;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种存内精度可调的矢量矩阵乘法运算方法,其特征在于,包括以下步骤:S1、基于运算数据的拆分转换规则,将存储矩阵中的各运算数据分别转换为长度为p1+k1的混合进制数据,得到转换后的存储矩阵;将所述转换后的存储矩阵中的各混合进制数据按位进行整合,得到1个符号位矩阵、p1‑
1个高位矩阵和k1个低位矩阵,并按照高低位顺序分别存储在对应的非易失存储阵列中;一个非易失存储阵列存储一个矩阵,用于进行运算的非易失存储阵列的个数为p1+k1个,p1和k1根据所需计算精度可调;S2、基于运算数据的拆分转换规则,将输入矢量中的各运算数据分别转换为长度为p2+k2的混合进制数据,得到转换后的输入矢量;将所述转换后的输入矢量中的各混合进制数据按位进行整合,得到1个符号位矢量、p2‑
1个高位矢量和k2个低位矢量;S3、将所述符号位矢量、所述高位矢量和所述低位矢量依次输入到p1+k1个所述非易失存储阵列中,依次实现所述符号位矢量、所述高位矢量和所述低位矢量与p1+k1个矩阵的乘法运算;S4、基于二进制运算规则对所得乘法运算结果进行移位与累加,得到所述输入矢量与所述存储矩阵的矢量矩阵乘法运算结果;所述运算数据的拆分转换规则为:对运算数据进行补码操作,得到m比特的二进制补码表达;将所述补码表达中的前p位数据按二进制位进行拆分,得到1个符号位数据和p

1个高位数据;将所述补码表达中后m

p位数据顺序拆分为k个长度分别为m1、m2、

、m
k
的二进制数据后,转化为对应的十进制数,得到k个低位数据;进而得到从高位到低位依次排列的1个符号位数据、p

1个高位数据和k个低位数据,从而得到长度为p+k的混合进制数据;其中,2.根据权利要求1所述的矢量矩阵乘法运算方法,其特征在于,所述非易失存储阵列为十字交叉结构,非易失存储器件位于十字交叉点上;所述非易失存储器件用于进行二值存储或多值存储;基于二值存储的非易失存储器件的非易失存储阵列记为二值非易失存储阵列;基于多值存储的非易失存储器件的非易失存储阵列记为多值非易失存储阵列;所述非易失存储阵列包括所述二值非易失存储阵列和所述多值非易失存储阵列;所述二值非易失存储阵列用于存储符号位矩阵和高位矩阵;所述多值非易失存储阵列用于存储低位矩阵。3.一种存内精度可调的矢量矩阵乘法运算器,其特征在于,包括:外部输入模块、存内计算模块和移位累加模块;所述存内计算模块包括p1+k1个非易失存储阵列,其中,p1和k1根据所需计算精度可调;所述外部输入模块用于基于运算数据的拆分转换规则,将存储矩阵中的各运算数据分别转换为长度为p1+k1的混合进制数据,得到转换后的存储矩阵;将所述转换后的存储矩阵中的各混合进制数据按位进行整合,得到1个符号位矩阵、p1‑
1个高位矩阵和k1个低位矩阵,并按照高低位顺序分别存储在对应的非易失存储阵列中;一个非易失存储阵列存储一个矩阵;所述外部输入模块还用于基于运算数据的拆分转换规则,将输入矢量中的各运算数据分别转换为长度为p2+k2的混合进制数据,得到转换后的输入矢量;将所述转换后的输入矢量中的各混合进制数据按位进行整合,得到1个符号位矢量、p2‑
1个高位矢量和k2个低位矢
量,并依次输入到p1+k1个非易失存储阵列中;所述存内计算模块用于基于非易失存储阵列依次实现所述符号位矢量、所述高位矢量和所述低位矢量与p1+k1个矩阵的乘法运算;所述移位累加模块用于基于二进制运算规则对所得乘法运算结果进行移位与累加,得到所述输入矢量与所述存储矩阵的矢量矩阵乘法运算结果;所述运算数据的拆分转换规则为:对运算数据进行补码操作,得到m比特的二进制补码表达;将所述补码表达中的前p位数据按二进制位进行拆分,得到1个符号位数据和p

1个高位数据;将所述补码表达中后m

p位数据顺序拆分为k个长度分别为m1、m2、

、m
k
的二进制数据后,转化为对应的十进制数,得到k个低位数据;进而得到从高位到低位依次排列的1个符号位数据、p

1个高位数据和k个低位数据,记为长度为p+k的混合进制数据;其中...

【专利技术属性】
技术研发人员:缪向水李健聪李祎
申请(专利权)人:华中科技大学
类型:发明
国别省市:

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

1