一种稀疏矩阵存算系统及方法技术方案

技术编号:30363383 阅读:22 留言:0更新日期:2021-10-16 17:24
本发明专利技术提供了一种稀疏矩阵存算系统及方法,属于微电子器件领域,系统包括:第一存储阵列用于存储稀疏矩阵非零元的坐标索引表;第二存储阵列用于存储稀疏矩阵的元素,同时作为稀疏矩阵乘法运算的原位计算核;分块存储调度单元用于将稀疏矩阵分块成若干子矩阵,按照不同的压缩格式将各子矩阵存储至第二存储阵列;且建立稀疏矩阵对应的索引表;第二外围电路用于将向量转换为电压信号,并将电压信号施加在稀疏矩阵的子矩阵对应的位线或字线上,完成稀疏矩阵与向量的乘法运算。矩阵与向量的乘法运算。矩阵与向量的乘法运算。

【技术实现步骤摘要】
一种稀疏矩阵存算系统及方法


[0001]本专利技术属于微电子器件领域,更具体地,涉及一种稀疏矩阵存算系统及方法。

技术介绍

[0002]稀疏矩阵是科学和工程计算中较为常见的一种矩阵,但是由于其0元素占整个矩阵的大部分,而0元素对矩阵计算来讲是无意义的,因此,稀疏矩阵的存储和计算效率比较低。
[0003]稀疏矩阵的存储和矩阵向量乘法一直以来是计算机和微电子领域的重大挑战,特别是在存内计算中,由于存内计算技术具有天然的原位计算和高并行度,对矩阵元素存储的位置有着非常严格的对齐要求,因此在完全并行的情况下,如果不对稀疏矩阵进行数学变换没法对0元素进行剔除的,而0元素在存内计算中往往不是以0的形式存在存储器中,一般是以一个高电阻态存入器件,而不同的器件存0的电阻态不同,同时不存在电导为0的半导体存储器,因此,0元素不仅浪费了存储空间,而且会引起计算误差,增加不必要的能耗和计算延时,而当前还没有专利和文献针对存内计算架构为稀疏矩阵设定特定的存储格式和运算格式。

技术实现思路

[0004]针对现有技术的缺陷,本专利技术的目的在于提供一种稀疏矩阵存算系统及方法,旨在解决现有的稀疏矩阵的存储和矩阵向量乘法运算时无法剔除0元素,且0元素不仅浪费存储空间,而且会引入计算误差,增加不必要的能耗和计算延时,因此,稀疏矩阵的存储和矩阵向量乘法运算过程中存在存储空间大且计算效率较低的问题。
[0005]为实现上述目的,本专利技术提供了一种稀疏矩阵存算系统,包括两两相互连接的第一存储阵列、第二存储阵列、第一外围电路、第二外围电路、主处理器、片上缓存和分块存储调度单元;
[0006]第一存储阵列用于存储稀疏矩阵非零元的坐标索引表;第二存储阵列用于存储稀疏矩阵的元素,同时作为稀疏矩阵乘法运算的原位计算核;
[0007]片上缓存用于在执行稀疏矩阵乘法运算时加载稀疏矩阵的索引表,并将索引表中地址译码和选通开关位置的选择分别传送至第一外围电路和第二外围电路;并存储中间运算结果,待计算任务全部结束,将所有中间运算结果返回至主处理器;
[0008]分块存储调度单元用于将稀疏矩阵分块成若干子矩阵后,按照不同的压缩格式将各子矩阵存储至第二存储阵列;且建立剩余子矩阵对应的索引表,存储至第一存储阵列;
[0009]第一外围电路用于根据接收的地址译码,对第一存储阵列中的索引表进行读写,将读写的稀疏矩阵的索引表传输至片上缓存;
[0010]第二外围电路用于将向量转换为电压信号,并根据选通开关位置的选择打开对应的开关,电压信号通过已打开的开关施加在稀疏矩阵的子矩阵对应的位线或字线上,并通过字线或位线读取中间运算结果存入片上缓存;
[0011]主处理器用于分析稀疏矩阵的类型;接收中间运算结果;并将接收的向量传递至第二外围电路。
[0012]优选地,按照不同的压缩格式存储子矩阵的方法为:
[0013]剔除全0的子矩阵,并对剩余的各子矩阵前端和末端全零的行或列进行剔除,只存储非零元的行或列。
[0014]优选地,对子矩阵进行压缩时,采用直接调用缩行存储格式,将非零元素左移,使所有的元素压缩至同一行中进行存储。
[0015]优选地,第一外围电路包括读写电路、驱动电路、数模转换器、模数转换器和地址译码器;
[0016]第二外围电路包括读写电路、驱动电路、数模转换器、模数转换器和选通开关。
[0017]优选地,第一存储阵列和第二存储阵列的结构为十字交叉杆结构,或晶体管

忆阻器级联结构,或单晶体管

多忆阻器级联结构。
[0018]优选地,第一存储阵列和第二存储阵列中的存储器为忆阻器,或阻变存储器,或相变存储器,或自选转移力矩

