中文

GPU上的分层矩阵运算:矩阵-向量乘法与压缩

数据结构与算法 2019-02-06 v1 数学软件

摘要

分层矩阵是稠密矩阵在空间与时间上高效的表示,其利用了不同粒度下矩阵块的低秩结构。分层低秩块划分产生的表示可以近线性复杂度存储与运算,而非稠密矩阵通常的多项式复杂度。本文中,我们给出H2\mathcal{H}^2型分层矩阵在GPU上的矩阵向量乘法与压缩运算的高性能实现。该变体除分层块划分外,还利用块表示的层次基,得到仅需O(n)O(n)存储及O(n)O(n)复杂度的mat-vec与压缩核函数。这两类运算是分层矩阵代数运算的核心,mat-vec是数值算法中无处不在的运算,而压缩/再压缩是其他代数运算的关键构件,其在执行期间需要周期性再压缩。开发高效GPU算法的困难主要来自底层分层表示的不规则树数据结构,性能的关键在于将扁平树上的计算重构为允许批量线性代数运算执行的形式。这需要将不规则布局的数据整理为可供批量例程使用的形式。整理操作仅涉及指针算术而无数据移动,因此开销极小。我们在来自空间统计的2D与3D问题的协方差矩阵上的数值结果显示了例程的高效率——带宽受限的mat-vec超过550GB/s,压缩在P100 Pascal GPU上持续性能超过850GFLOPS/s。

关键词

引用

@article{arxiv.1902.01829,
  title  = {Hierarchical Matrix Operations on GPUs: Matrix-Vector Multiplication and Compression},
  author = {Wajih Halim Boukaram and George Turkiyyah and David E. Keyes},
  journal= {arXiv preprint arXiv:1902.01829},
  year   = {2019}
}