Requirements#

The list of required software to use the library includes:

  • CUDA Toolkit 12.6+ for the cuda12 package, and CUDA Toolkit 13.0+ for the cuda13 package

  • Supported CUDA compiler (C++17 required)

  • Supported host compiler (C++17 required)

  • (Optionally) CMake (version 3.18 or greater)

Dependencies:

  • commonDx (shipped with MathDx package)

  • CUTLASS (shipped with MathDx package)

Important

Because of CUDA LTO’s compatibility rules:

  • within a CUDA toolkit major version, applications compiled with LTO using an older minor version (e.g., 12.6) can run on a newer minor version (e.g., 12.8) and their corresponding drivers, and

  • not compatible across major versions, i.e., applications compiled with LTO using CUDA 12 cannot run on CUDA 13 and vice versa.

cuSolverDx library provides both cuda12 and cuda13 packages for users to choose from, supporting applications compiled using CUDA 12.6+ and CUDA 13.0+, respectively.

Note

We recommend always using the latest CUDA Toolkit and NVCC compiler, and GCC 9+.

Note

HPC SDK nvc++ is not yet a supported host compiler in cuSolverDx.

Note

cuSolverDx emits errors for unsupported versions of C++ standard. These errors could be silenced by defining CUSOLVERDX_IGNORE_DEPRECATED_DIALECT during compilation, but cuSolverDx is not guaranteed to compile and work correctly in such configurations.

Supported System Architecture#

  • x86_64

  • AArch64

Warning

Compiling cuSolverDx on Windows with MSVC or on certain ARM AArch64 architectures is experimental, ONLY supported when using NVRTC and nvJitLink as presented in the NVRTC Example.