From 49cc26bcac3a26058dc3a820fbfbaef3ece34915 Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Mon, 8 Jun 2026 11:20:51 -0500 Subject: [PATCH 01/13] Add test filter standardization for rocshmem Paired with rocm-systems#6334, which adds native CTest integration for rocSHMEM (tests/test_categories.yaml + apply_ctest_category_labels) and installs relocatable bin/rocshmem/**/CTestTestfile.cmake files carrying the quick/standard/comprehensive/full tier labels. TheRock side: - comm-libs/CMakeLists.txt: pass -DBUILD_CTESTS=${THEROCK_BUILD_TESTING} to the rocshmem subproject so the CTest registration runs and the install-tree CTestTestfile.cmake files are produced (the registration is gated behind BUILD_CTESTS, which defaults OFF). - comm-libs/artifact-rocshmem.toml: include the install-tree CTest files (bin/rocshmem/**), the unit test binary, the CTest wrapper scripts and the device_bitcode HSACOs in the test component so the artifact bundles everything ctest needs (the functional binary and rocshmem_info come from the run component). - install_rocm_from_artifacts.py: add a --rocshmem artifact selector that fetches rocshmem_lib/_run/_test plus OpenMPI (mpirun + libs) for the tests. - fetch_test_configurations.py: add a rocshmem test job driven by the generic test_runner.py (ctest -L from THEROCK_BIN_DIR/rocshmem) on linux multi-GPU runners. - fetch_test_configurations_test.py: relax the single-multi-GPU-job assertion now that rocshmem is a second multi-GPU job alongside rccl. WIP: depends on rocm-systems#6334. Do not merge until #6334 lands and TheRock's rocm-systems source includes it; paired validation runs from #6334 CI by pointing its TheRock ref at users/dravindr/tr_rocshmem. Co-authored-by: Cursor --- .../fetch_test_configurations.py | 14 ++++++++++++++ .../tests/fetch_test_configurations_test.py | 10 +++++++--- build_tools/install_rocm_from_artifacts.py | 19 +++++++++++++++++++ comm-libs/CMakeLists.txt | 4 ++++ comm-libs/artifact-rocshmem.toml | 15 +++++++++++++++ 5 files changed, 59 insertions(+), 3 deletions(-) diff --git a/build_tools/github_actions/fetch_test_configurations.py b/build_tools/github_actions/fetch_test_configurations.py index b2997a538ad..dea9f67faf6 100644 --- a/build_tools/github_actions/fetch_test_configurations.py +++ b/build_tools/github_actions/fetch_test_configurations.py @@ -446,6 +446,20 @@ def _build_container_options(job_config: dict, platform: str) -> dict: # Architectures that we have multi GPU setup for testing "multi_gpu": {"linux": ["gfx94X-dcgpu", "gfx950-dcgpu"]}, }, + # rocSHMEM tests + "rocshmem": { + "job_name": "rocshmem", + "fetch_artifact_args": "--rocshmem --tests", + "timeout_minutes": 30, + "test_script": f"python {_get_script_path('test_runner.py')}", + "platform": ["linux"], + "total_shards_dict": { + "linux": 1, + }, + # rocSHMEM functional/unit tests launch via mpirun with RANKS 2..64, so + # they need a multi-GPU runner (same setup as rccl). + "multi_gpu": {"linux": ["gfx94X-dcgpu", "gfx950-dcgpu"]}, + }, # rocprofiler-sdk tests "rocprofiler-sdk": { "job_name": "rocprofiler-sdk", diff --git a/build_tools/github_actions/tests/fetch_test_configurations_test.py b/build_tools/github_actions/tests/fetch_test_configurations_test.py index 8c3ceccb1a8..3bb4091c3e7 100644 --- a/build_tools/github_actions/tests/fetch_test_configurations_test.py +++ b/build_tools/github_actions/tests/fetch_test_configurations_test.py @@ -283,9 +283,13 @@ def fake_select_weighted_label(labels_config, context_name): rccl = next(j for j in components if j["job_name"] == "rccl") self.assertEqual(rccl["multi_gpu_runner"], "linux-mi300-mgpu-a") - # Verify select_weighted_label was called - self.assertEqual(len(selected_labels), 1) - self.assertEqual(selected_labels[0][1], "gfx94x-multi-gpu") + # Verify select_weighted_label was used for multi-GPU jobs. There may + # be more than one multi-GPU job (e.g. rccl and rocshmem), so assert + # it was called at least once and always with the multi-gpu context. + self.assertGreaterEqual(len(selected_labels), 1) + self.assertTrue( + all(ctx == "gfx94x-multi-gpu" for _, ctx in selected_labels) + ) finally: fetch_test_configurations.select_weighted_label = ( original_select_weighted_label diff --git a/build_tools/install_rocm_from_artifacts.py b/build_tools/install_rocm_from_artifacts.py index 7a12aa0a3f1..410e7de89ee 100644 --- a/build_tools/install_rocm_from_artifacts.py +++ b/build_tools/install_rocm_from_artifacts.py @@ -33,6 +33,7 @@ [--prim | --no-prim] [--rand | --no-rand] [--rccl | --no-rccl] + [--rocshmem | --no-rocshmem] [--rocdecode | --no-rocdecode] [--rocjpeg | --no-rocjpeg] [--rocjitsu | --no-rocjitsu] @@ -358,6 +359,7 @@ def retrieve_artifacts_by_run_id(args): args.mpi, args.rand, args.rccl, + args.rocshmem, args.rocdecode, args.rocjpeg, args.rocjitsu, @@ -447,6 +449,16 @@ def retrieve_artifacts_by_run_id(args): extra_artifacts.append("rand") if args.rccl: extra_artifacts.append("rccl") + if args.rocshmem: + extra_artifacts.append("rocshmem") + # The functional test binary (bin/rocshmem_functional_tests) and + # bin/rocshmem_info live in the _run component; the install-tree + # CTestTestfile.cmake references them via relative paths. + argv.append("rocshmem_run") + # rocSHMEM tests launch via mpirun and link against TheRock's + # vendored OpenMPI, so pull it (with its run component for mpiexec). + extra_artifacts.append("openmpi") + argv.append("openmpi_run") if args.rocprofiler_sdk: extra_artifacts.append("rocprofiler-sdk") extra_artifacts.append("aqlprofile") @@ -788,6 +800,13 @@ def main(argv): action=argparse.BooleanOptionalAction, ) + artifacts_group.add_argument( + "--rocshmem", + default=False, + help="Include 'rocshmem' artifacts", + action=argparse.BooleanOptionalAction, + ) + artifacts_group.add_argument( "--mpi", default=False, diff --git a/comm-libs/CMakeLists.txt b/comm-libs/CMakeLists.txt index 9966b35bd15..b6808a1ca12 100644 --- a/comm-libs/CMakeLists.txt +++ b/comm-libs/CMakeLists.txt @@ -153,6 +153,10 @@ if(THEROCK_ENABLE_ROCSHMEM) "-DEXPLICIT_ROCM_VERSION=${ROCM_MAJOR_VERSION}.${ROCM_MINOR_VERSION}.${ROCM_PATCH_VERSION}" -DBUILD_FUNCTIONAL_TESTS=${THEROCK_BUILD_TESTING} -DBUILD_UNIT_TESTS=${THEROCK_BUILD_TESTING} + # Register functional/unit tests with CTest and install the relocatable + # bin/rocshmem/**/CTestTestfile.cmake files (with quick/standard/ + # comprehensive/full tier labels) that test_runner.py drives via ctest. + -DBUILD_CTESTS=${THEROCK_BUILD_TESTING} -DSOURCE_DIR=${_source_dir} -DPATCHELF=${PATCHELF} -DPython3_EXECUTABLE=${Python3_EXECUTABLE} diff --git a/comm-libs/artifact-rocshmem.toml b/comm-libs/artifact-rocshmem.toml index e3a65f9e715..9b19e8d3e69 100644 --- a/comm-libs/artifact-rocshmem.toml +++ b/comm-libs/artifact-rocshmem.toml @@ -21,4 +21,19 @@ include = [ ] # Tests [components.test."comm-libs/rocshmem/stage"] +include = [ + # Install-tree CTest files: test_runner.py runs `ctest --test-dir bin/rocshmem`, + # whose root CTestTestfile.cmake subdirs into tests/functional and tests/unit. + "bin/rocshmem/**", + # Unit test binary (the functional test binary and rocshmem_info come from the + # run component, fetched via rocshmem_run). + "bin/rocshmem_unit_tests", + # CTest wrapper scripts referenced (by relative path) from the install-tree + # CTestTestfile.cmake, plus the retry helper. + "share/rocshmem/test_wrapper.sh", + "share/rocshmem/unit_test_wrapper.sh", + "share/rocshmem/ctest_with_retry.sh", + # HSACOs used by the device_bitcode functional tests (quick tier). + "share/rocshmem/*.hsaco", +] optional = true From ba457d2a6625b15f2fd56709f9b0aeafab8a4271 Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Mon, 8 Jun 2026 14:19:30 -0500 Subject: [PATCH 02/13] Bump rocm-systems submodule to develop tip (includes rocshmem CTest TSF) Point the rocm-systems submodule to the latest develop tip (068718c) which now contains the merged rocshmem CTest test-filter standardization work (rocm-systems#6334, merge c541756). This lets TheRock build rocshmem with the native CTest infrastructure and exercise the tsf test job end-to-end. Co-authored-by: Cursor --- rocm-systems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rocm-systems b/rocm-systems index 1b2a555677a..068718c153c 160000 --- a/rocm-systems +++ b/rocm-systems @@ -1 +1 @@ -Subproject commit 1b2a555677ae5ed2e859d22db97b12ff69b343bd +Subproject commit 068718c153c644ccbf3eefe5861fa76af129d058 From 6df63da30b3459bd37b5e146462bdb966fc25b57 Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Thu, 11 Jun 2026 14:46:46 -0500 Subject: [PATCH 03/13] Bump rocm-systems submodule to develop tip with SLR (rocshmem#6804) Point the rocm-systems submodule at develop tip 87fa69c, which now includes rocshmem#6804 (Simple Local Runtime). #6804 removes the configure-time MPIEXEC early-return in CTestFunctionalTests.cmake that was force-disabling BUILD_CTESTS and preventing installation of bin/rocshmem/CTestTestfile.cmake. With SLR as the MPI-less fallback, the install-tree CTest file is generated and test_runner.py can find build/bin/rocshmem. Co-authored-by: Cursor --- rocm-systems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rocm-systems b/rocm-systems index 068718c153c..87fa69cde71 160000 --- a/rocm-systems +++ b/rocm-systems @@ -1 +1 @@ -Subproject commit 068718c153c644ccbf3eefe5861fa76af129d058 +Subproject commit 87fa69cde71bf044a35d1734d41ef163a980599f From f6cdf68f2e9d94e88fb865b482855dcc6d892dbf Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Fri, 12 Jun 2026 11:02:29 -0500 Subject: [PATCH 04/13] Point rocm-systems submodule at rocshmem/therock-ci-fix Bump the rocm-systems submodule to rocshmem/therock-ci-fix (51ec214), which fixes the install-tree CTest gating so ctest can discover tests on a no-MPI test host. The install-root CTestTestfile template now gates the mpiexec early-return behind USE_SLR_LAUNCHER, so in SLR mode it falls through to the subdirs() calls and bin/rocshmem tests are listed (previously "No tests found in build/bin/rocshmem"). Co-authored-by: Cursor --- rocm-systems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rocm-systems b/rocm-systems index 87fa69cde71..51ec214b943 160000 --- a/rocm-systems +++ b/rocm-systems @@ -1 +1 @@ -Subproject commit 87fa69cde71bf044a35d1734d41ef163a980599f +Subproject commit 51ec214b9437e7d7d833d911b36e3cf6b0b5d3fa From 812c28be739332e17fd93bc21ffcdcae0837fed7 Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Tue, 30 Jun 2026 13:43:05 -0500 Subject: [PATCH 05/13] Fix rocshmem test artifact paths for functional/unit test binaries The rocshmem functional and unit test executables install to share/rocshmem/ (CMAKE_INSTALL_DATADIR), but artifact-rocshmem.toml referenced them as bin/rocshmem_functional_tests / bin/rocshmem_unit_tests, so neither was packaged into any artifact. At test time the install-tree CTestTestfile.cmake invokes them via ../../../../share/rocshmem/, which was absent, causing 74/77 functional tests to fail with "rocshmem_functional_tests: No such file or directory". Include the binaries at their real share/rocshmem/ paths in the test component and drop the dead bin/rocshmem_functional_tests glob from the run component. Co-authored-by: Cursor --- comm-libs/artifact-rocshmem.toml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/comm-libs/artifact-rocshmem.toml b/comm-libs/artifact-rocshmem.toml index 9b19e8d3e69..b44232f1712 100644 --- a/comm-libs/artifact-rocshmem.toml +++ b/comm-libs/artifact-rocshmem.toml @@ -6,7 +6,6 @@ include = [ [components.run."comm-libs/rocshmem/stage"] include = [ "bin/rocshmem_info", - "bin/rocshmem_functional_tests", "share/rocshmem/rocshmem_functional_driver.sh", ] [components.dbg."comm-libs/rocshmem/stage"] @@ -25,9 +24,12 @@ include = [ # Install-tree CTest files: test_runner.py runs `ctest --test-dir bin/rocshmem`, # whose root CTestTestfile.cmake subdirs into tests/functional and tests/unit. "bin/rocshmem/**", - # Unit test binary (the functional test binary and rocshmem_info come from the - # run component, fetched via rocshmem_run). - "bin/rocshmem_unit_tests", + # Test binaries. Both the functional and unit test executables install to + # share/rocshmem/ (CMAKE_INSTALL_DATADIR), not bin/. The install-tree + # CTestTestfile.cmake invokes them via the relative path + # ../../../../share/rocshmem/rocshmem_*_tests from bin/rocshmem/tests/*/. + "share/rocshmem/rocshmem_functional_tests", + "share/rocshmem/rocshmem_unit_tests", # CTest wrapper scripts referenced (by relative path) from the install-tree # CTestTestfile.cmake, plus the retry helper. "share/rocshmem/test_wrapper.sh", From e8211e4eb913cebfcf6feb646d3b0a1fd33a0e59 Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Thu, 9 Jul 2026 10:54:05 -0500 Subject: [PATCH 06/13] Bump rocm-systems submodule to develop tip (rocshmem CI fixes merged) The rocshmem/therock-ci-fix work was squash-merged into rocm-systems develop, which now contains the install-tree SLR fixes (USE_SLR_LAUNCHER guard in CTestInstallRoot.cmake.in and the ${CMAKE_COMMAND}->env translation for relocatable install-time test commands). Pointing at develop (e5f2ddb) instead of the feature branch also brings the compiler-runtime components (amd-comgr/mirage/rocjitsu) up to date, fixing the Linux build failures caused by the stale therock-ci-fix pin that were skipping all downstream Linux stages and the rocshmem test job. It also makes the submodule pin merge-ready (a develop SHA rather than an unmerged branch). Co-authored-by: Cursor --- rocm-systems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rocm-systems b/rocm-systems index 35bd3e7f18e..e5f2ddbdb06 160000 --- a/rocm-systems +++ b/rocm-systems @@ -1 +1 @@ -Subproject commit 35bd3e7f18e988c58462ba780f7e44aa9365c699 +Subproject commit e5f2ddbdb0662b45b9f1ea9eada90cbb7984023c From f62382238b53274fc506dac7546ce14f4625672c Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Thu, 9 Jul 2026 15:35:28 -0500 Subject: [PATCH 07/13] Add rocshmem to install_rocm_from_artifacts test args namespace The --rocshmem artifact flag is read via args.rocshmem in retrieve_artifacts_by_run_id's any([...]) check, but the test helper _make_run_id_args built its args Namespace without a rocshmem key, causing test_debug_tools_includes_amd_llvm_dev to fail with AttributeError: 'Namespace' object has no attribute 'rocshmem'. Co-authored-by: Cursor --- build_tools/tests/install_rocm_from_artifacts_test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/build_tools/tests/install_rocm_from_artifacts_test.py b/build_tools/tests/install_rocm_from_artifacts_test.py index 301fc5a06d8..de2d4ffea45 100644 --- a/build_tools/tests/install_rocm_from_artifacts_test.py +++ b/build_tools/tests/install_rocm_from_artifacts_test.py @@ -157,6 +157,7 @@ def _make_run_id_args(**overrides) -> argparse.Namespace: prim=False, rand=False, rccl=False, + rocshmem=False, mpi=False, rocdecode=False, rocjpeg=False, From 18a75301ae75cf10364ae2301dd8bffeb754c391 Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Fri, 10 Jul 2026 14:02:09 -0500 Subject: [PATCH 08/13] rocshmem: package test binaries from bin/ (RPATH fix) The functional and unit test executables now install to bin/ (CMAKE_INSTALL_BINDIR) in rocm-systems so their RPATH ($ORIGIN/../lib) resolves the ROCm runtime libs (e.g. libhiprtc.so.7). Update the test artifact manifest to package them from bin/ instead of share/rocshmem/, matching the new install-tree relative path (../../../rocshmem_*_tests). Co-authored-by: Cursor --- comm-libs/artifact-rocshmem.toml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/comm-libs/artifact-rocshmem.toml b/comm-libs/artifact-rocshmem.toml index b44232f1712..4ea00406aaa 100644 --- a/comm-libs/artifact-rocshmem.toml +++ b/comm-libs/artifact-rocshmem.toml @@ -25,11 +25,12 @@ include = [ # whose root CTestTestfile.cmake subdirs into tests/functional and tests/unit. "bin/rocshmem/**", # Test binaries. Both the functional and unit test executables install to - # share/rocshmem/ (CMAKE_INSTALL_DATADIR), not bin/. The install-tree + # bin/ (CMAKE_INSTALL_BINDIR) so their RPATH ($ORIGIN/../lib) resolves the + # ROCm runtime libs (e.g. libhiprtc.so.7). The install-tree # CTestTestfile.cmake invokes them via the relative path - # ../../../../share/rocshmem/rocshmem_*_tests from bin/rocshmem/tests/*/. - "share/rocshmem/rocshmem_functional_tests", - "share/rocshmem/rocshmem_unit_tests", + # ../../../rocshmem_*_tests from bin/rocshmem/tests/*/. + "bin/rocshmem_functional_tests", + "bin/rocshmem_unit_tests", # CTest wrapper scripts referenced (by relative path) from the install-tree # CTestTestfile.cmake, plus the retry helper. "share/rocshmem/test_wrapper.sh", From db8413711f3d0a24a026e3c1351aee0080676141 Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Wed, 15 Jul 2026 12:05:59 -0500 Subject: [PATCH 09/13] rocshmem: test egabriel/therock-ci-fix-for-real-this-time Bump rocm-systems pin to users/egabriel/therock-ci-fix-for-real-this-time (1f5830378), which fixes install-time ctest path resolution by baking in absolute install paths (share/rocshmem/...) instead of moving the test binaries to bin/. Revert the artifact manifest binary paths back to share/rocshmem/ to match that branch's install layout. Co-authored-by: Cursor --- comm-libs/artifact-rocshmem.toml | 11 +++++------ rocm-systems | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/comm-libs/artifact-rocshmem.toml b/comm-libs/artifact-rocshmem.toml index 4ea00406aaa..2044a40ab88 100644 --- a/comm-libs/artifact-rocshmem.toml +++ b/comm-libs/artifact-rocshmem.toml @@ -25,12 +25,11 @@ include = [ # whose root CTestTestfile.cmake subdirs into tests/functional and tests/unit. "bin/rocshmem/**", # Test binaries. Both the functional and unit test executables install to - # bin/ (CMAKE_INSTALL_BINDIR) so their RPATH ($ORIGIN/../lib) resolves the - # ROCm runtime libs (e.g. libhiprtc.so.7). The install-tree - # CTestTestfile.cmake invokes them via the relative path - # ../../../rocshmem_*_tests from bin/rocshmem/tests/*/. - "bin/rocshmem_functional_tests", - "bin/rocshmem_unit_tests", + # share/rocshmem/ (CMAKE_INSTALL_DATADIR). The install-tree CTestTestfile.cmake + # invokes them via absolute install paths baked in at configure time + # (@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_DATADIR@/rocshmem/rocshmem_*_tests). + "share/rocshmem/rocshmem_functional_tests", + "share/rocshmem/rocshmem_unit_tests", # CTest wrapper scripts referenced (by relative path) from the install-tree # CTestTestfile.cmake, plus the retry helper. "share/rocshmem/test_wrapper.sh", diff --git a/rocm-systems b/rocm-systems index 90992fca21a..1f5830378b9 160000 --- a/rocm-systems +++ b/rocm-systems @@ -1 +1 @@ -Subproject commit 90992fca21a8ad228375e3e6ad65bb566c022072 +Subproject commit 1f5830378b97772c221cfdb06295c0554e1f234a From d16b3aece7ab22652b8f3e0e4a8dc555be68814a Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Fri, 17 Jul 2026 11:08:39 -0500 Subject: [PATCH 10/13] rocshmem: bump pin to therock-ci-fix (bin/ install), package binaries from bin/ Bump rocm-systems pin to users/egabriel/therock-ci-fix-for-real-this-time (3f2eb96e5), which installs the functional/unit test executables to bin/ (CMAKE_INSTALL_BINDIR) so their RPATH ($ORIGIN/../lib) resolves the ROCm runtime libs. Update the artifact manifest to package them from bin/. Note: that branch still emits the executable's install-time ctest path as ../../../../share/rocshmem/rocshmem_*_tests while the binaries now install to bin/, so the tests may not locate the executable until the generator's relative path is corrected to ../../../rocshmem_*_tests. Co-authored-by: Cursor --- comm-libs/artifact-rocshmem.toml | 9 ++++----- rocm-systems | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/comm-libs/artifact-rocshmem.toml b/comm-libs/artifact-rocshmem.toml index 2044a40ab88..22e20a755db 100644 --- a/comm-libs/artifact-rocshmem.toml +++ b/comm-libs/artifact-rocshmem.toml @@ -25,11 +25,10 @@ include = [ # whose root CTestTestfile.cmake subdirs into tests/functional and tests/unit. "bin/rocshmem/**", # Test binaries. Both the functional and unit test executables install to - # share/rocshmem/ (CMAKE_INSTALL_DATADIR). The install-tree CTestTestfile.cmake - # invokes them via absolute install paths baked in at configure time - # (@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_DATADIR@/rocshmem/rocshmem_*_tests). - "share/rocshmem/rocshmem_functional_tests", - "share/rocshmem/rocshmem_unit_tests", + # bin/ (CMAKE_INSTALL_BINDIR) so their RPATH ($ORIGIN/../lib) resolves the + # ROCm runtime libs (e.g. libhiprtc.so.7). + "bin/rocshmem_functional_tests", + "bin/rocshmem_unit_tests", # CTest wrapper scripts referenced (by relative path) from the install-tree # CTestTestfile.cmake, plus the retry helper. "share/rocshmem/test_wrapper.sh", diff --git a/rocm-systems b/rocm-systems index 1f5830378b9..3f2eb96e5a1 160000 --- a/rocm-systems +++ b/rocm-systems @@ -1 +1 @@ -Subproject commit 1f5830378b97772c221cfdb06295c0554e1f234a +Subproject commit 3f2eb96e5a162a3d31d960e6dc21ca80709c6c80 From e45ece3a3a799652a499ed5778b39ae7c04e755b Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Mon, 20 Jul 2026 15:59:08 -0500 Subject: [PATCH 11/13] rocshmem: bump pin to therock-ci-fix with executable relative-path fix Bump rocm-systems pin to users/egabriel/therock-ci-fix-for-real-this-time (83918cb6b), which corrects the install-time ctest executable path to ../../../rocshmem_*_tests to match the bin/ install location. Combined with the bin/ RPATH ($ORIGIN/../lib), the functional/unit test binaries should now be located and able to load the ROCm runtime libs (e.g. libhiprtc.so.7). Co-authored-by: Cursor --- rocm-systems | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rocm-systems b/rocm-systems index 3f2eb96e5a1..83918cb6b99 160000 --- a/rocm-systems +++ b/rocm-systems @@ -1 +1 @@ -Subproject commit 3f2eb96e5a162a3d31d960e6dc21ca80709c6c80 +Subproject commit 83918cb6b996a4d350f244c6a0ad970cd6c9f161 From f739bf16662f6dad83b2d7d1ee3608d570355930 Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Fri, 24 Jul 2026 09:09:14 -0500 Subject: [PATCH 12/13] rocshmem: put install lib dir on LD_LIBRARY_PATH for backend probe The rocshmem test wrappers run rocshmem_info to auto-detect the backend. rocshmem_info is installed via install(PROGRAMS ...) rather than as a target, so it keeps its build-tree RPATH and fails to load libamdhip64.so.7 in the relocated test artifact (non-fatal, but noisy: 85 warnings/run). Add a rocshmem COMPONENT_OVERRIDES entry prepending /lib to LD_LIBRARY_PATH so the probe resolves the ROCm runtime libs. Co-authored-by: Cursor --- .../test_executable_scripts/test_runner.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/build_tools/github_actions/test_executable_scripts/test_runner.py b/build_tools/github_actions/test_executable_scripts/test_runner.py index ff0cac8510e..08f60b07621 100644 --- a/build_tools/github_actions/test_executable_scripts/test_runner.py +++ b/build_tools/github_actions/test_executable_scripts/test_runner.py @@ -262,6 +262,18 @@ ], }, }, + # rocshmem's functional/unit test wrappers run rocshmem_info to auto-detect + # the backend. rocshmem_info is installed via install(PROGRAMS ...) (not as a + # target), so it keeps its build-tree RPATH and can't find libamdhip64.so.7 + # in the relocated test artifact. Prepend the install lib dir to + # LD_LIBRARY_PATH so the probe resolves the ROCm runtime libs. (The test + # binaries themselves install to bin/ as targets and resolve libs via + # $ORIGIN/../lib, so this only fixes the backend-detection probe.) + "rocshmem": { + "additional_env_paths": { + "LD_LIBRARY_PATH": [["lib"]], + }, + }, } From 309a77bd9c952a9c2387624cd4cd451a457e0954 Mon Sep 17 00:00:00 2001 From: dileepr1 Date: Fri, 24 Jul 2026 12:11:47 -0500 Subject: [PATCH 13/13] rocshmem: also add bundled sysdeps lib dir to LD_LIBRARY_PATH The rocshmem_info backend probe (installed via install(PROGRAMS ...), so it keeps a non-relocatable build-tree RPATH) needs more than the ROCm runtime libs: it also links librocm_sysdeps_numa.so.1, which lives under lib/rocm_sysdeps/lib in the relocated artifact. Add that dir to the rocshmem LD_LIBRARY_PATH override alongside lib/ so the probe resolves all its libs. Co-authored-by: Cursor --- .../test_executable_scripts/test_runner.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/build_tools/github_actions/test_executable_scripts/test_runner.py b/build_tools/github_actions/test_executable_scripts/test_runner.py index 08f60b07621..d765ae1a877 100644 --- a/build_tools/github_actions/test_executable_scripts/test_runner.py +++ b/build_tools/github_actions/test_executable_scripts/test_runner.py @@ -264,14 +264,18 @@ }, # rocshmem's functional/unit test wrappers run rocshmem_info to auto-detect # the backend. rocshmem_info is installed via install(PROGRAMS ...) (not as a - # target), so it keeps its build-tree RPATH and can't find libamdhip64.so.7 - # in the relocated test artifact. Prepend the install lib dir to - # LD_LIBRARY_PATH so the probe resolves the ROCm runtime libs. (The test - # binaries themselves install to bin/ as targets and resolve libs via - # $ORIGIN/../lib, so this only fixes the backend-detection probe.) + # target), so it keeps its build-tree RPATH and can't find its shared libs + # (libamdhip64.so.7, librocm_sysdeps_numa.so.1, ...) in the relocated test + # artifact. Prepend the install lib dir and the bundled sysdeps lib dir to + # LD_LIBRARY_PATH so the probe resolves the ROCm runtime + sysdeps libs. + # (The test binaries themselves install to bin/ as targets and resolve libs + # via their relocatable RPATH, so this only fixes the backend-detection probe.) "rocshmem": { "additional_env_paths": { - "LD_LIBRARY_PATH": [["lib"]], + "LD_LIBRARY_PATH": [ + ["lib"], + ["lib", "rocm_sysdeps", "lib"], + ], }, }, }