RSVDPACK:在多核与 GPU 架构上计算矩阵奇异值、插值及 CUR 分解的随机算法实现
数值分析
2016-08-30 v3 数学软件
摘要
RSVDPACK 是一个用于计算矩阵低秩近似的函数库。该库包含计算标准(部分)分解的函数,如奇异值分解 (SVD),以及所谓的“结构保持”分解,如插值分解 (ID) 和 CUR 分解。ID 与 CUR 分解选取矩阵的行/列子集作为其行/列空间的基。此类分解保持矩阵的诸如稀疏性或非负性等性质,有助于数据解释,且在某些情形下比部分 SVD 需要更少的内存。该软件包实现了基于随机采样的高效计算算法,如 [N. Halko, P.G. Martinsson, J. Tropp, "Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions," SIAM Review, 53(2), 2011] 及后续论文中描述与分析的。本手稿提出了对基本算法的一些修改以提升性能与易用性。该库用 C 语言编写,支持多核 CPU 与 GPU 架构。
引用
@article{arxiv.1502.05366,
title = {RSVDPACK: An implementation of randomized algorithms for computing the singular value, interpolative, and CUR decompositions of matrices on multi-core and GPU architectures},
author = {Sergey Voronin and Per-Gunnar Martinsson},
journal= {arXiv preprint arXiv:1502.05366},
year = {2016}
}