磁随机存储器,或NOR Flash器件或NAND Flash器件。
[0019]另一方面,本专利技术提供了一种稀疏矩阵存算方法,包括以下步骤:
[0020]通过识别判断稀疏矩阵的类型,将稀疏矩阵进行分割后,按照不同的压缩格式进行存储,并建立各子矩阵对应的索引表;
[0021]当执行稀疏矩阵向量乘法运算时,将向量转换为电信号;
[0022]以各子矩阵为单元,顺次根据各子矩阵对应索引表中的地址译码,将电信号加载至子矩阵中,完成当前子矩阵与向量之间的乘法累加运算,存储当前中间运算结果。
[0023]优选地,按照不同的压缩格式存储子矩阵的方法为:
[0024]剔除全0的子矩阵,并对剩余的各子矩阵前端和末端全零的行或列进行剔除,只存储非零元的行或列。
[0025]优选地,子矩阵支持采用直接调用缩行存储格式,将非零元素左移,使所有的元素压缩至同一行中进行存储。
[0026]总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有以下有益效果:
[0027]本专利技术中提供的稀疏阵列存算系统中存储阵列包括两部分,分别为第一存储阵列和第二存储阵列;第一存储阵列用于存储稀疏矩阵非零元的坐标索引表;第二存储阵列用于存储稀疏矩阵的元素,同时作为稀疏矩阵乘法运算的原位计算核;这种存储方式可以有效提升存内计算中稀疏矩阵向量乘法的存储效率,并保证计算的可靠性。
[0028]本专利技术中分块存储调度单元将稀疏矩阵分块成若干子矩阵后剔除掉子矩阵中的0元素,按照不同的压缩格式将各子矩阵存储至第二存储阵列,且建立系数觉镇对应的索引表,存储至第一存储阵列;因为稀疏矩阵存在很多0元素,不仅浪费存储空间,而且在计算过程中会增加一些不必要的能耗和计算延时,因此,分块存储调度单元将稀疏矩阵中的0删除掉,可以兼顾存储效率的同时,能够保留存内计算执行矩阵向量乘法的并行性,其中,对于对角矩阵和三角矩阵的压缩效率提升尤为明显。
附图说明
[0029]图1是本专利技术实施例提供的稀疏矩阵存算系统的结构示意图;
[0030]图2是本专利技术实施例1提供的对角稀疏矩阵的存储与运算格式示意图;
[0031]图3是本专利技术实施例2提供的三角稀疏矩阵的存储与运算格式示意图;
[0032]图4是本专利技术实施例3提供的随机稀疏矩阵的存储与运算格式示意图。
具体实施方式
[0033]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0034]一方面,如图1所示,本专利技术提供一种稀疏矩阵存算系统,包括两两相互连接的第一存储阵列3

1、第二存储阵列3

3、第一外围电路3

2、第二外围电路3

4、主处理器1、片上缓存4和分块存储调度单元2;
[0035]第一存储阵列3

1用于存储稀疏矩阵非零元的坐标索引表;第二存储阵列3

3用于存储稀疏矩阵的元素,同时作为稀疏矩阵乘法运算的原位计算核;
[0036]片上缓存4用于在执行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种稀疏矩阵存算系统,其特征在于,包括:两两相互连接的第一存储阵列、第二存储阵列、第一外围电路、第二外围电路、主处理器、片上缓存和分块存储调度单元;所述第一存储阵列用于存储稀疏矩阵非零元的坐标索引表;所述第二存储阵列用于存储稀疏矩阵的元素,同时作为稀疏矩阵乘法运算的原位计算核;所述片上缓存用于在执行稀疏矩阵乘法运算时加载稀疏矩阵的索引表,并将索引表中地址译码和选通开关位置的选择分别传送至第一外围电路和第二外围电路;并存储中间运算结果,待计算任务全部结束,将所有中间运算结果返回至主处理器;所述分块存储调度单元用于将稀疏矩阵分块成若干子矩阵后,按照不同的压缩格式将各子矩阵存储至第二存储阵列;且建立剩余子矩阵对应的索引表,存储至第一存储阵列;所述第一外围电路用于根据接收的地址译码,对第一存储阵列中的索引表进行读写,将读写的稀疏矩阵的索引表传输至片上缓存;所述第二外围电路用于将向量转换为电压信号,并根据选通开关位置的选择打开对应的开关,电压信号通过已打开的开关施加在稀疏矩阵的子矩阵对应的位线或字线上,并通过字线或位线读取中间运算结果存入片上缓存;所述主处理器用于分析稀疏矩阵的类型;接收中间运算结果;并将接收的向量传递至第二外围电路。2.根据权利要求1所述的稀疏矩阵存算系统,其特征在于,按照不同的压缩格式存储子矩阵的方法为:剔除全0的子矩阵,并对剩余的各子矩阵前端和末端全零的行或列进行剔除,只存储非零元的行或列。3.根据权利要求1或2所述的稀疏矩阵存算系统,其特征在于,对子矩阵进行压缩时,采用直接调用缩行存储格式,将非零元素左移,使所有的元素压缩至同一行中进行存储。4....

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

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

1