中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

数据存储

提供KML_SPBLAS库函数的数据存储格式说明。

稀疏向量压缩存储格式

仅存储稀疏矩阵中的非零元素。假设有稀疏矩阵a,a中有nz个非零元素:a(k1), a(k2), ..., a(knz)。

存储时,用两个数组来存储矩阵a的信息:

x(1)=a(k1), x(2)=a(k2), ..., x(nz)=a(knz)

indx(1)=k1, indx(2)=k2, ..., indx(nz)=knz

压缩存储格式可以节省计算机内存和运行时间。

向量全存储格式

存储稀疏矩阵中所有的元素。

稀疏矩阵存储格式

CSR(Compressed Sparse Row,行序稀疏矩阵压缩)格式包含四项要素:值(value)、列(column)、索引B(pointerB)和索引E(pointerE)。

表1描述了稀疏矩阵A中四项要素的含义。

表1 CSR稀疏矩阵A中四项要素说明

参数名

描述

值(value)

  • A矩阵中的非零元素,存储方式为行主序。
  • 数组长度与A中非零元素个数相等。

列(column)

  • value数组中第i个元素value[i]在矩阵A中的列序号。
  • 数组长度与A中非零元素个数相等。

索引B(pointerB)

  • 在基1索引中,pointerB(j)-pointerB(1)+1表示A矩阵第j行第一个非零元素在value数组中的索引。
  • 在基0索引中,pointerB(j)-pointerB(0)表示A矩阵第j行第一个非零元素在value数组中的索引。
  • 数组长度与A的行数相等。

索引E(pointerE)

  • 在基1索引中,pointerE(j)-pointerB(1)表示A矩阵第j行最后一个非零元素在value数组中的索引。
  • 在基0索引中,pointerE(j)-pointerB(0)-1表示A矩阵第j行最后一个非零元素在value数组中的索引。
  • 数组长度与A的行数相等。

假设矩阵A为:,则A的CSR格式如表2所示。

表2 矩阵A的CSR格式

矩阵

索引方式

CSR格式

基1索引

value = [2, -3, 7, 1, -6, 8, -4, 5, 9]

column = [1, 2, 4, 3, 4, 1, 3, 4, 1]

pointerB = [1, 4, 6, 9]

pointerE = [4, 6, 9, 10]

基0索引

value = [2, -3, 7, 1, -6, 8, -4, 5, 9]

column = [0, 1, 3, 2, 3, 0, 2, 3, 0]

pointerB = [0, 3, 5, 8]

pointerE = [3, 5, 8, 9]

CSC(Compressed Sparse Column,列序稀疏矩阵压缩)格式包含四项要素:值(value)、列(column)、索引B(pointerB)和索引E(pointerE)。

表3描述了稀疏矩阵A中四项要素的含义。

表3 CSC格式稀疏矩阵A中四项要素说明

参数名

描述

值(value)

  • A矩阵中的非零元素,存储方式为列主序。
  • 数组长度与A中非零元素个数相等。

列(column)

  • value数组中第i个元素value[i]在矩阵A中的行序号。
  • 数组长度与A中非零元素个数相等。

索引B(pointerB)

  • 在基1索引中,pointerB(j)-pointerB(1)+1表示A矩阵第j列第一个非零元素在value数组中的索引。
  • 在基0索引中,pointerB(j)-pointerB(0)表示A矩阵第j列第一个非零元素在value数组中的索引。
  • 数组长度与A的列数相等。

索引E(pointerE)

  • 在基1索引中,pointerE(j)-pointerB(1)表示A矩阵第j列最后一个非零元素在value数组中的索引。
  • 在基0索引中,pointerE(j)-pointerB(0)-1表示A矩阵第j列最后一个非零元素在value数组中的索引。
  • 数组长度与A的列数相等。

假设矩阵A为:,则A的CSC格式如表4所示。

表4 矩阵A的CSC格式

矩阵

索引方式

CSC格式

基1索引

value = [2, 8, 9, -3, 1, -4, 7, -6, 5]

column = [1, 3, 4, 1, 2, 3, 1, 2, 3]

pointerB = [1, 4, 5, 7]

pointerE = [4, 5, 7, 10]

基0索引

value = [2, 8, 9, -3, 1, -4, 7, -6, 5]

column = [0, 2, 3, 0, 1, 2, 0, 1, 2]

pointerB = [0, 3, 4, 6]

pointerE = [3, 4, 6, 9]

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词