CUSOLVER APIs支持状态(v1.5)

更新时间:
复制为 MD 格式

对比cusolver 11.6.4,cusolver APIs支持状况如下表:

  • 对标Ampere所有API都是软件可支持的,目前无PPU硬件限制的因素;后续软件版本将根据优先级逐步完善。

  • Dense API部分已支持,暂不支持复数类型。目前API支持率39/96 = 40.63%,去除辅助接口较多的混合精度API后支持率39/61 = 63.93%。

api

cusolver 11.6.4

PPU 1.5

功能说明

cusolverGetProperty

Yes

Yes

helper function

cusolverDnCreate

Yes

Yes

helper function

cusolverDnDestroy

Yes

Yes

helper function

cusolverDnSetStream

Yes

Yes

helper function

cusolverDnGetStream

Yes

Yes

helper function

cusolverDnCreateParams

Yes

Yes

helper function

cusolverDnDestroyParams

Yes

Yes

helper function

cusolverDnXpotrf()

Yes

Yes

A=LLT , cholesky 分解。

cusolverDnXpotrs()

Yes

Yes

AX=B,cholesky求解X

cusolverDn<t>potrfBatched()

Yes

Yes

cholesky分解 batched

cusolverDn<t>potrsBatched()

Yes

Yes

AX=B,cholesky求解X batched形式

cusolverDn<t>getrf()

Yes

Yes

PA=LU,矩阵的LU分解

cusolverDn<t>getrs()

Yes

Yes

AX=B,LU 分解求解X

cusolverDnXgeqrf()

Yes

Yes

A=QR,QR分解 Householder 64bit接口

cusolverDn<t>geqrf()

Yes

Yes

A=QR,QR分解 Householder 32bit接口

cusolverDn<t>ormqr()

Yes

Yes

C=QC,Q(householder向量形式) 乘 C

cusolverDn<t>orgqr()

Yes

Yes

Householder -> Q矩阵

cusolverDnCreateGesvdjInfo

Yes

Yes

gesvdj helper function

cusolverDnDestroyGesvdjInfo

Yes

Yes

gesvdj helper function

cusolverDnXgesvdjSetTolerance

Yes

Yes

配置gesvdj容差

cusolverDnXgesvdjSetMaxSweeps

Yes

Yes

配置gesvdj最大sweep次数

cusolverDnXgesvdjSetSortEig

Yes

Yes

配置是否对奇异值排序

cusolverDnXgesvdjGetResidual

Yes

Yes

返回gesvdj的误差

cusolverDnXgesvdjGetSweeps

Yes

Yes

gesvdj helper function

cusolverDn<t>gesvdj()

Yes

Yes

A=U*Σ*VH基于Jacobi旋转的SVD分解算法

cusolverDn<t>gesvdjBatched

Yes

Yes

SVD分解 batched形式

cusolverDnXgesvd()

Yes

Yes

A=UΣVH QR迭代,Givens变换 SVD分解算法 64 bit

cusolverDn<t>potrf()

Yes

Yes

A=LLT ,cholesky 分解。 32bit接口

cusolverDn<t>potrs()

Yes

Yes

AX=B,cholesky求解X。 32bit接口

cusolverDn<t>potri()

Yes

No

使用cholesky分解求逆

cusolverDnXgetrf()

Yes

Yes

PA=LU,LU分解 64bit接口

cusolverDnXgetrs()

Yes

Yes

AX=B,LU分解求X 64bit接口

cusolverDn<t1><t2>gesv()

Yes

No

AX=B,LU分解求X 混合精度

cusolverDnIRSXgesv()

Yes

No

AX=B,LU分解求X 混合精度,参数组合

cusolverDn<t1><t2>gels()

Yes

No

AX=B,QR分解,最小二乘解,支持混合精度

cusolverDnIRSXgels()

Yes

No

AX=B,QR分解,最小二乘解,支持混合精度,参数组合

cusolverDn<t>sytrf()

Yes

No

