存内稀疏矩阵乘法运算方法、方程求解方法以及求解器技术

技术编号:31712516 阅读:18 留言:0更新日期:2022-01-01 11:16
本发明专利技术公开了一种存内稀疏矩阵乘法运算方法、方程求解方法以及求解器,其乘法运算方法包括:对原始稀疏矩阵进压缩形成压缩矩阵,将压缩矩阵的元素表示为补码后将矩阵拆分为二进制的符号位矩阵、数据位矩阵;将拆分后的矩阵分别存入二值存储器阵列;将原始向量中与压缩矩阵相乘的元素表示为补码并进行拆分后以电压形式输入存储器阵列,与存储位的电导相乘后以电流的形式输出,检测输出电流并进行模数转换为二进制数值;将各存储器阵列的乘积结果根据二进制运算规则进行移位与累加,得到原始稀疏矩阵与原始向量的乘积。通过上述运算方法,可以降低存储空间,从而降低电路功耗,且避免出现低电导值,减小计算误差。减小计算误差。减小计算误差。

【技术实现步骤摘要】
存内稀疏矩阵乘法运算方法、方程求解方法以及求解器


[0001]本专利技术属于模拟电路领域,更具体地,涉及一种存内稀疏矩阵乘法运算方法、方程求解方法以及求解器。

技术介绍

[0002]基于各种非易失存储器的存算一体化架构是一种用于处理数据密集型任务的新兴计算架构,由于计算过程直接在存储器中进行,最大限度的降低了运算过程中的数据传输,使得存算一体化架构具有很高的计算能效。目前,存算一体架构已在神经形态计算领域取得了显著的成就,各种基于非易失性存储器搭建的人工神经网络证实了存算一体技术的巨大潜力。
[0003]然而,受限于非易失性存储器的阵列结构与固定的矩阵运算范式,目前是将整个原始矩阵阵列完整地映射到阵列的物理结构(即十字交叉结构)。这种映射方式对稠密矩阵很有效,但是稀疏矩阵中有大量的0元素,存储这些0元素有几个缺点:(1)0对矩阵乘法是没有意义的,存储0元素会浪费宝贵的存储空间(2)0在映射过程中会被映射为低电导值,但是电导作为物理量无法等于0,因此,对0元素的存储是有误差的,这使得阵列执行稀疏矩阵乘法时的计算误差增大。

技术实现思路

[0004]针对现有技术的以上缺陷或改进需求,本专利技术提供了一种存内稀疏矩阵乘法运算方法、方程求解方法以及求解器,其目的在于在实现存算一体化的同时节省存储空间并提高计算精度。
[0005]为实现上述目的,按照本专利技术的第一方面,提供了一种存内稀疏矩阵乘法运算方法,其包括:
[0006]对原始稀疏矩阵进压缩形成压缩矩阵,将压缩矩阵的元素表示为补码后将矩阵拆分为二进制的符号位矩阵、数据位矩阵;
[0007]将拆分后的矩阵分别存入二值存储器阵列;
[0008]将原始向量中与压缩矩阵相乘的元素表示为补码并进行拆分后以电压形式输入存储器阵列,与存储位的电导相乘后以电流的形式输出,检测输出电流并进行模数转换为二进制数值;
[0009]将各存储器阵列的乘积结果根据二进制运算规则进行移位与累加,得到原始稀疏矩阵与原始向量的乘积。
[0010]优选地,对原始稀疏矩阵进压缩,包括,将矩阵中同一行元素中的零元素去除、将非零元素移位压缩至矩阵的同一侧,同一行中被压缩后的非零元素相邻、非零元素之间不含零元素。
[0011]优选地,,将拆分后的矩阵分别存入二值存储器阵列,包括:
和最大迭代次数m2;
[0030]步骤S3:通过权利要求1至7任一项所述的存内稀疏矩阵乘法运算方法计算A
·
d,获取A
·
d的乘积结果r

和当前迭代次数m2′
,判断是否满足r
′‑
r<tol2或m
′2>m2,若是,则输出d值;若否,则更新解d并重复步骤S3;
[0031]步骤S4:根据输出d值更新向量解x=x+d,重新计算残差向量r并获取当前迭代次数m1′
,判断是否满足r<tol1或m
′1>m1,若是,则输出x,若否,则跳转至步骤S3。
[0032]按照本专利技术的第三方面,提供了一种存内稀疏矩阵方程求解器,其包括:数字计算模块和存内运算模块,所述数字计算模块包括第一处理单元、存储单元和第二处理单元,所述存内运算模块包括非易失性存储器阵列,其中,
[0033]第一处理单元用于执行:原始稀疏矩阵A的压缩、补码转换和拆分;预设原始矩阵方程A
·
x=b的向量解x
n
、解精度tol1和最大迭代次数m1;计算残差向量r=b

A
·
x;根据d值更新向量解x=x+d,重新计算残差向量r并获取当前迭代次数m1′
,判断是否满足r<tol1或m
′1>m1,若是,则输出x;若否,则将更新残差向量r存入存储单元直至足r<tol1或m
′1>m1;
[0034]存储单元用于将拆分后的矩阵传输至存内运算模块的存储器阵列、将残差向量r传输至第二处理单元以及将d值传输给第一处理单元;
[0035]第二处理单元用于确定残差矩阵方程A
·
d=r,预设残差矩阵方程的初始化解d
n
、解精度tol2和最大迭代次数m2,以及通过权利要求1至7任一项所述的存内稀疏矩阵乘法运算方法计算A
·
d,获取A
·
d的乘积结果r

