针对稀疏矩阵的数据存储方法及基于该方法的SpMV实现方法

    公开(公告)号:CN102033854A

    公开(公告)日:2011-04-27

    申请号:CN201010594672.1

    申请日:2010-12-17

    Abstract: 本发明公开一种针对稀疏矩阵的数据存储方法及基于该方法的SpMV实现方法,存储方法包括A、以给定列单元大小的行数扫描稀疏矩阵,当扫描到非零元时,将该非零元所在列的非零元值存储到非零元数组val中;B、计算列值差,判断非零元列单元列值差类型,将列值差类型相同的列单元作为同一列组并存储列组信息到index数组。SpMV实现方法为:1)根据列值差类型,计算列单元的列值;2)根据列值读取相应的x变量,与val中的元素相乘;3)将列组中每个列单元计算得到的结果进行累加后保存在结果数组中;4)继续读取下一个列组的列值差类型。本发明的方法减少了零元填充,提高稀疏矩阵向量乘实现时的操作和存储访问操作的运行效率。

    稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法

    公开(公告)号:CN102141976B

    公开(公告)日:2013-08-14

    申请号:CN201110004075.3

    申请日:2011-01-10

    Abstract: 本发明公开一种稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法,存储方法为1)按行扫描稀疏矩阵A,以对角线编号表示非零元对角线的位置;2)以非零元对角线与矩阵A侧边的交点作水平线将矩阵A切分为多个子稀疏矩阵;3)按行顺序存储每个子稀疏矩阵中的非零元对角线上的元素到val数组。SpMV实现方法为:1)遍历稀疏矩阵,计算每个子稀疏矩阵的稀疏矩阵向量乘y=A1*x;2)合并所有子稀疏矩阵向量乘。本发明的数据存储方法不需要存储非零元的列索引,减小了存储空间需求和访存开销;对角线和x数组索引数组占用较小存储空间,降低了访存复杂度,计算所需的数据均为连续访问,使得编译器和硬件可以充分优化。

    稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法

    公开(公告)号:CN102141976A

    公开(公告)日:2011-08-03

    申请号:CN201110004075.3

    申请日:2011-01-10

    Abstract: 本发明公开一种稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法,存储方法为1)按行扫描稀疏矩阵A,以对角线编号表示非零元对角线的位置;2)以非零元对角线与矩阵A侧边的交点作水平线将矩阵A切分为多个子稀疏矩阵;3)按行顺序存储每个子稀疏矩阵中的非零元对角线上的元素到val数组。SpMV实现方法为:1)遍历稀疏矩阵,计算每个子稀疏矩阵的稀疏矩阵向量乘y=A1*x;2)合并所有子稀疏矩阵向量乘。本发明的数据存储方法不需要存储非零元的列索引,减小了存储空间需求和访存开销;对角线和x数组索引数组占用较小存储空间,降低了访存复杂度,计算所需的数据均为连续访问,使得编译器和硬件可以充分优化。

Patent Agency Ranking