PAPT =LDLT Bunch-Kaufman分解

cusolverDnXsytrs()

Yes

No

Bunch-Kaufman分解 解X

cusolverDn<t>sytri

Yes

No

cusolverDnXtrtri()

Yes

No

计算三对角矩阵的逆

cusolverDn<t>gesvd()

Yes

Yes

A=UΣVH SVD分解 QR Givens

cusolverDnXgesvdp()

Yes

No

A=UΣVH SVD分解QR & polar,速度更快

cusolverDnXgesvdr()

Yes

No

Ak≈U*Σ*VH 近似计算前K个奇异值的SVD分解

cusolverDn<t>gesvdaStridedBatched()

Yes

No

A=UΣVH tall-skinny矩阵 SVD分解

cusolverDn<t>gebrd()

Yes

Yes

QHAP=B 二对角化

cusolverDn<t>orgbr()

Yes

Yes

gebdr --> Q, P矩阵

cusolverDn<t>sytrd()

Yes

Yes

QH*A*Q=T 三对角化

cusolverDn<t>ormtr()

Yes

Yes

C=QC,Q(householder向量形式) 乘 C

cusolverDn<t>orgtr()

Yes

Yes

sytrd -->Q矩阵

cusolverDnXsyevd()

Yes

Yes

A*V=V*Λ ,特征值分解 分治法 64bit

cusolverDn<t>syevd()

Yes

Yes

A*V=V*Λ ,特征值分解 分治法

cusolverDnXsyevdx()

Yes

No

A*V=V*Λ ,特征值分解 分治法 64bit 范围设定

cusolverDn<t>syevdx()

Yes

No

A*V=V*Λ, 特征值分解 分治法 范围设定

cusolverDn<t>sygvd()

Yes

No

A*V=B*V*Λ 矩阵对(A,B)特征值分解 分治法

cusolverDn<t>sygvdx()

Yes

No

A*V=B*V*Λ 矩阵对(A,B)特征值分解 分治法 范围设定

cusolverDnCreateSyevjInfo

Yes

No

syevj helper function

cusolverDnDestroySyevjInfo

Yes

No

syevj helper function

cusolverDnXsyevjSetTolerance

Yes

No

配置syevj容差

cusolverDnXsyevjSetMaxSweeps

Yes

No

配置syevj最大sweep次数

cusolverDnXsyevjSetSortEig

Yes

No

配置是否对特征值排序

cusolverDnXsyevjGetResidual

Yes

No

返回syevj的误差

cusolverDnXsyevjGetSweeps

Yes

No

syevj helper function

cusolverDn<t>syevj()

Yes

No

A*V=V*Λ 特征值分解 Jacobi方法

cusolverDn<t>syevjBatched()

Yes

No

A*V=V*Λ 特征值分解 Jacobi方法 batched

cusolverDn<t>sygvj()

Yes

No

A*V=B*V*Λ 矩阵对(A,B)特征值分解 Jacobi形式

cusolverDnXlarft

Yes

No

cusolverDn<t>lauum

Yes

No

cusolverDn<t>laswp

Yes

No

cusolverDnLoggerSetCallback

Yes

No

log function

cusolverDnLoggerSetFile

Yes

No

log function

cusolverDnLoggerOpenFile

Yes

No

log function

cusolverDnLoggerSetLevel

Yes

No

log function

cusolverDnLoggerSetMask

Yes

No

log function

cusolverDnLoggerForceDisable

Yes

No

log function

cusolverDnSetDeterministicMode

Yes

No

sets the deterministic mode of all cuSolverDN functions

cusolverDnGetDeterministicMode

Yes

No

queries the deterministic mode which is set for handle

cusolverDnIRSParamsCreate

Yes

No

helper function Iterative Refinement Solver (IRS)

cusolverDnIRSParamsDestroy

Yes

No

helper function

cusolverDnIRSParamsSetRefinementSolver

Yes

No

细化某些接口的求解算法(gesvd, gels)

