All requirements are applicable to the
main branch on GitHub. For details on specific releases, please see the changelog.
To use the NVIDIA C++ Standard Library, you must follow meet the following requirements.
libcu++ was first released in NVHPC 20.3 and CUDA 10.2. Some features are only available in newer releases. Please see the Standard API section, Extended API section, and [release section] to find which features require newer releases.
Releases of libcu++ are only tested against the latest releases of NVHPC and CUDA. It may be possible to use a newer version of libcu++ with an older NVHPC or CUDA installation by using a libcu++ release from GitHub, but please be aware this is not officially supported.
The NVIDIA C++ Standard Library supports the following C++ dialects:
A number of features have been backported to earlier standards. Please see the [API section] for more details.
When used with NVCC, the NVIDIA C++ Standard Library supports the following host compilers:
- MSVC 2017 and 2019.
- GCC 5, 6, 7, 8, 9, and 10.
- Clang 7, 8, 9, and 10.
- ICPC latest.
- NVHPC 20.9 and 20.11.
The NVIDIA C++ Standard Library fully supports the following NVIDIA device architectures:
- Volta: SM 70 and 72.
- Turing: SM 75.
- Ampere: SM 80.
The following NVIDIA device architectures are partially supported:
- Maxwell: SM 50, 52 and 53.
- Synchronization facilities are supported.
- Pascall: SM 60, 61 and 62.
- Blocking synchronization facilities (e.g. most of the synchronization library) are not supported. Please see the synchronization library section for details.
The NVIDIA C++ Standard Library supports the following host architectures:
The NVIDIA C++ Standard Library supports the following host operating systems:
To build and test libcu++ yourself, you will need the following in addition to the usage requirements: