Skip to content

feat(hipcub): Add CCCL 3.0.x support (copy) - #9931

Merged
umfranzw merged 98 commits into
developfrom
users/umfranzw/hipcub_cccl3.0_copy
Jul 25, 2026
Merged

umfranzw merged 98 commits into
developfrom
users/umfranzw/hipcub_cccl3.0_copy

Conversation

@umfranzw

Copy link
Copy Markdown
Contributor

Note: this is a rocm-libraries-based copy of #4079 in case we need to make immediate changes.

Add CCCL 3.0.x support for hipCUB library.
Additional updates: fix CUB backend
JIRA ID : EXSWSTRHPC-300

@therock-pr-bot

therock-pr-bot Bot commented Jul 24, 2026 •

Copy link
Copy Markdown

✅ All Checks Passed — Ready for Review

Check Status Details
🌿 Branch Name ✅ Pass —
📝 PR Title/Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass —
🔎 pre-commit ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —
🤖 therock-pr-bot ✅ Pass —

🎉 All checks passed! This PR is ready for review.

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

@therock-pr-bot

Copy link
Copy Markdown

🎉 All checks passed! This PR is ready for review.

@codecov

codecov Bot commented Jul 25, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Additional details and impacted files
@@             Coverage Diff              @@
##           develop    #9931       +/-   ##
============================================
+ Coverage    69.54%   91.34%   +21.80%     
============================================
  Files         2769      500     -2269     
  Lines       451674    42012   -409662     
  Branches     66439     5407    -61032     
============================================
- Hits        314101    38374   -275727     
+ Misses      116577     3272   -113305     
+ Partials     20996      366    -20630     
Flag Coverage Δ
TensileLite ?
TensileLite-CPP ?
TensileLite-Unit ?
hipBLAS ?
hipBLASLt ?
hipCUB ?
hipDNN ?
hipFFT ?
hipRAND ?
hipSOLVER ?
hipSPARSE ?
rocBLAS ?
rocFFT ?
rocRAND ?
rocSOLVER ?
rocSPARSE ?
rocThrust 91.34% <ø> (-0.02%) ⬇️
Files with missing lines Coverage Δ
projects/rocthrust/test/test_scan.cpp 1.35% <ø> (-<0.01%) ⬇️
projects/rocthrust/test/test_utils.hpp 73.83% <ø> (+0.20%) ⬆️
...s/rocthrust/test/test_zip_iterator_sort_by_key.cpp 97.73% <ø> (-2.27%) ⬇️

... and 2270 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.

Several tests are consistently failing on Windows with gfx1151.
Temporarily disable these until we locate the root cause and find a proper fix.
@umfranzw
umfranzw force-pushed the users/umfranzw/hipcub_cccl3.0_copy branch from 7ae6e35 to f06b631 Compare July 25, 2026 12:34
@umfranzw
umfranzw merged commit 72b6de5 into develop Jul 25, 2026
56 of 57 checks passed
@umfranzw
umfranzw deleted the users/umfranzw/hipcub_cccl3.0_copy branch July 25, 2026 22:36
assistant-librarian Bot pushed a commit to ROCm/hipCUB that referenced this pull request Jul 25, 2026
feat(hipcub): Add CCCL 3.0.x support (copy)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Note: this is a rocm-libraries-based copy of
ROCm/rocm-libraries#4079 in case we need to make
immediate changes.

Add CCCL 3.0.x support for hipCUB library.
Additional updates: fix CUB backend
JIRA ID : EXSWSTRHPC-300
assistant-librarian Bot pushed a commit to ROCm/rocPRIM that referenced this pull request Jul 25, 2026
feat(hipcub): Add CCCL 3.0.x support (copy)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Note: this is a rocm-libraries-based copy of
ROCm/rocm-libraries#4079 in case we need to make
immediate changes.

Add CCCL 3.0.x support for hipCUB library.
Additional updates: fix CUB backend
JIRA ID : EXSWSTRHPC-300
assistant-librarian Bot pushed a commit to ROCm/rocThrust that referenced this pull request Jul 25, 2026
feat(hipcub): Add CCCL 3.0.x support (copy)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Note: this is a rocm-libraries-based copy of
ROCm/rocm-libraries#4079 in case we need to make
immediate changes.

Add CCCL 3.0.x support for hipCUB library.
Additional updates: fix CUB backend
JIRA ID : EXSWSTRHPC-300
lamb-j added a commit to ROCm/llvm-project that referenced this pull request Jul 27, 2026
## Why

`Applications/monte_carlo_pi` was migrated off the CUB-style hipcub
iterators that CCCL 3.0 removed (ROCm/rocm-libraries#9931) to the
portable `thrust::` iterators — see ROCm/rocm-examples#493. That
migration pulls in a rocThrust dependency (`find_package(rocthrust
REQUIRED)`), which the SPIRV CI build job doesn't currently install, so
the `Test rocm-examples` job would fail at configure with `Could not
find rocthrust`.

## What

Add a rocThrust checkout + install into the staging tree so the
rocm-examples build can find it:

- Add `ROCTHRUST_BUILD` env var.
- Checkout `ROCm/rocThrust@develop`, configure + install into staging
after hipCUB. rocThrust is header-only, so it's a fast configure +
install, mirroring the hipCUB step.
- Include the build dir in the strip + tar steps.

## Ordering

The `Test rocm-examples` job stays red until **both** this and
rocm-examples#493 land (either order); then the next `amd-staging` run
goes green. The job is informational (not a required check), so this
doesn't block merges in the meantime.
lamb-j added a commit to ROCm/rocm-examples that referenced this pull request Jul 27, 2026
…493)

* fix(monte_carlo_pi): migrate off hipcub iterators removed in CUB 3.0

hipCUB's CCCL 3.0 update (ROCm/rocm-libraries#9931) removed the CUB-style
iterator headers (counting/constant/transform/discard) that
Applications/monte_carlo_pi included, breaking its build against current
hipCUB. Switch to the portable Thrust iterators, which is the replacement
CUB 3.0 itself points to.

Changes:
- main.hip: replace hipcub::CountingInputIterator / TransformInputIterator
  with thrust::counting_iterator / thrust::make_transform_iterator; drop the
  unused discard_output_iterator include. hipcub::DeviceReduce::Sum is
  unchanged and accepts Thrust iterators.
- CMakeLists.txt: find + link rocThrust on the AMD path (roc::rocthrust);
  NVIDIA gets the Thrust headers from the already-required CUDA Toolkit.

* Apply suggestion from @idubinov

Co-authored-by: idubinov <idubinov@amd.com>

---------

