CUSOLVER APIs: Support status (v1.7)
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 |
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. |
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 |