CUSOLVER API support status (v2.1)

Updated at:
Copy as MD

This topic describes the support status of CUSOLVER APIs compared with cusolver 11.6.4.

  • All APIs benchmarked against Ampere are software-supported, and there are currently no PPU hardware limitations. Support for additional APIs will be added in future software versions based on priority.

  • Dense APIs are partially supported, but complex number types are not yet supported. The current API support rate is 39/96 (40.63%). Excluding mixed-precision APIs, which include many helper interfaces, the support rate increases to 39/61 (63.93%).

API

cusolver 11.6.4

PPU 2.1

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 AX = B for X using Cholesky decomposition.

cusolverDn<t>potrfBatched()

Yes

Yes

Performs batched Cholesky decomposition.

cusolverDn<t>potrsBatched()

Yes

Yes

Solves AX = B for X using batched Cholesky decomposition.

cusolverDn<t>getrf()

Yes

Yes

Performs LU decomposition of a matrix: PA = LU.

cusolverDn<t>getrs()

Yes

Yes

Solves AX = B for X using LU decomposition.

cusolverDnXgeqrf()

Yes

Yes

Performs QR decomposition using the Householder method. This is a 64-bit interface.

cusolverDn<t>geqrf()

Yes

Yes

Performs QR decomposition using the Householder method. This is a 32-bit interface.

cusolverDn<t>ormqr()

Yes

Yes

C = QC, which premultiplies C by Q (in Householder vector form).

cusolverDn<t>orgqr()

Yes

Yes

Householder to Q matrix

cusolverDnCreateGesvdjInfo

Yes

Yes

gesvdj helper function.

cusolverDnDestroyGesvdjInfo

Yes

Yes

gesvdj helper function.

cusolverDnXgesvdjSetTolerance

Yes

Yes

Sets the tolerance for gesvdj.

cusolverDnXgesvdjSetMaxSweeps

Yes

Yes

Sets the maximum number of sweeps for gesvdj.

cusolverDnXgesvdjSetSortEig

Yes

Yes

Sets whether to sort the singular values.

cusolverDnXgesvdjGetResidual

Yes

Yes

Returns the residuals of gesvdj.

cusolverDnXgesvdjGetSweeps

Yes

Yes

gesvdj helper function.

cusolverDn<t>gesvdj()

Yes

Yes

Performs singular value decomposition (SVD) based on the Jacobi rotation algorithm: A = U * Σ * VH.

cusolverDn<t>gesvdjBatched

Yes

Yes

Performs batched SVD.

cusolverDnXgesvd()

Yes

Yes

Performs SVD using QR iteration and Givens rotation. This is a 64-bit interface: A = UΣVH.

cusolverDn<t>potrf()

Yes

Yes

Performs Cholesky decomposition: A = LLT. This is a 32-bit interface.

cusolverDn<t>potrs()

Yes

Yes

Solves AX = B for X using Cholesky decomposition. This is a 32-bit interface.

cusolverDn<t>potri()

Yes

No

Computes the inverse of a matrix using Cholesky decomposition.

cusolverDnXgetrf()

Yes

Yes

Performs LU decomposition: PA = LU. This is a 64-bit interface.

cusolverDnXgetrs()

Yes

Yes

Solves AX = B for X using LU decomposition. This is a 64-bit interface.

cusolverDn<t1><t2>gesv()

Yes

No

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

cusolverDnIRSXgesv()

Yes

No

Solves AX = B for X using LU decomposition with mixed precision and combined parameters.

cusolverDn<t1><t2>gels()

Yes

No

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

cusolverDnIRSXgels()

Yes

No

Finds the least-squares solution for AX = B using QR decomposition with mixed precision and combined parameters.

cusolverDn<t>sytrf()

Yes

No

Performs Bunch-Kaufman decomposition: PAPT =LDLT.

cusolverDnXsytrs()

Yes

No

Solves for X using Bunch-Kaufman decomposition.

cusolverDn<t>sytri

