CUSOLVER APIs: Support status (v1.7)

Updated at:
Copy as MD

cuSolver API support vs. cuSolver 11.6.4:

  • All Ampere APIs are supported in software, with no current PPU hardware limitations. Future software versions will include enhanced support based on priority.

  • The Dense API has partial support and does not currently support complex types. The current API support rate is 39/96 = 40.63%. Excluding mixed precision APIs, which contain numerous helper interfaces, the support rate is 39/61 = 63.93%.

API

cusolver 11.6.4

PPU 1.7

Description

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

Performs Cholesky decomposition: A = LLT.

cusolverDnXpotrs()

Yes

Yes

Solves for X in AX=B using Cholesky decomposition.

cusolverDn<t>potrfBatched()

Yes

Yes

Performs a batched Cholesky decomposition.

cusolverDn<t>potrsBatched()

Yes

Yes

Solves for X in AX=B using Cholesky decomposition (batched).

cusolverDn<t>getrf()

Yes

Yes

Performs LU decomposition of a matrix: PA=LU.

cusolverDn<t>getrs()

Yes

Yes

Solves for X in AX=B using LU decomposition.

cusolverDnXgeqrf()

Yes

Yes

Performs QR decomposition using Householder reflectors (64-bit API): A=QR.

cusolverDn<t>geqrf()

Yes

Yes

Performs QR decomposition using Householder reflectors (32-bit API): A=QR.

cusolverDn<t>ormqr()

Yes

Yes

Multiplies a matrix C by the orthogonal matrix Q (represented by Householder vectors): C=QC.

cusolverDn<t>orgqr()

Yes

Yes

Generates the orthogonal matrix Q from Householder vectors.

cusolverDnCreateGesvdjInfo

Yes

Yes

gesvdj helper function.

cusolverDnDestroyGesvdjInfo

Yes

Yes

gesvdj helper function.

cusolverDnXgesvdjSetTolerance

Yes

Yes

Sets the tolerance for the gesvdj algorithm.

cusolverDnXgesvdjSetMaxSweeps

Yes

Yes

Sets the maximum number of sweeps for the gesvdj algorithm.

cusolverDnXgesvdjSetSortEig

Yes

Yes

Configures whether to sort the singular values.

cusolverDnXgesvdjGetResidual

Yes

Yes

Returns the residual of the gesvdj computation.

cusolverDnXgesvdjGetSweeps

Yes

Yes

gesvdj helper function.

cusolverDn<t>gesvdj()

Yes

Yes

Performs SVD decomposition using a Jacobi-rotation-based algorithm: A=UΣVH.

cusolverDn<t>gesvdjBatched

Yes

Yes

Performs a batched SVD decomposition.

cusolverDnXgesvd()

Yes

Yes

Performs SVD decomposition using QR iteration and Givens rotation (64-bit API): A=UΣVH.

cusolverDn<t>potrf()

Yes

Yes

Performs Cholesky decomposition (32-bit API): A=LLT.

cusolverDn<t>potrs()

Yes

Yes

Solves for X in AX=B using Cholesky decomposition (32-bit API).

cusolverDn<t>potri()

Yes

No

Computes the inverse of a matrix using its Cholesky decomposition.

cusolverDnXgetrf()

Yes

Yes

Performs LU decomposition (64-bit API): PA=LU.

cusolverDnXgetrs()

Yes

Yes

Solves for X in AX=B using LU decomposition (64-bit API).

cusolverDn<t1><t2>gesv()

Yes

No

Solves for X in AX=B using LU decomposition with mixed precision.

cusolverDnIRSXgesv()

Yes

No

Solves for X in AX=B using a mixed-precision iterative refinement solver.

cusolverDn<t1><t2>gels()

Yes

No

Finds the mixed-precision least-squares solution to AX=B using QR decomposition.

cusolverDnIRSXgels()

Yes

No

Finds the least-squares solution to AX=B using a mixed-precision iterative refinement solver with QR decomposition.

cusolverDn<t>sytrf()

Yes

No

Performs Bunch-Kaufman decomposition: PAPT =LDLT.

cusolverDnXsytrs()

Yes

No

Solves a system of linear equations using a Bunch-Kaufman factorization.

cusolverDn<t>sytri

Yes

No

cusolverDnXtrtri()

Yes

No

Computes the inverse of a triangular matrix.

cusolverDn<t>gesvd()

Yes

Yes

Performs SVD decomposition using QR iteration and Givens rotation: A=UΣVH.

cusolverDnXgesvdp()

Yes

No

A faster SVD decomposition using QR and polar decompositions: A=UΣVH.

