NVIDIA cuDSS is the GPU-accelerated Direct Sparse Solver library for engineering and scientific computing. The official replacement for cuSOLVERSp — supporting single-GPU, multi-GPU, and multi-node execution.
The separation of analysis, factorization, and solve phases enables massive optimization when solving multiple related systems.
Direct sparse solvers are the computational backbone of simulation software across every engineering discipline.
cuDSS follows a clean three-step API: create handles, configure matrix descriptors, then call analyze → factor → solve.
cudssSolve(ANALYSIS) to compute reordering and symbolic factorization.cudssSolve(FACTORIZATION) to compute the numerical LU/Cholesky on GPU.cudssSolve(SOLVE) for triangular solve. Reuse factors for multiple right-hand sides.// Initialize cuDSS handle
cudssHandle_t handle;
cudssCreate(&handle);
// Create matrix descriptor (CSR format)
cudssMatrix_t A;
cudssMatrixCreateCsr(
&A, n, n, nnz,
rowOffsets, colIndices, values,
CUDA_R_64F, CUDSS_MTYPE_GENERAL,
CUDSS_MVIEW_FULL, CUDSS_BASE_ZERO
);
// Create RHS and solution vectors
cudssMatrix_t b, x;
cudssMatrixCreateDn(&b, n, 1, n, b_vals, CUDA_R_64F, CUDSS_LAYOUT_COL_MAJOR);
cudssMatrixCreateDn(&x, n, 1, n, x_vals, CUDA_R_64F, CUDSS_LAYOUT_COL_MAJOR);
// Three-phase solve: Analysis → Factor → Solve
cudssSolve(handle, CUDSS_PHASE_ANALYSIS, A, x, b);
cudssSolve(handle, CUDSS_PHASE_FACTORIZATION, A, x, b);
cudssSolve(handle, CUDSS_PHASE_SOLVE, A, x, b);
// Cleanup
cudssDestroy(handle);
Own the exact-match domain for NVIDIA's official Direct Sparse Solver — the backbone of GPU-accelerated HPC, CAE, and engineering simulation software.
Also listed on Afternic · Sedo · Dan.com