和当前迭代次数m2′
,判断是否满足r
′‑
r<tol2或m
′2>m2,若是,则输出d值;若否,则更新解d并重复计算A
·
d直至满足r
′‑
r<tol2或m
′2>m2。
[0036]优选地,所述第一处理单元为CPU,所述存储单元为DRAM,所述第二处理单元为FPGA。
[0037]总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,由于在执行稀疏矩阵乘法运算时,将稀疏矩阵进行压缩,去除零元素,然后将压缩后的元素转换为补码,将补码拆分为二进制矩阵后映射进存储器阵列。由于矩阵进行压缩,可以降低存储空间,从而降低电路功耗;且去除零元素,在在映射过程中避免出现低电导值,减小计算误差。同时,在执行稀疏矩阵方程求解时,通过执行数值迭代算法和精度修正算法,其计算精度可调且系统鲁棒性高。
附图说明
[0038]图1是本专利技术一实施例中的存内稀疏矩阵方程求解器的结构示意图;
[0039]图2是本专利技术一实施例中的存内运算模块的结构示意图;
[0040]图3是本专利技术一实施例中的存内稀疏矩阵乘法运算方法地步骤流程图;
[0041]图4是本专利技术一实施例中的非对角矩阵与存储器阵列的映射过程图;
[0042]图5为本专利技术一实施例中的对角矩阵与存储器阵列的映射过程图;
[0043]图6为本专利技术一实施例中的检测电路的结构示意图;
[0044]图7为本专利技术一实施例中的存内稀疏矩阵方程求解方法的流程图。
具体实施方式
[0045]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0046]为了便于理解,首先对存内稀疏方程求解器的结构框架进行介绍。
[0047]如图1所示为本专利技术一实施例中的存内稀疏矩阵方程求解器的结构示意图,存内稀疏矩阵方程求解器包括数字计算模块和存内运算模块,其中,数字计算模块包括第一处理单元PE1、存储单元和第二处理单元PE2,存内运算模块包括非非易失性存储器阵列以及外围电路。第一处理单元PE1为CPU或GPU,存储单元为DRAM,第二处理单元PE2为FPGA。非易失性存储器阵列为十字交叉结构,包含有多条位线(行线)和多条字线(列线)。外部电路包括阵列外部读取电路,移位累加单元与缓本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种存内稀疏矩阵乘法运算方法,其特征在于,包括:对原始稀疏矩阵进压缩形成压缩矩阵,将压缩矩阵的元素表示为补码后将矩阵拆分为二进制的符号位矩阵、数据位矩阵;将拆分后的矩阵分别存入二值存储器阵列;将原始向量中与压缩矩阵相乘的元素表示为补码并进行拆分后以电压形式输入存储器阵列,与存储位的电导相乘后以电流的形式输出,检测输出电流并进行模数转换为二进制数值;将各存储器阵列的乘积结果根据二进制运算规则进行移位与累加,得到原始稀疏矩阵与原始向量的乘积。2.如权利要求1所述的存内稀疏矩阵乘法运算方法,其特征在于,对原始稀疏矩阵进压缩,包括,将矩阵中同一行元素中的零元素去除、将非零元素移位压缩至矩阵的同一侧,同一行中被压缩后的非零元素相邻、非零元素之间不含零元素。3.如权利要求1所述的存内稀疏矩阵乘法运算方法,其特征在于,将拆分后的矩阵分别存入二值存储器阵列,包括:将矩阵同一行的数据[a
i1
,
……
a
im
]存入存储器阵列的同一位线、不同行的数据存入存储器阵列的不同位线;将向量以电压形式输入存储器阵列,与存储位的电导相乘后以电流的形式输出,包括:将与同一位线上的数据[a
i1
,
……
a
im
]相乘的向量同步输入存储器阵列的字线;通过检测电路检测当前位线上的输出电流得到矩阵当前行的计算结果y
i
,与阵列不同行相乘的补码向量在不同时序输入存储器阵列的字线,并在不同时序检测当前行的计算结果,得到当前存储阵列与向量的乘积结果4.如权利要求1所述的存内稀疏矩阵乘法运算方法,其特征在于,当原始稀疏矩阵为对角矩阵时,将拆分后的矩阵分别存入二值存储器阵列,包括:将同一列数据存入存储器阵列的同一字线;将向量以电压形式输入存储器阵列,与存储位的电导相乘后以电流的形式输出,包括:将与原始稀疏矩阵非零元素相乘的向量元素同步输入当前存储器阵列的不同位线;通过检测电路同步检测并列位线的计算结果,得到当前存储阵列与补码向量的乘积结果。5.如权利要求3或4所述的存内稀疏矩阵乘法运算方法,其特征在于,所述检测电路包括第一晶体管、第二晶体管以及电容,其中,第一晶体管的源极与第二晶体管的漏极相连并与存储器阵列的位线相连,所述电容连接于位线与地之间,所述第一晶体管的漏极接高电平,所述第二晶体管的源极接地;
所述检测输出电流步骤包括:预放电:将第二晶体管的栅极接入开启电压、第一晶体管的栅极接入低电平以使电容内积累的电荷释放;读取阶段:将第一晶体管的栅极接入开启电压、第二晶体管的栅极接入低电平,获取位线电流对电容充电,将电流信号转换位电压信号并输出。6.如权利要求5所述的存内稀疏矩阵乘法运算方法,其特征在于,当原始稀疏矩阵为对角矩阵时,在通过检测电路检测计算结果之前,先将第二晶体管的栅极接低电平,并通过所述第一晶体管的栅极输入向量。7.如权利要求1所述的存内稀疏矩阵乘法运算方法,其特征在于,所述二值存储器阵列的介质呈非线性。8.一种存内稀疏矩...

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

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

1