数据存储
提供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中四项要素的含义。
参数名 |
描述 |
---|---|
值(value) |
|
列(column) |
|
索引B(pointerB) |
|
索引E(pointerE) |
|
假设矩阵A为:,则A的CSR格式如表2所示。
矩阵 |
索引方式 |
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中四项要素的含义。
参数名 |
描述 |
---|---|
值(value) |
|
列(column) |
|
索引B(pointerB) |
|
索引E(pointerE) |
|
假设矩阵A为:,则A的CSC格式如表4所示。