CSR格式 — CAE术语解说
CSR格式
老师,我听说CSR格式(Compressed Sparse Row)在FEM求解器中使用,请问这是什么?
这是一种数据结构,用于高效地在内存中存储"尺寸大但大部分为零"的稀疏矩阵(Sparse Matrix),比如FEM的刚性矩阵。对于100万节点的FEM模型,刚性矩阵有100亿个元素,但实际非零的只有0.001%左右——将几乎全零的矩阵完全存储是浪费的。CSR格式仅用非零元素的值、列号、行指针这3个数组来表示稀疏矩阵。100亿元素的矩阵可以用100万元素×平均20个非零元素(2000万个)的存储空间完成,这就是效率提升。
定义
CSR格式具体是什么样的数据结构?
它由3个数组组成。①values[]:从上到下扫描各行时的非零值序列。②col_indices[]:每个非零值的列号。③row_ptr[]:每行在values数组中的起始位置指针(大小为行数+1)。例如,对于3×3矩阵,其中(0,0)=5、(0,2)=3、(1,1)=7、(2,0)=2、(2,2)=9,则values=[5,3,7,2,9]、col_indices=[0,2,1,0,2]、row_ptr=[0,2,3,5]。在CG法和迭代求解法中频繁出现的SpMV(稀疏矩阵×向量乘积)运算,采用CSR格式可以获得很好的缓存效率。
关联术语
稀疏矩阵存储效率优化是大规模FEM计算的基础,没想到还有GPU向的变形!
对CAE术语的准确理解是团队沟通的基础。 — Project NovaSolver 也致力于支持实务人员的学习。
Project NovaSolver — 面向CAE实务课题的研究开发
"能否更高效地分析CSR格式?"——我们倾听实务人员的声音,力求改进现有工作流程,致力于次世代CAE项目的开发。具体功能尚未公开,但我们定期发布开发进展。
获取进展通知 →相关主题
本文评价
感谢您的反馈!
有帮助
需要更多
细节
细节
报告
错误
错误