Yes

No

cusolverDnXtrtri()

Yes

No

Computes the inverse of a tridiagonal matrix.

cusolverDn<t>gesvd()

Yes

Yes

Performs SVD using QR and Givens methods: A = UΣVH.

cusolverDnXgesvdp()

Yes

No

Performs SVD using QR and polar decomposition for faster performance: A = UΣVH.

cusolverDnXgesvdr()

Yes

No

Performs approximate SVD to compute the first K singular values: Ak≈U*Σ*VH.

cusolverDn<t>gesvdaStridedBatched()

Yes

No

Performs SVD for tall-and-skinny matrices: A = UΣVH.

cusolverDn<t>gebrd()

Yes

Yes

Performs bidiagonalization: QHAP = B.

cusolverDn<t>orgbr()

Yes

Yes

The `gebdr` function returns the Q and P matrices.

cusolverDn<t>sytrd()

Yes

Yes

Performs tridiagonalization: QH*A*Q = T.

cusolverDn<t>ormtr()

Yes

Yes

C = QC, which is the product of Q (in Householder vector form) and C.

cusolverDn<t>orgtr()

Yes

Yes

Generates the Q matrix from the output of sytrd.

cusolverDnXsyevd()

Yes

Yes

Performs eigenvalue decomposition using the divide-and-conquer method. This is a 64-bit interface: A*V = V*Λ.

cusolverDn<t>syevd()

Yes

Yes

Performs eigenvalue decomposition using the divide-and-conquer method: A*V = V*Λ.

cusolverDnXsyevdx()

Yes

No

Performs eigenvalue decomposition using the divide-and-conquer method with a specified range. This is a 64-bit interface: A*V = V*Λ.

cusolverDn<t>syevdx()

Yes

No

Performs eigenvalue decomposition using the divide-and-conquer method with a specified range: A*V = V*Λ.

cusolverDn<t>sygvd()

Yes

No

Performs eigenvalue decomposition for a matrix pair (A,B) using the divide-and-conquer method: A*V = B*V*Λ.

cusolverDn<t>sygvdx()

Yes

No

Performs eigenvalue decomposition for a matrix pair (A,B) using the divide-and-conquer method with a specified range: A*V = B*V*Λ.

cusolverDnCreateSyevjInfo

Yes

No

Helper function for syevj

cusolverDnDestroySyevjInfo

Yes

No

syevj helper function.

cusolverDnXsyevjSetTolerance

Yes

No

Sets the tolerance for syevj.

cusolverDnXsyevjSetMaxSweeps

Yes

No

Sets the maximum number of sweeps for syevj.

cusolverDnXsyevjSetSortEig

Yes

No

Sets whether to sort the eigenvalues.

cusolverDnXsyevjGetResidual

Yes

No

Returns the residuals of syevj.

cusolverDnXsyevjGetSweeps

Yes

No

Syevj helper function

cusolverDn<t>syevj()

Yes

No

Performs eigenvalue decomposition using the Jacobi method: A*V = V*Λ.

cusolverDn<t>syevjBatched()

Yes

No

Performs batched eigenvalue decomposition using the Jacobi method: A*V = V*Λ.

cusolverDn<t>sygvj()

Yes

No

Performs eigenvalue decomposition for a matrix pair (A,B) using the Jacobi method: A*V = B*V*Λ.

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 for all cuSolverDN functions.

cusolverDnGetDeterministicMode

Yes

No

Queries the deterministic mode that is set for the handle.

cusolverDnIRSParamsCreate

Yes

No

Helper function for the Iterative Refinement Solver (IRS).

cusolverDnIRSParamsDestroy

Yes

No

Helper function.

cusolverDnIRSParamsSetRefinementSolver

Yes

No

Refines the solving algorithm for specific interfaces, such as gesvd and gels.

cusolverDnIRSParamsSetSolverMainPrecision

Yes

No

Helper function to set the precision.

cusolverDnIRSParamsSetSolverLowestPrecision

