Releases: ROCm/rocThrust
rocThrust 4.2.0 for ROCm 7.2.0
Added
- Added
thrust::unique_ptr- a smart pointer for managing device memory with automatic cleanup. - Added a new cmake option,
BUILD_OFFLOAD_COMPRESS. When rocThrust is build with this option enabled, the--offload-compressswitch is passed to the compiler. This causes the compiler to compress the binary that it generates. Compression can be useful in cases where you are compiling for a large number of targets, since this often results in a large binary. Without compression, in some cases, the generated binary may become so large symbols are placed out of range, resulting in linking errors. The newBUILD_OFFLOAD_COMPRESSoption is set toONby default. - Experimental SPIR-V support.
rocthrust 4.1.0 for ROCm 7.1.1
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
Added
- Added a new CMake option
-DSQLITE_USE_SYSTEM_PACKAGEto allow SQLite to be provided by the system. - Introduced
libhipcxxas a soft depedency. Whenliphipcxxcan be included, rocthrust, may use structs and methods defined inlibhipcxx. This allows for a more complete behaviour parity with CCCL and mirrors CCCL's thrust own depedency onlibcudacxx. - Added a new CMake option
-DUSE_SYSTEM_LIBto allow tests to be built fromROCmlibraries provided by the system.
Known Issues
-
eventtest 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_METHODandROCRAND_FETCH_METHODmay 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 optionDOWNLOAD, 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 theDOWNLOADoption.
Changed
- The previously hidden cmake build option
FORCE_DEPENDENCIES_DOWNLOADhas been unhidden and renamedEXTERNAL_DEPS_FORCE_DOWNLOADto 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 toOFF.
Removed
- The previous dependency-related build options
DOWNLOAD_ROCPRIMandDOWNLOAD_ROCRANDhave been removed. Please useROCPRIM_FETCH_METHOD=DOWNLOADandROCRAND_FETCH_METHOD=DOWNLOADinstead.
rocthrust 4.0.0 for ROCm 7.0.2
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
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
Changed
- Updated the required version of Google Benchmark from 1.8.0 to 1.9.0.
- Drop
c++14support for rocthrust. - Renamed
cpp14_required.htocpp_version_check.h - Refactored
test_header.hppinto separte modulestest_param_fixtures.hpp,test_real_assertions.hpp,test_imag_assertions.hpp, andtest_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.hppto store all the parameters for typed test suites. - Added
test_real_assertions.hppto handle unit test assertions for real numbers. - Added
test_imag_assertions.hppto 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.hhas been removed. This header file was unused and should not impact users.- Removed C++14 support, only C++17 is supported.
test_header.hpphas been removed. TheHIP_CHECKfunction, as well as thetestandinter_run_bwrnamespaces, have been moved totest_utils.hpp.test_assertions.hpphas been split intotest_real_assertions.hppandtest_imag_assertions.hpp.
Upcoming changes
thrust::device_malloc_allocatoris 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
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
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
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
rocThrust code for ROCm 6.4.1 did not change. The library was rebuilt for the updated ROCm 6.4.1 stack.