Installation#

Install cuEST#

Prerequisites#

The cuEST library is compatible with CUDA Toolkits (CTKs) in the 12.x and 13.x series. While the library has been tested as far back as CUDA Toolkit 12.0 and driver version 535, we strongly recommend using more recent versions for optimal performance. There are highly significant performance gains available for modern compute capabilities that are only available through the CTK 13 builds.

Warning

If using a CUDA Toolkit from the 13 series, the version must be 13.0 update 2 (13.0.2) or newer.

C API from tarball#

When downloading the tarball installer, there are two subdirectories – cuda12 or cuda13 – corresponding to the CTK 12 or 13 compatibility, respectively; select the folder appropriate for your system’s configuration, keeping in mind that 13 should be used for optimal performance. When compiling code that uses cuEST, the include directory should be added to the compiler’s include path, and the cuest.h file should be included in any files using cuEST functionality. The lib directory should be provided to the linker during code compilation, and either the static or dynamic libcuest library should be linked. If dynamically linking, this lib folder should additionally be appended to the LD_LIBRARY_PATH variable to allow proper runtime detection.

The CUDA cuBLAS and cuSolver libraries must be linked by programs that link the cuEST library. A path to these libraries should also be placed in the LD_LIBRARY_PATH before running programs that call cuEST.

Note

The CTK 13 version should be used where possible, to extract maximum performance.

Python API#

A lightweight set of bindings around the C API, the cuEST Python API, is available. These bindings are designed to very closely mirror the C API and the user is responsible for acquiring and freeing resources explicitly. Some PEP-8 conforming pythonic wrappers to simplify the calling syntax will be available in a future release, but the current bindings provide access to all cuEST functionality. The Python API is available for CTKs 12 and 13 via pip:

pip install nvidia-cuest-cu12

or:

pip install nvidia-cuest-cu13

Python bindings can be installed directly into the interpreter’s environment, however we recommend using a virtual environment such as venv, Conda, Mamba, or virtualenv. Python versions 3.11, 3.12, and 3.13 are currently supported. When running cuEST from Python, the LD_LIBRARY_PATH should include the CTK library path (usually /usr/local/cuda/lib64) to ensure the CUDA dependencies can be properly resolved at runtime.

Note

The CTK 13 version should be used where possible, to extract maximum performance.

Tested Configurations#

cuEST has been tested in the following environments:

CUDA

12.0, 12.9, 13.0, 13.1

GPU model

A100, H100, H200, B200, RTX Pro 6000

Python

3.11, 3.12, 3.13

CPU architecture

x86_64, SBSA (aarch64)

Compute Capabilities

8.0, 8.6, 8.9, 9.0, 10.0, 12.0