[ARCHIVED] The C++ parallel algorithms library. See https://github.com/NVIDIA/cccl
Thrust 1.9.10-1 is the minor release accompanying the NVIDIA HPC SDK 20.7 release and the CUDA Toolkit 11.1 release.
std::allocator
APIs deprecated in C++17.thrust::optional
work with Clang when used with older libstdc++.<memory>
and <algorithm>
to avoid circular inclusion with NVC++.Thrust 1.9.8-1 is a variant of 1.9.8 accompanying the NVIDIA HPC SDK 20.3 release. It contains modifications necessary to serve as the implementation of NVC++'s GPU-accelerated C++17 Parallel Algorithms.
Thrust 1.9.6-1 is a variant of 1.9.6 accompanying the NVIDIA HPC SDK 20.3 release. It contains modifications necessary to serve as the implementation of NVC++'s GPU-accelerated C++17 Parallel Algorithms when using the CUDA Toolkit 10.1 Update 2 release.
Thrust 1.9.1 integrates version 1.7.4 of CUB and introduces a new CUDA backend for thrust::reduce
based on CUB.
thrust::merge_by_key
with thrust::constant_iterator
s.thrust::reduce
and thrust::*_scan
.Thrust 1.9.0 replaces the original CUDA backend (bulk) with a new one written using CUB, a high performance CUDA collectives library. This brings a substantial performance improvement to the CUDA backend across the board.
thrust::transform_output_iterator
, a fancy iterator that applies a function to the output before storing the result.transform_output_iterator
demonstrates use of the new fancy iterator thrust::transform_output_iterator
.thrust::(unary|binary)_function
anymore to be used with thrust::transform_iterator
.thrust::detail::vector_base
-based classes, e.g. thrust::host_vector
, thrust::device_vector
, and friends.sin(thrust::complex<double>)
no longer has precision loss to float.thrust::unique
and implementing thrust::transform_output_iterator
.thrust::vector_base
-based classes.Thrust 1.9.3 unifies and integrates CUDA Thrust and GitHub Thrust.
thrust::iter_swap
interface and fix thrust::device_reference
swapping.data
method to thrust::detail::temporary_array
and refactor temporary memory allocation in the CUDA backend to be exception and leak safe.NVVMIR_LIBRARY_DIR
environment variable to NVCC.thrust::min/max_element
to only use thrust::detail::get_iterator_value
for non-numeric types.thrust::cuda::experimental::pinned_allocator
's comparison operators const
.<cuda.h>
.thrust::merge_by_key
.thrust::min/max_element
.Thrust 1.9.2 brings a variety of performance enhancements, bug fixes and test improvements. CUB 1.7.5 was integrated, enhancing the performance of thrust::sort
on small data types and thrust::reduce
. Changes were applied to complex
to optimize memory access. Thrust now compiles with compiler warnings enabled and treated as errors. Additionally, the unit test suite and framework was enhanced to increase coverage.
fallback_allocator
example was removed, as it was buggy and difficult to support.<thrust/detail/alignment.h>
, utilities for memory alignment:
thrust::aligned_reinterpret_cast
.thrust::aligned_storage_size
, which computes the amount of storage needed for an object of a particular size and alignment.thrust::alignment_of
, a C++03 implementation of C++11's std::alignment_of
.thrust::aligned_storage
, a C++03 implementation of C++11's std::aligned_storage
.thrust::max_align_t
, a C++03 implementation of C++11's std::max_align_t
.thrust::reduce
performance issues.allocate
to be overlooked but deallocate
to be called with GCC <= 4.3.thrust::complex
to work with thrust::sequence
.Thrust 1.8.3 is a small bug fix release.
range_view
demonstrates the use of a view (a non-owning wrapper for an iterator range with a container-like interface).thrust::(min|max|minmax)_element
can now accept raw device pointers when an explicit device execution policy is used.thrust::clear
operations on vector types no longer requires the element type to have a default constructor.