Requirements#
The list of required software to use the library includes:
CUDA Toolkit 13.0+
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
Starting from cuSolverDx 0.4.0, cuSolverDx only supports CUDA Toolkit 13.0+.
For older versions of CUDA Toolkit, please use cuSolverDx 0.3.0, which provides both cuda12 and cuda13 packages for users to choose from, supporting applications compiled using CUDA 12.6+ and CUDA 13.0+, respectively.
Supported Compilers#
CUDA Compilers:
NVCC 13.0+ (CUDA Toolkit 13.0 or newer)
(Experimental support) NVRTC 13.0+ (CUDA Toolkit 13.0 or newer)
Host / C++ Compilers:
GCC 7+ (GCC 7 is deprecated)
Clang 9+ (only on Linux/WSL2)
Warning
Support for GCC 7 is deprecated and will be removed in a future release. Compiling with GCC 7 emits a warning, which can be silenced
by defining CUSOLVERDX_IGNORE_DEPRECATED_COMPILER during compilation.
Note
We recommend using GCC 10+ as the host compiler, and NVCC shipped with the latest CUDA Toolkit as the CUDA compiler.
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.