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)

  • (Optional) CMake (version 3.18 or greater)

Dependencies:

  • commonDx (shipped with the MathDx package)

  • CUTLASS (shipped with the MathDx package)

Important

CUDA’s LTO compatibility rules:

  • Compatibility 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

  • Incompatibility across CUDA toolkit major versions: Applications compiled with LTO using CUDA 12 cannot run on CUDA 13 and vice versa.

The nvCOMPDx 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 using the latest CUDA Toolkit and NVCC compiler, along with GCC 9+.

Note

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

Note

nvCOMPDx emits errors for unsupported versions of the C++ standard. These errors can be silenced by defining NVCOMPDX_IGNORE_DEPRECATED_DIALECT during compilation, but nvCOMPDx is not guaranteed to compile or work correctly in such configurations.

Supported System Architecture#

  • x86_64

  • AArch64

Warning

Compiling nvCOMPDx on Windows with MSVC and on certain ARM AArch64 architectures (sm_87, sm_103, and sm_121) is experimental, ONLY supported when using NVRTC and nvJitLink as presented in one of the examples.