Skip to content

[rocPRIM][rocThrust][rocRAND][hipRAND] Update changelogs and version … - #681

Merged
vamovsik merged 1 commit into
ROCm:release/rocm-rel-7.0from
umfranzw:fix_rocprim_changelog_cherry-pick
Jul 23, 2025
Merged

vamovsik merged 1 commit into
ROCm:release/rocm-rel-7.0from
umfranzw:fix_rocprim_changelog_cherry-pick

Conversation

@umfranzw

Copy link
Copy Markdown
Contributor

[rocPRIM][rocThrust][rocRAND][hipRAND] Update changelogs and version numbers for ROCm 7.0 release (#567)

Update changelogs and version number for ROCm 7.0 release

This change removes sections for the (cancelled) 6.5.0 release, in the changelogs for rocPRIM, rocRAND, and rocThrust. The 6.5.0 entries have been moved into the 7.0 release sections - with the exception of the upcoming changes and deprecations subsections (since they are now realized in 7.0). Where appropriate, I've integrated additional information provided in the removed sections into the 7.0 sections.

This change also bumps the major release number for rocRAND and hipRAND (to 4.0.0 and 3.0.0, respectively).


…numbers for ROCm 7.0 release (ROCm#567)

Update changelogs and version number for ROCm 7.0 release

This change removes sections for the (cancelled) 6.5.0 release,
in the changelogs for rocPRIM, rocRAND, and rocThrust. The 6.5.0
entries have been moved into the 7.0 release sections - with the
exception of the upcoming changes and deprecations subsections
(since they are now realized in 7.0). Where appropriate, I've
integrated additional information provided in the removed sections
into the 7.0 sections.

This change also bumps the major release number for rocRAND and hipRAND
(to 4.0.0 and 3.0.0, respectively).

---------

Co-authored-by: Pratik Basyal <pratik.basyal@amd.com>
@codecov-commenter

codecov-commenter commented Jul 16, 2025 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Additional details and impacted files
@@                    Coverage Diff                    @@
##           release/rocm-rel-7.0     #681       +/-   ##
=========================================================
+ Coverage                 52.18%   75.30%   +23.12%     
=========================================================
  Files                        63      495      +432     
  Lines                      7436    44357    +36921     
  Branches                    799     5566     +4767     
=========================================================
+ Hits                       3880    33399    +29519     
- Misses                     3239     6843     +3604     
- Partials                    317     4115     +3798     
Flag Coverage Δ
rocRAND 52.17% <ø> (-0.01%) ⬇️
rocThrust 79.95% <ø> (?)
see 433 files with indirect coverage changes
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@vamovsik
vamovsik merged commit e08a6c3 into ROCm:release/rocm-rel-7.0 Jul 23, 2025
assistant-librarian Bot pushed a commit to ROCm/rocPRIM that referenced this pull request Jul 23, 2025
=?UTF-8?q?[rocPRIM][rocThrust][rocRAND][hipRAND]=20Update?=
 =?UTF-8?q?=20changelogs=20and=20version=20=E2=80=A6=20(#681)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[rocPRIM][rocThrust][rocRAND][hipRAND] Update changelogs and version
numbers for ROCm 7.0 release (#567)

Update changelogs and version number for ROCm 7.0 release

This change removes sections for the (cancelled) 6.5.0 release, in the
changelogs for rocPRIM, rocRAND, and rocThrust. The 6.5.0 entries have
been moved into the 7.0 release sections - with the exception of the
upcoming changes and deprecations subsections (since they are now
realized in 7.0). Where appropriate, I've integrated additional
information provided in the removed sections into the 7.0 sections.

This change also bumps the major release number for rocRAND and hipRAND
(to 4.0.0 and 3.0.0, respectively).
assistant-librarian Bot pushed a commit to ROCm/rocRAND that referenced this pull request Jul 23, 2025
=?UTF-8?q?[rocPRIM][rocThrust][rocRAND][hipRAND]=20Update?=
 =?UTF-8?q?=20changelogs=20and=20version=20=E2=80=A6=20(#681)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[rocPRIM][rocThrust][rocRAND][hipRAND] Update changelogs and version
numbers for ROCm 7.0 release (#567)

Update changelogs and version number for ROCm 7.0 release

This change removes sections for the (cancelled) 6.5.0 release, in the
changelogs for rocPRIM, rocRAND, and rocThrust. The 6.5.0 entries have
been moved into the 7.0 release sections - with the exception of the
upcoming changes and deprecations subsections (since they are now
realized in 7.0). Where appropriate, I've integrated additional
information provided in the removed sections into the 7.0 sections.

This change also bumps the major release number for rocRAND and hipRAND
(to 4.0.0 and 3.0.0, respectively).
assistant-librarian Bot pushed a commit to ROCm/rocThrust that referenced this pull request Jul 23, 2025
=?UTF-8?q?[rocPRIM][rocThrust][rocRAND][hipRAND]=20Update?=
 =?UTF-8?q?=20changelogs=20and=20version=20=E2=80=A6=20(#681)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[rocPRIM][rocThrust][rocRAND][hipRAND] Update changelogs and version
numbers for ROCm 7.0 release (#567)

Update changelogs and version number for ROCm 7.0 release

This change removes sections for the (cancelled) 6.5.0 release, in the
changelogs for rocPRIM, rocRAND, and rocThrust. The 6.5.0 entries have
been moved into the 7.0 release sections - with the exception of the
upcoming changes and deprecations subsections (since they are now
realized in 7.0). Where appropriate, I've integrated additional
information provided in the removed sections into the 7.0 sections.

This change also bumps the major release number for rocRAND and hipRAND
(to 4.0.0 and 3.0.0, respectively).
assistant-librarian Bot pushed a commit to ROCm/hipRAND that referenced this pull request Jul 23, 2025
=?UTF-8?q?[rocPRIM][rocThrust][rocRAND][hipRAND]=20Update?=
 =?UTF-8?q?=20changelogs=20and=20version=20=E2=80=A6=20(#681)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[rocPRIM][rocThrust][rocRAND][hipRAND] Update changelogs and version
numbers for ROCm 7.0 release (#567)

Update changelogs and version number for ROCm 7.0 release

This change removes sections for the (cancelled) 6.5.0 release, in the
changelogs for rocPRIM, rocRAND, and rocThrust. The 6.5.0 entries have
been moved into the 7.0 release sections - with the exception of the
upcoming changes and deprecations subsections (since they are now
realized in 7.0). Where appropriate, I've integrated additional
information provided in the removed sections into the 7.0 sections.

This change also bumps the major release number for rocRAND and hipRAND
(to 4.0.0 and 3.0.0, respectively).
ammallya pushed a commit that referenced this pull request Jun 8, 2026
* optimized Median Filter 3 and 5 kernels

* optimizations for kernel size 7 and 9

* cleanup

* optimize HIP code and cleanup

* gaussian filter optimization

* resolve review comments

* fix build error

* resolve review comments

* resolve review comments

* resolved review comments

* resolved review comments

---------

Co-authored-by: HazarathKumarM <hazarathkumar@multicorewareinc.com>
Co-authored-by: HazarathKumarM <119284987+HazarathKumarM@users.noreply.github.com>
Co-authored-by: Lakshmi Kumar <lakshmi.kumar@amd.com>
kliegeois pushed a commit to kliegeois/rocm-libraries that referenced this pull request Jun 8, 2026
* optimized Median Filter 3 and 5 kernels

* optimizations for kernel size 7 and 9

* cleanup

* optimize HIP code and cleanup

* gaussian filter optimization

* resolve review comments

* fix build error

* resolve review comments

* resolve review comments

* resolved review comments

* resolved review comments

---------

Co-authored-by: HazarathKumarM <hazarathkumar@multicorewareinc.com>
Co-authored-by: HazarathKumarM <119284987+HazarathKumarM@users.noreply.github.com>
Co-authored-by: Lakshmi Kumar <lakshmi.kumar@amd.com>

[ROCm/rpp commit: 08e9024]
mpanoop pushed a commit to mpanoop/rocm-libraries that referenced this pull request Oct 5, 2026
* Add atomic_add overload for double (ROCm#652)

The rocprim::histogram_even algorithm uses rocprim::atomic_add. There are atomic_add
overloads for all of the non-half-type primitive data types we support, with the
exception of double.

Because of this, if you called rocprim::histogram_even and used double as the counter
type, you'd get a compilation error.

This changes just adds an atomic_add overload that accepts double, and tacks on a
few unit test cases that exercise histogram_even with float and double counters.

* Make temp_storage functions __host__ and __device__ (ROCm#658)

* Enable CMake HIP language (ROCm#655)

* Restart on HIP language support

* linking changes

* rearrange

---------

Co-authored-by: Lauren Wrubleski <Lauren.Wrubleski@amd.com>

* Fix for rocprim::batch_copy when using iterators (ROCm#662)

* Fix for using iterators in batch_copy

* Add indirect_iterator test to batch_memcpy

* Add specific iterator test based on reproducer, with iterators in iterators.

* Fix warp dpp reduction (ROCm#660)

Co-authored-by: Robin Voetter <robin@streamhpc.com>

* Workaround for shared memory write ordering compiler issue (ROCm#672)

This change implements a workaround to fix block_histogram while we wait for a compiler fix.

The block_histogram_sort algorithm contains a loop that initializes values in a shared memory struct.
Then it runs the flag_heads() algorithm using that struct.
It appear that in some cases, the optimizer is reordering things such that shared memory writes in
flag_heads() run before the loop initialization code completes.

Changing the loop condition and removing the inner "if" statement seems to prevent the optimizer from
doing this. From an algorithmic standpoint, this should be functionally equivalent to the way the code
was before the change.

* Avoid evaluating CMake LINK_LANGUAGE generator expressions in CMake <3.18 (ROCm#667)

Recently, we added CMake HIP Language support. That change introduced generator expressions
that use the LINK_LANGUAGE keyword. This keyword is only supported in CMake 3.18+.
The minimum CMake version we require is 3.16.

As a result, if you built with CMake 3.16 - 3.18, you'd get a build failure.

This change adds checks around all the spots where the LINK_LANGUAGE keyword is used
to avoid this problem.

It also adds a description of the CMake HIP Language support to the changelog (previously overlooked).

* Fix Windows CMake link issue (ROCm#675)

A recent cmake change added a condition check that avoids evaluating
a LINK_LANGUAGE generator expression if HIP_USECXX is OFF (since
LINK_LANGUAGE is unsupported in CMake < 3.18). However, it didn't
account for the fact that the LINK_LANGUAGE expression is embedded in a
conditional generator expression.

This change adds an "else" block that ensures the "false" side of the
conditional generator expression is still evaluated when the LINK_LANGUAGE
code is skipped. This fixes some build issues on Windows.

Also updates the readme to include recent changes to the way projects
must link to rocPRIM.

* MI300 radix sort, run length encode, and reduce by key optimizations (ROCm#674)

* Resolve "Add hipGraph compatibility for device run length encode"

* Resolve "Investigate RLE (non trivial runs) failure"

* Resolve "Config tuning and dynamic dispatch for device run length encode"

* Resolve "Implement type traits interface for rocPRIM's compiler-extended types and third-party's types"

* remove ordered block id from run length encode

A missing call to __syncthreads() caused this algorithm to occasionally
produce an invalid index and cause a crash. Instead of just adding that
call, we can remove the use of ordered block id by the regular block id,
which is already ordered per HSA guarantees.

There still remains an issue with a hang, but this seems a runtime issue
and will be investigated separately.

* MI200 & MI300 tuning

* Optimizations for MI300 unique performance

* improve type traits interface docs

* Move changlog items to 6.4.0

---------

Co-authored-by: Beatriz Navidad Vilches <beatriz@streamhpc.com>
Co-authored-by: Yung-sheng Tu <yung-sheng@streamhpc.com>
Co-authored-by: Cenxuan Tian <cenxuan@streamhpc.com>
Co-authored-by: Nick Breed <nick@streamhpc.com>

* Add tuned configs for gfx1200 and gfx1201 (ROCm#681)

Add tuned configs for gfx1200 and gfx1201 for some algorithms.
A few algorithms still require some additional work to
get tuning working. These will be added in a follow-up commit.

* Fix static assertion for int128 in ONNX Runtime with GNU extensions (ROCm#683)

Co-authored-by: Anton Gorenko <anton@streamhpc.com>

* Add remaining gfx1201 tuning configs (ROCm#684)

This change adds the remaining tuning
configs for gfx1201.

* Accept hip stream legacy (ROCm#689)

* Support getting device ID from stream hipStreamLegacy (ROCm#687)

rocprim::get_device_from_stream must retreive the device ID
in different ways depending on whether a user-created stream
or a built-in stream type is being used.

This change modifies the check for built-in stream types so that
it includes hipStreamLegacy. This prevents the function from
calling hipGetStreamDeviceId(hipStreamLegacy), which currently
causes a segmentation fault.

* Add hipStreamLegacy HIP version check

The hipStreamLegacy stream handle was added in HIP 6.1.0.
Add a check to ensure that we don't reference it if rocPRIM
is being built using an older version of HIP.

* Add get_device_id_from_stream test for hipStreamLegacy

Add a test case to ensure that passing hipStreamLegacy to
rocprim::get_device_id_from_stream works correctly.

Updated the changelog with a note to reflect the fact that
hipStreamLegacy can now be used without issue.

* Update CHANGELOG.md

Co-authored-by: Jeffrey Novotny <jnovotny@amd.com>

---------

Co-authored-by: Jeffrey Novotny <jnovotny@amd.com>

* Workaround memory allocation issues on Windows for large size test cases (ROCm#690)

Radix sort and merge sort test cases that use the largest data sizes
hang or cause an SEH exception on Windows when using the latest version
of the HIP SDK.

Unfortunately, the HIP SDK issue interferes with our current strategies
for skipping tests that require too much memory for a device (querying
available device memory or examining the return value from hipMalloc),
making them unreliable.

While we wait for a fix, this change introduces a workaround by
reducing the maximum size these test cases can use on Windows.

* used 678 version of test_device_run_length_encode

* got rid of duplicated code

* removed ; on if statement

---------

Co-authored-by: Wayne Franz <wayfranz@amd.com>
Co-authored-by: Nick Breed <78807921+NB4444@users.noreply.github.com>
Co-authored-by: Lauren Wrubleski <Lauren.Wrubleski@amd.com>
Co-authored-by: Beatriz Navidad Vilches <61422851+Beanavil@users.noreply.github.com>
Co-authored-by: Robin Voetter <robin@streamhpc.com>
Co-authored-by: Beatriz Navidad Vilches <beatriz@streamhpc.com>
Co-authored-by: Yung-sheng Tu <yung-sheng@streamhpc.com>
Co-authored-by: Cenxuan Tian <cenxuan@streamhpc.com>
Co-authored-by: Nick Breed <nick@streamhpc.com>
Co-authored-by: Anton Gorenko <anton@streamhpc.com>
Co-authored-by: Jeffrey Novotny <jnovotny@amd.com>

[ROCm/rocPRIM commit: 07fda10]
mpanoop pushed a commit to mpanoop/rocm-libraries that referenced this pull request Oct 5, 2026
* Add atomic_add overload for double (ROCm#652)

The rocprim::histogram_even algorithm uses rocprim::atomic_add. There are atomic_add
overloads for all of the non-half-type primitive data types we support, with the
exception of double.

Because of this, if you called rocprim::histogram_even and used double as the counter
type, you'd get a compilation error.

This changes just adds an atomic_add overload that accepts double, and tacks on a
few unit test cases that exercise histogram_even with float and double counters.

* Make temp_storage functions __host__ and __device__ (ROCm#658)

* Enable CMake HIP language (ROCm#655)

* Restart on HIP language support

* linking changes

* rearrange

---------

Co-authored-by: Lauren Wrubleski <Lauren.Wrubleski@amd.com>

* Fix for rocprim::batch_copy when using iterators (ROCm#662)

* Fix for using iterators in batch_copy

* Add indirect_iterator test to batch_memcpy

* Add specific iterator test based on reproducer, with iterators in iterators.

* Fix warp dpp reduction (ROCm#660)

Co-authored-by: Robin Voetter <robin@streamhpc.com>

* Workaround for shared memory write ordering compiler issue (ROCm#672)

This change implements a workaround to fix block_histogram while we wait for a compiler fix.

The block_histogram_sort algorithm contains a loop that initializes values in a shared memory struct.
Then it runs the flag_heads() algorithm using that struct.
It appear that in some cases, the optimizer is reordering things such that shared memory writes in
flag_heads() run before the loop initialization code completes.

Changing the loop condition and removing the inner "if" statement seems to prevent the optimizer from
doing this. From an algorithmic standpoint, this should be functionally equivalent to the way the code
was before the change.

* Avoid evaluating CMake LINK_LANGUAGE generator expressions in CMake <3.18 (ROCm#667)

Recently, we added CMake HIP Language support. That change introduced generator expressions
that use the LINK_LANGUAGE keyword. This keyword is only supported in CMake 3.18+.
The minimum CMake version we require is 3.16.

As a result, if you built with CMake 3.16 - 3.18, you'd get a build failure.

This change adds checks around all the spots where the LINK_LANGUAGE keyword is used
to avoid this problem.

It also adds a description of the CMake HIP Language support to the changelog (previously overlooked).

* Fix Windows CMake link issue (ROCm#675)

A recent cmake change added a condition check that avoids evaluating
a LINK_LANGUAGE generator expression if HIP_USECXX is OFF (since
LINK_LANGUAGE is unsupported in CMake < 3.18). However, it didn't
account for the fact that the LINK_LANGUAGE expression is embedded in a
conditional generator expression.

This change adds an "else" block that ensures the "false" side of the
conditional generator expression is still evaluated when the LINK_LANGUAGE
code is skipped. This fixes some build issues on Windows.

Also updates the readme to include recent changes to the way projects
must link to rocPRIM.

* MI300 radix sort, run length encode, and reduce by key optimizations (ROCm#674)

* Resolve "Add hipGraph compatibility for device run length encode"

* Resolve "Investigate RLE (non trivial runs) failure"

* Resolve "Config tuning and dynamic dispatch for device run length encode"

* Resolve "Implement type traits interface for rocPRIM's compiler-extended types and third-party's types"

* remove ordered block id from run length encode

A missing call to __syncthreads() caused this algorithm to occasionally
produce an invalid index and cause a crash. Instead of just adding that
call, we can remove the use of ordered block id by the regular block id,
which is already ordered per HSA guarantees.

There still remains an issue with a hang, but this seems a runtime issue
and will be investigated separately.

* MI200 & MI300 tuning

* Optimizations for MI300 unique performance

* improve type traits interface docs

* Move changlog items to 6.4.0

---------

Co-authored-by: Beatriz Navidad Vilches <beatriz@streamhpc.com>
Co-authored-by: Yung-sheng Tu <yung-sheng@streamhpc.com>
Co-authored-by: Cenxuan Tian <cenxuan@streamhpc.com>
Co-authored-by: Nick Breed <nick@streamhpc.com>

* Add tuned configs for gfx1200 and gfx1201 (ROCm#681)

Add tuned configs for gfx1200 and gfx1201 for some algorithms.
A few algorithms still require some additional work to
get tuning working. These will be added in a follow-up commit.

* Fix static assertion for int128 in ONNX Runtime with GNU extensions (ROCm#683)

Co-authored-by: Anton Gorenko <anton@streamhpc.com>

* Add remaining gfx1201 tuning configs (ROCm#684)

This change adds the remaining tuning
configs for gfx1201.

* Accept hip stream legacy (ROCm#689)

* Support getting device ID from stream hipStreamLegacy (ROCm#687)

rocprim::get_device_from_stream must retreive the device ID
in different ways depending on whether a user-created stream
or a built-in stream type is being used.

This change modifies the check for built-in stream types so that
it includes hipStreamLegacy. This prevents the function from
calling hipGetStreamDeviceId(hipStreamLegacy), which currently
causes a segmentation fault.

* Add hipStreamLegacy HIP version check

The hipStreamLegacy stream handle was added in HIP 6.1.0.
Add a check to ensure that we don't reference it if rocPRIM
is being built using an older version of HIP.

* Add get_device_id_from_stream test for hipStreamLegacy

Add a test case to ensure that passing hipStreamLegacy to
rocprim::get_device_id_from_stream works correctly.

Updated the changelog with a note to reflect the fact that
hipStreamLegacy can now be used without issue.

* Update CHANGELOG.md

Co-authored-by: Jeffrey Novotny <jnovotny@amd.com>

---------

Co-authored-by: Jeffrey Novotny <jnovotny@amd.com>

* Workaround memory allocation issues on Windows for large size test cases (ROCm#690)

Radix sort and merge sort test cases that use the largest data sizes
hang or cause an SEH exception on Windows when using the latest version
of the HIP SDK.

Unfortunately, the HIP SDK issue interferes with our current strategies
for skipping tests that require too much memory for a device (querying
available device memory or examining the return value from hipMalloc),
making them unreliable.

While we wait for a fix, this change introduces a workaround by
reducing the maximum size these test cases can use on Windows.

* used 678 version of test_device_run_length_encode

* got rid of duplicated code

* removed ; on if statement

---------

Co-authored-by: Wayne Franz <wayfranz@amd.com>
Co-authored-by: Nick Breed <78807921+NB4444@users.noreply.github.com>
Co-authored-by: Lauren Wrubleski <Lauren.Wrubleski@amd.com>
Co-authored-by: Beatriz Navidad Vilches <61422851+Beanavil@users.noreply.github.com>
Co-authored-by: Robin Voetter <robin@streamhpc.com>
Co-authored-by: Beatriz Navidad Vilches <beatriz@streamhpc.com>
Co-authored-by: Yung-sheng Tu <yung-sheng@streamhpc.com>
Co-authored-by: Cenxuan Tian <cenxuan@streamhpc.com>
Co-authored-by: Nick Breed <nick@streamhpc.com>
Co-authored-by: Anton Gorenko <anton@streamhpc.com>
Co-authored-by: Jeffrey Novotny <jnovotny@amd.com>

[ROCm/rocPRIM commit: 07fda10]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants