https://docs.nvidia.com/cuda/archive/9.1/cusolver/index.html
cuSlover是基于cuBLAS和cuSPARES库的一个对矩阵操作的库,包括矩阵分解和求解方程等内容,它里面包含了三个独立的库文件,包括cuSolverDN,cuSolverSP,cuSolverSP
cuSolverDN:可以做矩阵分解(LU,QR,SVD,LDLT)和一些其它的轸分组工作
cuSolverSP:为稀疏矩阵提供一个新的工具集,用于解决稀疏线性系统,包括QR分解,由于不是所有的稀疏模式都有良好的并行分解模式,所以cuSolverSP还提供了一些CPU执行的方法
cuSolverRF:一个稀疏的重新分解包,表现良好
- 使用方式
/*
cusolverDN
<t>:S,D,C,Z,X 分别对应为float,double,cuComplex,cuDoubleComplex
<operation>:potrf,getrf,geqrf,sytrf分别对应Cholesky分解,LU,QR,Bunch-Kaufam分解
*/
cusolverDn<t><operation>
/*
cusolverSP
[Host]:表示host path,[]表示GPU path
<t>:S,D,C,Z,X分别表示float,double,cuComplex,cuDoubleComplex和派生类
<matrix data format>:表示以row foramat压缩的稀疏矩阵csr
<operation>:可以是ls,lsq,eig,eigs,分别表示线性求解,最小二乘求解,特征值求解和number of eigenvalues in a box
<output matrix data format>可以是v或者m,分别表示一个vector或者matrix
*/
cusolverSp[Host]<t>[<matrix data format>]<operation>[<output matrix data format>]<based on>
/*
cuSolverRF
只用于double类型
*/
cusolverRf_<operation>_[[Host]](...)
注意uSolver对于openmp的支持仅限于Linx platform