cusolverDnXgesvdr()

Yes

No

Computes a rank-k SVD approximation: A ≈ UkΣkVHk.

cusolverDn<t>gesvdaStridedBatched()

Yes

No

Performs SVD decomposition for batched, strided, tall-and-skinny matrices: A=UΣVH.

cusolverDn<t>gebrd()

Yes

Yes

Reduces a general matrix to bidiagonal form: QHAP=B.

cusolverDn<t>orgbr()

Yes

Yes

Generates the orthogonal matrices Q and P from the bidiagonal reduction performed by gebrd.

cusolverDn<t>sytrd()

Yes

Yes

Reduces a symmetric matrix to tridiagonal form: QHAQ=T.

cusolverDn<t>ormtr()

Yes

Yes

Multiplies a matrix C by the orthogonal matrix Q (represented by Householder vectors from a tridiagonal reduction): C=QC.

cusolverDn<t>orgtr()

Yes

Yes

Generates the orthogonal matrix Q from the tridiagonal reduction performed by sytrd.

cusolverDnXsyevd()

Yes

Yes

Computes all eigenvalues and eigenvectors of a symmetric matrix using a divide-and-conquer algorithm (64-bit API): AV=VΛ.

cusolverDn<t>syevd()

Yes

Yes

Computes all eigenvalues and eigenvectors of a symmetric matrix using a divide-and-conquer algorithm.

cusolverDnXsyevdx()

Yes

No

Computes a subset of eigenvalues and eigenvectors in a specified range using a divide-and-conquer algorithm (64-bit API).

cusolverDn<t>syevdx()

Yes

No

Computes a subset of eigenvalues and eigenvectors in a specified range using a divide-and-conquer algorithm.

cusolverDn<t>sygvd()

Yes

No

Solves the generalized symmetric-definite eigenvalue problem for a matrix pair (A,B) using a divide-and-conquer algorithm: AV=BV*Λ.

cusolverDn<t>sygvdx()

Yes

No

Solves the generalized symmetric-definite eigenvalue problem for a subset of eigenvalues in a specified range using a divide-and-conquer algorithm.

cusolverDnCreateSyevjInfo

Yes

No

syevj helper function.

cusolverDnDestroySyevjInfo

Yes

No

syevj helper function.

cusolverDnXsyevjSetTolerance

Yes

No

Sets the tolerance for the syevj algorithm.

cusolverDnXsyevjSetMaxSweeps

Yes

No

Sets the maximum number of sweeps for the syevj algorithm.

cusolverDnXsyevjSetSortEig

Yes

No

Configures whether to sort the eigenvalues.

cusolverDnXsyevjGetResidual

Yes

No

Returns the residual of the syevj computation.

cusolverDnXsyevjGetSweeps

Yes

No

syevj helper function.

cusolverDn<t>syevj()

Yes

No

Computes all eigenvalues and eigenvectors of a symmetric matrix using the Jacobi method: AV=VΛ.

cusolverDn<t>syevjBatched()

Yes

No

Computes all eigenvalues and eigenvectors for a batch of symmetric matrices using the Jacobi method.

cusolverDn<t>sygvj()

Yes

No

Solves the generalized symmetric-definite eigenvalue problem for a matrix pair (A,B) using the Jacobi method.

cusolverDnXlarft

Yes

No

cusolverDn<t>lauum

Yes

No

cusolverDn<t>laswp

Yes

No

cusolverDnLoggerSetCallback

Yes

No

Logging function.

cusolverDnLoggerSetFile

Yes

No

Logging function.

cusolverDnLoggerOpenFile

Yes

No

Logging function.

cusolverDnLoggerSetLevel

Yes

No

Logging function.

cusolverDnLoggerSetMask

Yes

No

Logging function.

cusolverDnLoggerForceDisable

Yes

No

Logging function.

cusolverDnSetDeterministicMode

Yes

No

Sets the deterministic mode of all cuSolverDN functions.

cusolverDnGetDeterministicMode

Yes

No

Queries the deterministic mode for the current handle.

cusolverDnIRSParamsCreate

Yes

No

Helper function for the Iterative Refinement Solver (IRS).

cusolverDnIRSParamsDestroy

Yes

No

Helper function.

cusolverDnIRSParamsSetRefinementSolver

Yes

No

Sets the refinement solver for interfaces like gesvd and gels.

cusolverDnIRSParamsSetSolverMainPrecision

Yes

No

Sets the main precision for the solver.

cusolverDnIRSParamsSetSolverLowestPrecision

Yes

No

Sets the lowest precision for the solver.

cusolverDnIRSParamsSetSolverPrecisions