Co-authored-by: idubinov <idubinov@amd.com>
mapatel-amd added a commit to ROCm/rocm-examples that referenced this pull request Aug 7, 2026
* Cleanup arch filtering & Fix LLVM library path (#492)

* Filter rocprof-compute to supported archs instead of skipping

Previously rocprof-compute skipped the entire example if any requested
architecture was unsupported. Use the shared filter_hip_architectures
helper to build for the supported subset and emit a warning listing the
skipped architectures, matching the ComposableKernel/hipTensor examples.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>

* Warn instead of silently noting when CK/rocAL/rocCV are missing

ComposableKernel, rocAL, and rocCV emitted a STATUS message when the
library could not be found, so their examples were skipped without a
visible warning in CI. Use WARNING to match every other library and
surface the skip.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>

* Fix LLVM lib/bin paths in TheRock CI env setup

The LLVM toolchain (including libomp.so) lives under ${ROCM_PATH}/lib/llvm,
not ${ROCM_PATH}/llvm. Correct PATH and LD_LIBRARY_PATH for both the tarball
and wheel install methods so runtime dependencies like libomp.so resolve.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4 <noreply@anthropic.com>

* fix(monte_carlo_pi): migrate off hipcub iterators removed in CUB 3.0 (#493)

* fix(monte_carlo_pi): migrate off hipcub iterators removed in CUB 3.0

hipCUB's CCCL 3.0 update (ROCm/rocm-libraries#9931) removed the CUB-style
iterator headers (counting/constant/transform/discard) that
Applications/monte_carlo_pi included, breaking its build against current
hipCUB. Switch to the portable Thrust iterators, which is the replacement
CUB 3.0 itself points to.

Changes:
- main.hip: replace hipcub::CountingInputIterator / TransformInputIterator
  with thrust::counting_iterator / thrust::make_transform_iterator; drop the
  unused discard_output_iterator include. hipcub::DeviceReduce::Sum is
  unchanged and accepts Thrust iterators.
- CMakeLists.txt: find + link rocThrust on the AMD path (roc::rocthrust);
  NVIDIA gets the Thrust headers from the already-required CUDA Toolkit.

* Apply suggestion from @idubinov

Co-authored-by: idubinov <idubinov@amd.com>

---------

Co-authored-by: idubinov <idubinov@amd.com>

* Add unified manifest-driven skip mechanism for CI builds and tests (#494)

* Add unified manifest-driven skip mechanism for CI builds and tests

Introduce a single source of truth (.github/build_tools/skip_manifest.py)
feeding all four skip consumers: ctest (skip_tests.txt), CMake build
(Common/SkipExamples.cmake via CMAKE_PROJECT_INCLUDE_BEFORE), make build
(SKIP_FROM_BUILD), and make test (SKIP_FROM_TEST). Migrates the previously
scattered static Makefile skips (hipFFT/rocFFT callback, all rocDecode
examples) into the manifest.

Skips carry repo-relative paths so a shared leaf name like `callback`
(present under hipFFT, rocFFT, and rocProfiler-SDK/counter_collection) only
skips the intended example. A --channel {stable,nightly} flag plus per-entry
`channels` filter scopes a skip to the pinned rocm:7.14 native workflows or
the TheRock multi-arch nightly workflow independently.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>

* ci: dedupe CI step summary sections

Drop the redundant "## Skipped tests" block from the Run tests step: the
Generate skip lists step already reports the full skip manifest (scope +
reason) to the step summary, so cat-ing skip_tests.txt only re-listed the
two ctest names.

Drop the duplicate "## ROCm Version" echo from the Wheel sanity check step;
setup_whl_env.py already emits the labeled version line and feeds the
rocm_version output used for artifact naming. The sanity-check step's
rocm_version output was unreferenced.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>

* ci: add install-method skip filter to distinguish nightly whl vs tarball

The nightly whl and tarball installs share the "nightly" channel but ship
different payloads, so channel alone can't scope a skip to one of them. Add
an orthogonal install_methods filter (matched against --install-method, passed
from matrix.install_method) and scope the rocDecode make-test skip to the whl
install only -- the stable image and nightly tarball carry the video data, so
their tests run.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4 <noreply@anthropic.com>

* Add nightly GPU build+test on pinned stable ROCm 7.14 image (#495)

## Motivation

Add nightly stable version testing.

## Technical Details

Adds a "preinstalled" install method and a stable_release distro (the self-contained ghcr rocm:7.14 image with ROCm baked in at /opt/rocm) so the nightly matrix exercises the pinned stable ROCm on GPU hardware, not just the TheRock nightlies. CK and OpenMP are enabled for this job.

Disables CK due to version skew.

Add venv and install cmake from pip on the stable docker image.

---------

Co-authored-by: Zichuan Guan <zichuan.guan@amd.com>
Co-authored-by: Claude Opus 4 <noreply@anthropic.com>
Co-authored-by: Jacob Lambert <jacob.lambert@amd.com>
Co-authored-by: idubinov <idubinov@amd.com>
stanleytsang-amd pushed a commit that referenced this pull request Sep 18, 2026
Note: this is a rocm-libraries-based copy of
#4079 in case we need to make
immediate changes.

Add CCCL 3.0.x support for hipCUB library.
Additional updates: fix CUB backend
JIRA ID : EXSWSTRHPC-300

---------

Co-authored-by: Mátyás Aradi <matyas@streamhpc.com>
Co-authored-by: Nara Prasetya <nara@streamhpc.com>
Co-authored-by: Cenxuan Tian <cenxuan@streamhpc.com>
Co-authored-by: Nguyen <zenguyen@amd.com>
illsilin pushed a commit to igorluppi/rocm-libraries that referenced this pull request Oct 1, 2026
Note: this is a rocm-libraries-based copy of
ROCm#4079 in case we need to make
immediate changes.

Add CCCL 3.0.x support for hipCUB library.
Additional updates: fix CUB backend
JIRA ID : EXSWSTRHPC-300

---------

Co-authored-by: Mátyás Aradi <matyas@streamhpc.com>
Co-authored-by: Nara Prasetya <nara@streamhpc.com>
Co-authored-by: Cenxuan Tian <cenxuan@streamhpc.com>
Co-authored-by: Nguyen <zenguyen@amd.com>
@Naraenda Naraenda mentioned this pull request Oct 2, 2026
1 task done
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.

6 participants