Yes

No

Helper function to set the precision.

cusolverDnIRSParamsSetSolverPrecisions

Yes

No

Helper function to set the precision.

cusolverDnIRSParamsSetTol

Yes

No

Sets the tolerance.

cusolverDnIRSParamsSetTolInner

Yes

No

Sets the inner tolerance for a two-layer solver.

cusolverDnIRSParamsSetMaxIters

Yes

No

Sets the maximum number of iterations for IRS.

cusolverDnIRSParamsSetMaxItersInner

Yes

No

The maximum number of iterations for the inner solver.

cusolverDnIRSParamsGetMaxIters

Yes

No

Gets the maximum number of iterations.

cusolverDnIRSParamsEnableFallback

Yes

No

Allows backoff to the main precision if the lower precision does not meet the tolerance.

cusolverDnIRSParamsDisableFallback

Yes

No

Disables precision backoff.

cusolverDnIRSInfosDestroy

Yes

No

Helper function.

cusolverDnIRSInfosCreate

Yes

No

Helper function.

cusolverDnIRSInfosGetNiters

Yes

No

Gets the total number of iterations. A negative number indicates that convergence was not achieved.

cusolverDnIRSInfosGetOuterNiters

Yes

No

The number of outer iterations.

cusolverDnIRSInfosRequestResidual

Yes

No

Requests to store the residual norm during the iteration process.

cusolverDnIRSInfosGetResidualHistory

Yes

No

Gets the history of residual norms.

cusolverDnIRSInfosGetMaxIters

Yes

No

Gets the maximum number of iterations.

  • Multi-GPU APIs are not yet supported.

cusolverMgCreate

Yes

No

Helper function.

cusolverMgDestroy

Yes

No

Helper function.

cusolverMgDeviceSelect

Yes

No

Helper function.

cusolverMgCreateDeviceGrid

Yes

No

Divides the grid across multiple GPUs.

cusolverMgDestroyGrid

Yes

No

cusolverMgCreateMatrixDesc

Yes

No

Creates a matrix descriptor.

cusolverMgDestroyMatrixDesc

Yes

No

cusolverMgSyevd

Yes

No

Performs eigenvalue decomposition of a symmetric matrix using the QR divide-and-conquer method: A*V = V*Λ.

cusolverMgGetrf

Yes

No

LU decomposition

cusolverMgGetrs

Yes

No

Solves a system of linear equations.

cusolverMgPotrf

Yes

No

Cholesky decomposition

cusolverMgPotrs

Yes

No

Solves a system of symmetric positive-definite linear equations.

cusolverMgPotri

Yes

No

Computes the inverse of a symmetric positive-definite matrix.

  • Refactorization APIs are 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

Checks for a zero pivot and for boosting.

cusolverRfGetNumericProperties

Yes

No

cusolverRfGetNumericBoostReport

Yes

No

cusolverRfSetAlgs

Yes

No

Sets the algorithm used for 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

Refactorization related to 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

  • Sparse APIs are 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

Finds the least-squares solution.

cusolverSp<t>csreigvsi()

Yes

No

Computes eigenvalues.

cusolverSp<t>csreigs()

Yes

No

cusolverSpXcsrsymrcm()

Yes

No

Symmetric reverse Cuthill-McKee (SRCM) permutation algorithm.

cusolverSpXcsrsymmdq()

Yes

No

Symmetric minimum degree algorithm (SMDA).

cusolverSpXcsrsymamd()

Yes

No

Symmetric approximate minimum degree (SAMD) algorithm.

cusolverSpXcsrmetisnd()

Yes

No

METIS_NodeND wrapper.

cusolverSpXcsrzfd()

Yes

No

MC21 (zero-free diagonal) algorithm.

cusolverSpXcsrperm()

Yes

No

Performs permutation transformation: B = PAQT.

cusolverSp<t>csrlsvlu()

Yes

No

Sparse APIs 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 APIs 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 APIs 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