---
title: 数据存储
description: "存储向量中所有的元素。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0824.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0824.html
indexId: fd8b364e0ba536d470e3f5f89b3c1a37212847848f657bd51e00616760445ca861
---
# 数据存储

#### 向量全存储格式

存储向量中所有的元素。


#### 稀疏矩阵存储格式

CSR（Compressed Sparse Row，行序稀疏矩阵压缩）格式包含三项要素：值（value）、列（column）、行索引（pointerB）。对于集群版的LLT和LLH方法，只存储上三角或者下三角部分。CSR稀疏矩阵A中三项要素说明如表1所示。


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

| 参数名 | 描述 |
| --- | --- |
| 值（value） | A矩阵中的非零元素，存储方式为行主序。 数组长度与A中非零元素个数相等。 |
| 列（column） | value数组中第i个元素value[i]在矩阵A中的列序号。 数组长度与A中非零元素个数相等。 |
| 索引B（pointerB） | 在基0索引中，pointerB(j)表示A矩阵第j行第一个非零元素在value数组中的索引。 数组长度与A的行数+1相等。 |


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

当使用集群版的LLT或LLH方法，只需存储上三角矩阵，其格式如表3所示。


**表2 矩阵A的CSR格式**

| 矩阵 | 索引方式 | CSR格式 |
| --- | --- | --- |
|  | 基0索引 | value = [2, \-3, 7, \-3, 1, \-6, 1, \-4, 5, 7, \-6, 5] column = [0, 1, 3, 0, 2, 3, 1, 2, 3, 0, 1, 2] pointerB = [0, 3, 6, 9, 12] |


**表3 对称矩阵A的上三角CSR格式**

| 矩阵 | 索引方式 | CSR格式 |
| --- | --- | --- |
|  | 基0索引 | value = [2, \-3, 7, 1, \-6, \-4, 5] column = [0, 1, 3, 2, 3, 2, 3] pointerB = [0, 3, 5, 7, 7] |


CSC（Compressed Sparse Column，列序稀疏矩阵压缩），格式包含三项要素：值（value）、行（row）、列索引（pointerB），与CSR格式同理，不做赘述。

COO（Coordinate，坐标），格式包含三项要素：值（value）、行坐标（row）、列坐标（column）。COO稀疏矩阵A中三项要素说明如表4所示。


**表4 COO稀疏矩阵A中三项要素说明**

| 参数名 | 描述 |
| --- | --- |
| 值（value） | A矩阵中的非零元素，存储方式为行主序。 数组长度与A中非零元素个数相等。 |
| 行坐标（row） | value数组中第i个元素value[i]在矩阵A中的行序号。 数组长度与A中非零元素个数相等。 |
| 列坐标（column） | value数组中第i个元素value[i]在矩阵A中的列序号。 数组长度与A中非零元素个数相等。 |


假设矩阵A为：，则A的COO格式如表5所示。


**表5 矩阵A的COO格式**

| 矩阵 | COO格式 |
| --- | --- |
|  | value = [2, \-3, 7, \-3, 1, \-6, 1, \-4, 5, 7, \-6, 5] row = [0, 1, 3, 0, 2, 3, 1, 2, 3, 0, 1, 2] column = [0, 1, 3, 0, 2, 3, 1, 2, 3, 0, 1, 2] |


#### 稠密矩阵存储格式

稠密格式分为行主序和列主序，包含值（value）和主维度（ld，Leading dimension）。若稠密矩阵A为行主序，则ld为保存每一行所需要的数组长度，若为列主序，则ld表示保存每一列所需要的数组长度。稠密矩阵A参数含义如表6所示。


**表6 Dense稠密矩阵A**

| 参数名 | 描述 |
| --- | --- |
| 值（value） | A矩阵中的所有元素，存储方式为行（列）主序。 数组长度等于行（列）数乘以ld。 |
| 主维度（ld） | 整数，表示两行（列）之间的元素间隔个数，大于等于列（行）元素个数。 |


假设矩阵A为：，则A的稠密存储格式如表7所示。


**表7 矩阵A的稠密格式**

| 矩阵 | Dense格式（行主序） | Dense格式（列主序） |
| --- | --- | --- |
|  | value = [2, \-3, 0, 7, \-1, 2, 4, \-6, 2, 1, \-4, 3, 3, 5, 9, 8] ld = 4 | value = [2, \-1, 2, 3, \-3, 2, 1, 5, 0, 4, \-4, 9, 7, \-6, 3, 8] ld = 4 |
