Skip to content

Releases: ROCm/rocThrust

rocThrust 3.2.0 for ROCm 6.3.0

03 Dec 19:49
c33822f
Compare
Choose a tag to compare

Added

  • Merged changes from upstream CCCL/thrust 2.3.2
    • Only the NVIDIA backend uses tuple and pair types from libcu++, other backends continue to
      use the original Thrust implementations and hence do not require libcu++ (CCCL) as a dependency.
  • Added the thrust::hip::par_det execution policy to enable bitwise reproducibility on algorithms that are not bitwise reproducible by default.

Changed

  • Updated the default value for the -a argument from rmake.py to gfx906:xnack-,gfx1030,gfx1100,gfx1101,gfx1102,gfx1151,gfx1200,gfx1201.
  • Enabled the upstream (thrust) test suite for execution by default. It can still be disabled by CMake option -DENABLE_UPSTREAM_TESTS=OFF.

Resolved issues

  • Fixed an issue in rmake.py where the list storing cmake options would contain individual characters instead of a full string of options.
  • Fixed the HIP backend not passing TestCopyIfNonTrivial from the upstream (thrust) test suite.
  • Fixed tests failing when compiled with -D_GLIBCXX_ASSERTIONS=ON.

rocThrust 3.1.1 for ROCm 6.2.4

06 Nov 19:55
b8c4736
Compare
Choose a tag to compare

Added

  • gfx1151 Support

rocThrust 3.1.0 for ROCm 6.2.2

27 Sep 16:01
6f47412
Compare
Choose a tag to compare

rocThrust code for ROCm 6.2.2 did not change. The library was rebuilt for the updated ROCm 6.2.2 stack.

rocThrust 3.1.0 for ROCm 6.2.1

20 Sep 19:58
6f47412
Compare
Choose a tag to compare

rocThrust code for ROCm 6.2.1 did not change. The library was rebuilt for the updated ROCm 6.2.1 stack.

rocThrust 3.1.0 for ROCm 6.2.0

02 Aug 16:15
ae693f6
Compare
Choose a tag to compare

Additions

  • Merged changes from upstream CCCL/thrust 2.2.0
    • Updated the contents of system/hip and test with the upstream changes to system/cuda and testing

Changes

  • Updated internal calls to rocprim::detail::invoke_result to use the public API rocprim::invoke_result.
  • Use rocprim::device_adjacent_difference for adjacent_difference API call.
  • Updated internal use of custom iterator in thrust::detail::unique_by_key to use rocPRIM's rocprim::unique_by_key.
  • Updated adjecent_difference to make use of rocprim:adjecent_difference when iterators are comparable and not equal otherwise use rocprim:adjacent_difference_inplace.

Known issues

  • thrust::reduce_by_key outputs are not bit-wise reproducible, as run-to-run results for pseudo-associative reduction operators (e.g. floating-point arithmetic operators) are not deterministic on the same device.
  • Note that currently, rocThrust memory allocation is performed in such a way that most algorithmic API functions cannot be called from within hipGraphs.

rocThrust 3.0.1 for ROCm 6.1.2

04 Jun 16:53
41defe7
Compare
Choose a tag to compare

rocThrust code for ROCm 6.1.2 did not change. The library was rebuilt for the updated ROCm 6.1.2 stack.

rocThrust 3.0.1 for ROCm 6.1.1

08 May 18:00
41defe7
Compare
Choose a tag to compare

rocThrust code for ROCm 6.1.1 did not change. The library was rebuilt for the updated ROCm 6.1.1 stack.

rocThrust 3.0.1 for ROCm 6.1.0

16 Apr 19:11
41defe7
Compare
Choose a tag to compare

Fixes

  • Ported a fix from thrust 2.2 that ensures thrust::optional is trivially copyable.

rocThrust 3.0.0 for ROCm 6.0.2

31 Jan 20:12
44020d6
Compare
Choose a tag to compare

rocThrust code for ROCm 6.0.2 did not change. The library was rebuilt for the updated ROCm 6.0.2 stack.

rocThrust 3.0.0 for ROCm 6.0.0

15 Dec 18:31
44020d6
Compare
Choose a tag to compare

Added

  • Updated to match upstream Thrust 2.0.1
  • NV_IF_TARGET macro from libcu++ for NVIDIA backend and HIP implementation for HIP backend.

Changed

  • The cmake build system now additionally accepts GPU_TARGETS in addition to AMDGPU_TARGETS for
    setting the targeted gpu architectures. GPU_TARGETS=all will compile for all supported architectures.
    AMDGPU_TARGETS is only provided for backwards compatibility, GPU_TARGETS should be preferred.

Removed

  • Removed cub symlink from the root of the repository.
  • Removed support for deprecated macros (THRUST_DEVICE_BACKEND and THRUST_HOST_BACKEND).

Fixed

  • Fixed a segmentation fault when binary search / upper bound / lower bound / equal range was invoked with hip_rocprim::execute_on_stream_base policy.

Known issues

  • For NVIDIA backend, NV_IF_TARGET and THRUST_RDC_ENABLED intend to substitute the THRUST_HAS_CUDART macro, which is now no longer used in Thrust (provided for legacy support only). However, there is no THRUST_RDC_ENABLED macro available for the HIP backend, so some branches in Thrust's code may be unreachable in the HIP backend.