Requirements#

All requirements are applicable to the main branch on GitHub. For details on specific releases, please see the [CHANGELOG.md].

Usage Requirements#

To use the NVIDIA C++ Standard Library, you must meet the following requirements.

System Software#

Thrust and CUB require either the NVIDIA HPC SDK or the CUDA Toolkit.

Releases of Thrust and CUB are only tested against the latest releases of NVHPC and CUDA. It may be possible to use newer version of Thrust and CUB with an older NVHPC or CUDA installation by using a Thrust and CUB release from GitHub, but please be aware this is not officially supported.

C++ Dialects#

Thrust and CUB support the following C++ dialects:

  • C++11 (deprecated)

  • C++14

  • C++17

Compilers#

Thrust and CUB support the following compilers when used in conjunction with NVCC:

  • NVCC (latest version)

  • NVC++ (latest version)

  • GCC 5+

  • Clang 7+

  • MSVC 2019+ (19.20/16.0/14.20)

Unsupported versions may emit deprecation warnings, which can be silenced by defining THRUST_IGNORE_DEPRECATED_COMPILER during compilation.

Device Architectures#

Thrust and CUB support all NVIDIA device architectures since SM 35.

Host Architectures#

Thrust and CUB support the following host architectures:

  • aarch64.

  • x86-64.

  • ppc64le.

Host Operating Systems#

Thrust and CUB support the following host operating systems:

  • Linux.

  • Windows.

Build and Test Requirements#

To build and test Thrust and CUB yourself, you will need the following in addition to the above requirements: