C++ | NVIDIA cuVS

C++ Installation

View as Markdown

Use this page when you need the NVIDIA cuVS C++ headers, libcuvs shared library, and native C++ APIs.

All NVIDIA cuVS routine implementations live in the C++ core. The C++ API links directly to libcuvs; the C API and all non-C++ language bindings also need libcuvs_c installed with libcuvs.

Install Pre-Compiled Packages

The easiest way to install the C++ API is through conda. Use miniforge for a minimal conda installation, and prefer mamba when available.

The libcuvs package installs the C++ headers, C headers, libcuvs, and libcuvs_c.

Tarball

Pre-built tarballs are available from developer.nvidia.com/cuvs-downloads. Tarball installs require NCCL, libopenmp, CUDA Toolkit runtime 12.2 or newer, and an Ampere architecture GPU or newer.

Download the tarball for your CPU architecture and CUDA version, then extract it:

$tar -xzvf libcuvs-linux-sbsa-26.02.00.189485_cuda12-archive.tar.xz -C /path/to/folder

Add the extracted library directory to your loader path:

$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/folder

Build From Source

Before building from source, review the shared C++ source-build prerequisites, including the recommended conda environment setup for build dependencies.

Build and install the native C and C++ libraries together:

$./build.sh libcuvs

This installs libcuvs.so, libcuvs_c.so, headers, and downloaded dependencies into $INSTALL_PREFIX by default. Pass -n to build without installing.

Uninstall the native libraries with:

$./build.sh libcuvs --uninstall

Disable multi-GPU features with:

$./build.sh libcuvs --no-mg

Build the C and C++ tests with:

$./build.sh libcuvs tests

Use CMake Directly

Use the root build.sh script for most builds. When you need finer CMake control, configure from the cpp directory:

$cd cpp
$mkdir build
$cd build
$cmake -D BUILD_TESTS=ON -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX ../
$make -j<parallel_level> install

Common CMake flags include: