Skip to content

Releases: ROCm/rocThrust

rocthrust 4.1.0 for ROCm 7.1.1

26 Nov 18:46

Choose a tag to compare

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

rocThrust 4.1.0 for ROCm 7.1.0

30 Oct 05:52

Choose a tag to compare

Added

  • Added a new CMake option -DSQLITE_USE_SYSTEM_PACKAGE to allow SQLite to be provided by the system.
  • Introduced libhipcxx as a soft depedency. When liphipcxx can be included, rocthrust, may use structs and methods defined in libhipcxx. This allows for a more complete behaviour parity with CCCL and mirrors CCCL's thrust own depedency on libcudacxx.
  • Added a new CMake option -DUSE_SYSTEM_LIB to allow tests to be built from ROCm libraries provided by the system.

Known Issues

  • event test is failing on CI and local runs on MI300, MI250 and MI210.

  • rocThrust, as well as its dependencies rocPRIM and rocRAND have been moved into the new rocm-libraries "monorepo" repository (https://github.com/ROCm/rocm-libraries). This repository contains a number of ROCm libraries that are frequently used together.

    • The repository migration requires a few changes to the way that rocThrust's ROCm library dependencies are fetched.
    • There are new cmake options for obtaining rocPRIM and (optionally, if BUILD_BENCHMARKS is enabled) rocRAND.
    • cmake build options ROCPRIM_FETCH_METHOD and ROCRAND_FETCH_METHOD may be set to one of the following:
      • PACKAGE - (default) searches for a preinstalled packaged version of the dependency. If it is not found, the build will fall back using option DOWNLOAD, described below.
      • DOWNLOAD - downloads the dependency from the rocm-libraries repository. If git >= 2.25 is present, this option uses a sparse checkout that avoids downloading more than it needs to. If not, the whole monorepo is downloaded (this may take some time).
      • MONOREPO - this options is intended to be used if you are building rocThrust from within a copy of the rocm-libraries repository that you have cloned (and therefore already contains the dependencies rocPRIM and rocRAND). When selected, the build will try find the dependency in the local repository tree. If it cannot be found, the build will attempt to add it to the local tree using a sparse-checkout. If that also fails, it will fall back to using the DOWNLOAD option.

Changed

  • The previously hidden cmake build option FORCE_DEPENDENCIES_DOWNLOAD has been unhidden and renamed EXTERNAL_DEPS_FORCE_DOWNLOAD to differentiate it from the new rocPRIM and rocRAND dependency options described above. It's behaviour remains the same - it forces non-ROCm dependencies (Google Benchmark, Google Test, and SQLite) to be downloaded instead of searching for existing installed packages. This option defaults to OFF.

Removed

  • The previous dependency-related build options DOWNLOAD_ROCPRIM and DOWNLOAD_ROCRAND have been removed. Please use ROCPRIM_FETCH_METHOD=DOWNLOAD and ROCRAND_FETCH_METHOD=DOWNLOAD instead.

rocthrust 4.0.0 for ROCm 7.0.2

10 Oct 12:12

Choose a tag to compare

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

rocthrust 4.0.0 for ROCm 7.0.1

17 Sep 16:36

Choose a tag to compare

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

rocThrust 4.0.0 for ROCm 7.0.0

16 Sep 06:31

Choose a tag to compare

Changed

  • Updated the required version of Google Benchmark from 1.8.0 to 1.9.0.
  • Drop c++14 support for rocthrust.
  • Renamed cpp14_required.h to cpp_version_check.h
  • Refactored test_header.hpp into separte modules test_param_fixtures.hpp, test_real_assertions.hpp, test_imag_assertions.hpp, and test_utils.hpp.
    • This is done to prevent unit tests from having access to modules that they're not testing. This will improve the accuracy of code coverage reports.

Added

  • Additional unit tests for:
    • binary_search
    • complex
    • c99math
    • catrig
    • ccosh
    • cexp
    • clog
    • csin
    • csqrt
    • ctan
  • Added test_param_fixtures.hpp to store all the parameters for typed test suites.
  • Added test_real_assertions.hpp to handle unit test assertions for real numbers.
  • Added test_imag_assertions.hpp to handle unit test assertions for imaginary numbers.
  • clang++ is now used to compile google benchmarks on Windows.
  • Added gfx950 support.
  • Merged changes from upstream CCCL/thrust 2.6.0

Removed

  • device_malloc_allocator.h has been removed. This header file was unused and should not impact users.
  • Removed C++14 support, only C++17 is supported.
  • test_header.hpp has been removed. The HIP_CHECK function, as well as the test and inter_run_bwr namespaces, have been moved to test_utils.hpp.
  • test_assertions.hpp has been split into test_real_assertions.hpp and test_imag_assertions.hpp.

Upcoming changes

  • thrust::device_malloc_allocator is deprecated as of this version. It will be removed in an upcoming version.

Resolved issues

  • Fixed an issue with internal calls to unqualified distance() which would be ambigious due to also visibile implementation through ADL.

Known Issues

  • The order of the values being compared by thrust::exclusive_scan_by_key and thrust::inclusive_scan_by_key can change between runs when integers are being compared. This can cause incorrect output when a non-commutative operator such as division is being used.

rocThrust 3.3.0 for ROCm 6.4.4

24 Sep 14:02
186d401

Choose a tag to compare

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

rocThrust 3.3.0 for ROCm 6.4.3

07 Aug 14:20
186d401

Choose a tag to compare

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

rocThrust 3.3.0 for ROCm 6.4.2

21 Jul 16:54
186d401

Choose a tag to compare

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

rocThrust 3.3.0 for ROCm 6.4.1

20 May 13:16
6bf2777

Choose a tag to compare

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

rocThrust 3.3.0 for ROCm 6.4.0

11 Apr 13:35
c806fb5

Choose a tag to compare

Added

  • Added a section to install Thread Building Block (TBB) inside cmake/Dependencies.cmake if TBB is not already available.
  • Made Thread Building Block (TBB) an optional dependency with the new BUILD_HIPSTDPAR_TEST_WITH_TBB flag, default is OFF. When the flag is OFF and TBB is not already on the machine it will compile without TBB. Otherwise is will compile it with TBB.
  • Added extended tests to rtest.py. These tests are extra tests that did not fit the criteria of smoke and regression tests. These tests will take much longer to run relative to smoke and regression tests. Use python rtest.py [--emulation|-e|--test|-t]=extended to run these tests.
  • Added regression tests to rtest.py. These tests recreate scenarios that have caused hardware problems in past emulation environments. Use python rtest.py [--emulation|-e|--test|-t]=regression to run these tests.
  • Added smoke test options, which runs a subset of the unit tests and ensures that less than 2gb of VRAM will be used. Use python rtest.py [--emulation|-e|--test|-t]=smoke to run these tests.
  • Added --emulation option for rtest.py
  • Merged changes from upstream CCCL/thrust 2.4.0
  • Merged changes from upstream CCCL/thrust 2.5.0
  • Added find_first_of to HIPSTDPAR
  • Added search and find_end to HIPSTDPAR
  • Added search_n to HIPSTDPAR
  • Updated HIPSTDPAR's adjacent_find to use rocPRIM's implementation

Changed

  • Changed the C++ version from 14 to 17. C++14 will be deprecated in the next major release.
  • --test|-t is no longer a required flag for rtest.py. Instead, the user can use either --emulation|-e or --test|-t, but not both.
  • Split the contents of HIPSTDPAR's forwarding header into several implementation headers.
  • Fixed copy_if to work with large data types (512 bytes)

Known Issues

  • thrust::inclusive_scan_by_key might produce incorrect results when it's used with -O2 or -O3 optimization.
  • The error is caused by a recent compiler change. There is a fix available that will be released at a later date.