Yes

No

Sets the main and lowest precisions for the solver.

cusolverDnIRSParamsSetTol

Yes

No

Sets the convergence tolerance.

cusolverDnIRSParamsSetTolInner

Yes

No

Sets the convergence tolerance for the inner solver in a two-level scheme.

cusolverDnIRSParamsSetMaxIters

Yes

No

Sets the maximum number of iterations for the IRS.

cusolverDnIRSParamsSetMaxItersInner

Yes

No

Sets the maximum number of iterations for the inner solver.

cusolverDnIRSParamsGetMaxIters

Yes

No

Gets the maximum number of iterations.

cusolverDnIRSParamsEnableFallback

Yes

No

Enables fallback to the main precision if the lower precision fails to converge.

cusolverDnIRSParamsDisableFallback

Yes

No

Disables fallback to the main precision.

cusolverDnIRSInfosDestroy

Yes

No

Helper function.

cusolverDnIRSInfosCreate

Yes

No

Helper function.

cusolverDnIRSInfosGetNiters

Yes

No

Gets the total number of iterations performed. A negative value indicates non-convergence.

cusolverDnIRSInfosGetOuterNiters

Yes

No

Gets the number of outer iterations.

cusolverDnIRSInfosRequestResidual

Yes

No

Enables the recording of residual history.

cusolverDnIRSInfosGetResidualHistory

Yes

No

Gets the recorded history of residual norms.

cusolverDnIRSInfosGetMaxIters

Yes

No

Gets the maximum number of iterations.

  • The MultiGPU API is not currently supported.

cusolverMgCreate

Yes

No

helper function

cusolverMgDestroy

Yes

No

helper function

cusolverMgDeviceSelect

Yes

No

helper function

cusolverMgCreateDeviceGrid

Yes

No

Creates a multi-device grid.

cusolverMgDestroyGrid

Yes

No

Destroys a multi-device grid.

cusolverMgCreateMatrixDesc

Yes

No

Creates a matrix descriptor.

cusolverMgDestroyMatrixDesc

Yes

No

Destroys a matrix descriptor.

cusolverMgSyevd

Yes

No

Computes the eigenvalue decomposition of a symmetric matrix (A*V = V*Λ) using a QR-based divide and conquer algorithm.

cusolverMgGetrf

Yes

No

Performs LU decomposition.

cusolverMgGetrs

Yes

No

Solves a system of linear equations.

cusolverMgPotrf

Yes

No

Performs Cholesky decomposition.

cusolverMgPotrs

Yes

No

Solves a symmetric positive-definite system of linear equations.

cusolverMgPotri

Yes

No

Computes the inverse of a symmetric positive-definite matrix.

  • The refactorization API is not yet supported.

cusolverRfCreate

Yes

No

helper function

cusolverRfDestroy

Yes

No

helper function

cusolverRfGetMatrixFormat

Yes

No

helper function

cusolverRfSetMatrixFormat

Yes

No

helper function

cusolverRfSetNumericProperties

Yes

No

Enables zero-pivot checking and numerical boosting

cusolverRfGetNumericProperties

Yes

No

cusolverRfGetNumericBoostReport

Yes

No

cusolverRfSetAlgs

Yes

No

Sets the refactorization algorithm

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

Refactorization, LU decomposition, and solving

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

  • The sparse API is not yet supported.

cusolverSpCreate

Yes

No

helper function

cusolverSpDestroy

Yes

No

helper function

cusolverSpSetStream

Yes

No

helper function

cusolverSpGetStream

Yes

No

helper function

cusolverSpXcsrissymHost

Yes

No

Checks if the input matrix is symmetric (host).

cusolverSp<t>csrlsqvqr()

Yes

No

Least squares solution.

cusolverSp<t>csreigvsi()

Yes

No

Eigenvalue calculation.

cusolverSp<t>csreigs()

Yes

No

cusolverSpXcsrsymrcm()

Yes

No

SRCM permutation algorithm.

cusolverSpXcsrsymmdq()

Yes

No

SMDA algorithm.

cusolverSpXcsrsymamd()

Yes

No

SAMD algorithm.

cusolverSpXcsrmetisnd()

Yes

No

METIS_NodeND wrapper.

cusolverSpXcsrzfd()

Yes

No

MC21 (zero-free diagonal) algorithm.

cusolverSpXcsrperm()

Yes

No

Permutation transformation: B = PAQT

cusolverSp<t>csrlsvlu()

Yes

No

Sparse API for LU decomposition and solving.

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

Sparse API for QR decomposition and solving.

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

Sparse API for Cholesky decomposition and solving.

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