cusolverDnIRSParamsSetSolverMainPrecision

Yes

No

helper function 设置精度

cusolverDnIRSParamsSetSolverLowestPrecision

Yes

No

helper function 设置精度

cusolverDnIRSParamsSetSolverPrecisions

Yes

No

helper function 设置精度

cusolverDnIRSParamsSetTol

Yes

No

设置容差

cusolverDnIRSParamsSetTolInner

Yes

No

设置两层求解器的内层容差

cusolverDnIRSParamsSetMaxIters

Yes

No

设置IRS最大迭代次数

cusolverDnIRSParamsSetMaxItersInner

Yes

No

内层求解器的最大迭代次数

cusolverDnIRSParamsGetMaxIters

Yes

No

获取最大迭代次数

cusolverDnIRSParamsEnableFallback

Yes

No

低精度无法满足容差时允许回退到主精度

cusolverDnIRSParamsDisableFallback

Yes

No

不允许回退精度

cusolverDnIRSInfosDestroy

Yes

No

helper function

cusolverDnIRSInfosCreate

Yes

No

helper function

cusolverDnIRSInfosGetNiters

Yes

No

获取总迭代次数,负数表示未收敛

cusolverDnIRSInfosGetOuterNiters

Yes

No

外部迭代次数

cusolverDnIRSInfosRequestResidual

Yes

No

需要存储迭代过程中残差范数

cusolverDnIRSInfosGetResidualHistory

Yes

No

获取历史残差范数

cusolverDnIRSInfosGetMaxIters

Yes

No

获取最大迭代次数

  • MultiGPU API暂未支持

cusolverMgCreate

Yes

No

helper function

cusolverMgDestroy

Yes

No

helper function

cusolverMgDeviceSelect

Yes

No

helper function

cusolverMgCreateDeviceGrid

Yes

No

多卡分grid

cusolverMgDestroyGrid

Yes

No

cusolverMgCreateMatrixDesc

Yes

No

创建矩阵描述符

cusolverMgDestroyMatrixDesc

Yes

No

cusolverMgSyevd

Yes

No

A*V=V*Λ 对称矩阵的特征值分解 QR 分治法 divide and conquer

cusolverMgGetrf

Yes

No

LU分解

cusolverMgGetrs

Yes

No

线性方程组求解

cusolverMgPotrf

Yes

No

cholesky分解

cusolverMgPotrs

Yes

No

对称正定线性方程组求解

cusolverMgPotri

Yes

No

对称正定矩阵求逆

  • Refactorization API暂未支持

cusolverRfCreate

Yes

No

helper function

cusolverRfDestroy

Yes

No

helper function

cusolverRfGetMatrixFormat

Yes

No

helper function

cusolverRfSetMatrixFormat

Yes

No

helper function

cusolverRfSetNumericProperties

Yes

No

checking for ‘’zero’’ pivot and for boosting

cusolverRfGetNumericProperties

Yes

No

cusolverRfGetNumericBoostReport

Yes

No

cusolverRfSetAlgs

Yes

No

sets the algorithm used for the refactorization

cusolverRfGetAlgs

Yes

No

cusolverRfGetResetValuesFastMode

Yes

No

helper function

cusolverRfSetResetValuesFastMode

Yes

No

helper function

cusolverRfSetupHost

Yes

No

helper function

cusolverRfSetupDevice

Yes

No

helper function

cusolverRfResetValues

Yes

No

helper function

cusolverRfAnalyze

Yes

No

LU分解/求解相关Refactorization

cusolverRfRefactor

Yes

No

cusolverRfAccessBundledFactorsDevice

Yes

No

cusolverRfExtractBundledFactorsHost

Yes

No

cusolverRfExtractSplitFactorsHost

Yes

No

cusolverRfSolve

Yes

No

cusolverRfBatchSetupHost

Yes

No

cusolverRfBatchResetValues

Yes

No

cusolverRfBatchAnalyze

Yes

No

cusolverRfBatchRefactor

Yes

No

