Thrust is the C++ parallel algorithms library which inspired the introduction of parallel algorithms to the C++ Standard Library. Thrust's high-level interface greatly enhances programmer productivity while enabling performance portability between GPUs and multicore CPUs. It builds on top of established parallel programming frameworks (such as CUDA, TBB, and OpenMP). It also provides a number of general-purpose facilities similar to those found in the C++ Standard Library. The NVIDIA C++ Standard Library is an open-source project; it is available on GitHub and included in the NVIDIA HPC SDK and CUDA Toolkit. If you have one of those SDKs installed, no additional installation or compiler flags are needed to use libcu++. Thrust is a header-only library; there is no need to build or install the project unless you want to run the Thrust unit tests.
Features
- Thrust is best learned through examples
- Thrust is a header-only library
- The CUDA Toolkit provides a recent release of the Thrust source code
- For CMake-based projects, we provide a CMake package for use with find_package
- Thrust uses the CMake build system to build unit tests
- By default, a serial CPP host system, CUDA accelerated device system, and C++14 standard are used