Thrust Versions Save

[ARCHIVED] The C++ parallel algorithms library. See https://github.com/NVIDIA/cccl

1.9.10-1

3 years ago

Thrust 1.9.10-1 is the minor release accompanying the NVIDIA HPC SDK 20.7 release and the CUDA Toolkit 11.1 release.

Bug Fixes

  • #1214, NVBug 200619442: Stop using std::allocator APIs deprecated in C++17.
  • #1216, NVBug 200540293: Make thrust::optional work with Clang when used with older libstdc++.
  • #1207, NVBug 200618218: Don't force C++14 with older compilers that don't support it.
  • #1218: Wrap includes of <memory> and <algorithm> to avoid circular inclusion with NVC++.

1.9.8-1

4 years ago

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.

1.9.6-1

4 years ago

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.

1.9.7-1

4 years ago

Thrust 1.9.7-1 is a minor release accompanying the CUDA Toolkit 10.2 release for Tegra. It is nearly identical to 1.9.7.

Bug Fixes

  • Remove support for GCC's broken nodiscard-like attribute.

1.9.1-2

4 years ago

Thrust 1.9.1 integrates version 1.7.4 of CUB and introduces a new CUDA backend for thrust::reduce based on CUB.

Bug Fixes

  • NVBug 1965743: Remove unnecessary static qualifiers.
  • NVBug 1940974: Fix regression causing a compilation error when using thrust::merge_by_key with thrust::constant_iterators.
  • NVBug 1904217: Allow callables that take non-const refs to be used with thrust::reduce and thrust::*_scan.

1.9.0-5

4 years ago

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.

Breaking Changes

  • Any code depending on CUDA backend implementation details will likely be broken.

New Features

  • New CUDA backend based on CUB which delivers substantially higher performance.
  • thrust::transform_output_iterator, a fancy iterator that applies a function to the output before storing the result.

New Examples

  • transform_output_iterator demonstrates use of the new fancy iterator thrust::transform_output_iterator.

Other Enhancements

  • When C++11 is enabled, functors do not have to inherit from thrust::(unary|binary)_function anymore to be used with thrust::transform_iterator.
  • Added C++11 only move constructors and move assignment operators for thrust::detail::vector_base-based classes, e.g. thrust::host_vector, thrust::device_vector, and friends.

Bug Fixes

  • sin(thrust::complex<double>) no longer has precision loss to float.

Acknowledgments

  • Thanks to Manuel Schiller for contributing a C++11 based enhancement regarding the deduction of functor return types, improving the performance of thrust::unique and implementing thrust::transform_output_iterator.
  • Thanks to Thibault Notargiacomo for the implementation of move semantics for the thrust::vector_base-based classes.
  • Thanks to Duane Merrill for developing CUB and helping to integrate it into Thrust's backend.

1.9.3

4 years ago

Thrust 1.9.3 unifies and integrates CUDA Thrust and GitHub Thrust.

Bug Fixes

  • #725, #850, #855, #859, #860: Unify the thrust::iter_swap interface and fix thrust::device_reference swapping.
  • NVBug 2004663: Add a data method to thrust::detail::temporary_array and refactor temporary memory allocation in the CUDA backend to be exception and leak safe.
  • #886, #894, #914: Various documentation typo fixes.
  • #724: Provide NVVMIR_LIBRARY_DIR environment variable to NVCC.
  • #878: Optimize thrust::min/max_element to only use thrust::detail::get_iterator_value for non-numeric types.
  • #899: Make thrust::cuda::experimental::pinned_allocator's comparison operators const.
  • NVBug 2092152: Remove all includes of <cuda.h>.
  • #911: Fix default comparator element type for thrust::merge_by_key.

Acknowledgments

  • Thanks to Andrew Corrigan for contributing fixes for swapping interfaces.
  • Thanks to Francisco Facioni for contributing optimizations for thrust::min/max_element.

1.9.2

4 years ago

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.

Breaking Changes

  • The fallback_allocator example was removed, as it was buggy and difficult to support.

New Features

  • <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.

Bug Fixes

  • NVBug 200385527, NVBug 200385119, NVBug 200385113, NVBug 200349350, NVBug 2058778: Various compiler warning issues.
  • NVBug 200355591: thrust::reduce performance issues.
  • NVBug 2053727: Fixed an ADL bug that caused user-supplied allocate to be overlooked but deallocate to be called with GCC <= 4.3.
  • NVBug 1777043: Fixed thrust::complex to work with thrust::sequence.

1.8.3

4 years ago

Thrust 1.8.3 is a small bug fix release.

New Examples

  • range_view demonstrates the use of a view (a non-owning wrapper for an iterator range with a container-like interface).

Bug Fixes

  • 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.

1.7.2

4 years ago

Thrust 1.7.2 is a minor bug fix release.

Bug Fixes

  • Avoid use of std::min in generic find implementation.