cusolverRfBatchSolve

Yes

No

cusolverRfBatchZeroPivot

Yes

No

  • Sparse API暂未支持

cusolverSpCreate

Yes

No

helper function

cusolverSpDestroy

Yes

No

helper function

cusolverSpSetStream

Yes

No

helper function

cusolverSpGetStream

Yes

No

helper function

cusolverSpXcsrissymHost

Yes

No

判断输入矩阵是否是对称矩阵(host)

cusolverSp<t>csrlsqvqr()

Yes

No

最小二乘求解

cusolverSp<t>csreigvsi()

Yes

No

特征值计算

cusolverSp<t>csreigs()

Yes

No

cusolverSpXcsrsymrcm()

Yes

No

SRCM排列算法

cusolverSpXcsrsymmdq()

Yes

No

SMDA算法

cusolverSpXcsrsymamd()

Yes

No

SAMD算法

cusolverSpXcsrmetisnd()

Yes

No

METIS_NodeND wrapper

cusolverSpXcsrzfd()

Yes

No

MC21(对角线zero-free)算法

cusolverSpXcsrperm()

Yes

No

排列变换B=PAQT

cusolverSp<t>csrlsvlu()

Yes

No

LU分解/求解Sparse API

cusolverSpCreateCsrluInfoHost

Yes

No

cusolverSpDestroyCsrluInfoHost

Yes

No

cusolverSpXcsrluAnalysisHost

Yes

No

cusolverSp<t>csrluBufferInfoHost

Yes

No

cusolverSp<t>csrluFactorHost

Yes

No

cusolverSp<t>csrluZeroPivotHost

Yes

No

cusolverSp<t>csrluSolveHost

Yes

No

cusolverSpXcsrluNnzHost

Yes

No

cusolverSp<t>csrluExtractHost

Yes

No

cusolverSp<t>csrlsvqr()

Yes

No

QR分解/求解Sparse API

cusolverSpXcsrqrBatched()

Yes

No

cusolverSp<t>csrqrsvBatched

Yes

No

cusolverSpCreateCsrqrInfoHost

Yes

No

cusolverSpDestroyCsrqrInfoHost

Yes

No

cusolverSpXcsrqrAnalysisHost

Yes

No

cusolverSp<t>csrqrBufferInfoHost

Yes

No

cusolverSp<t>csrqrSetupHost

Yes

No

cusolverSp<t>csrqrFactorHost

Yes

No

cusolverSp<t>csrqrZeroPivotHost

Yes

No

cusolverSp<t>csrqrSolveHost

Yes

No

cusolverSpXcsrqrAnalysis

Yes

No

cusolverSp<t>csrqrBufferInfo

Yes

No

cusolverSp<t>csrqrSetup

Yes

No

cusolverSp<t>csrqrFactor

Yes

No

cusolverSp<t>csrqrZeroPivot

Yes

No

cusolverSp<t>csrqrSolve

Yes

No

cusolverSp<t>csrlsvchol()

Yes

No

cholesky分解/求解sparse API

cusolverSpCreateCsrcholInfoHost

Yes

No

cusolverSpDestroyCsrcholInfoHost

Yes

No

cusolverSpXcsrcholAnalysisHost

Yes

No

cusolverSp<t>csrcholBufferInfoHost

Yes

No

cusolverSp<t>csrcholFactorHost

Yes

No

cusolverSp<t>csrcholZeroPivotHost

Yes

No

cusolverSp<t>csrcholSolveHost

Yes

No

cusolverSpCreateCsrcholInfo

Yes

No

cusolverSpDestroyCsrcholInfo

Yes

No

cusolverSpXcsrcholAnalysis

Yes

No

cusolverSp<t>csrcholBufferInfo

Yes

No

cusolverSp<t>csrcholFactor

Yes

No

cusolverSp<t>csrcholZeroPivot

Yes

No

cusolverSp<t>csrcholSolve

Yes

No

cusolverSp<t>csrcholDiag

Yes

No