首页 文章

具有特征库的块稀疏矩阵

提问于
浏览
2

我想加快我正在努力的图书馆 . 大多数矩阵的尺寸相当小(比如高达10x40) . 大多数都是块稀疏的,在运行时已知有稀疏模式 . 我想利用稀疏性来加速线性代数运算 .

除了基本的线性代数运算外,我还使用了SVD分解 . 块稀疏矩阵将有助于检测零和行对角矩阵的列/行,这可以减少分解时间 .

是否存在一个特定的原因,为什么稀疏矩阵只是按系数方式实现而不是按块方式实现?

我的意思是当前的实现对于具有少量非零元素的大矩阵是有效的,但对于具有相当数量的非零和零的矩阵则不是 .

我看了一下使用Eigen库实现稀疏块矩阵的the so-bogus library .

1 回答

  • 1

    对于这样的小矩阵没有太多期望,因为这会减少矢量化机会和指令流水线 . 您可以通过比较 triangular matrix * vectorfull matrix * vector 的10x10矩阵的性能来自行检查 .

    然后,关于SVD,情况甚至更糟,因为这样的小矩阵是优选的,并且在第一次扫描期间零的结构可能会完全丢失,除非它具有可被利用的非常特殊的结构,如块对角线结构体 .

相关问题