Skip to content

Share gfx1250 package ownership across bootstrap and kpack - #11801

Merged
marbre merged 2 commits into
developfrom
users/marbre/gfx1250-strict-support
Sep 18, 2026
Merged

marbre merged 2 commits into
developfrom
users/marbre/gfx1250-strict-support

Conversation

@marbre

@marbre marbre commented Sep 17, 2026

Copy link
Copy Markdown
Member

Motivation

Register gfx1250-strict as a distinct target sharing the gfx1250 package bundle. Preserve gfx1250 for numeric lookup.

Technical Details

Provide dependency-free ownership metadata for packaging consumers and require bootstrap 0.3.0 for wheel splitting. Group supplied payloads into owner wheels, preserve target-specific names, and reject conflicting paths before copying.

Align variant metadata, dependency markers, and bootstrap provider output on the shared package owner.

Selecting a shared package owner does not guarantee that a particular target's payload is present; the build and publication must supply appropriate contents.

Issue Tracking

Fixes #11758

Test Plan

  • python -m pytest -q -p no:cacheprovider shared/kpack/tests \ python/rocm-bootstrap/python/rocm_bootstrap/tests

Test Result

  • 1302 passed, 4 existing skips when run from shared/kpack.
  • Repository-root execution encounters three existing fixture errors from working-directory-relative asset paths.
  • Cover gfx1250 and gfx1250-strict payloads individually and together using directory output, with separate checks for identical files, conflicting contents, and file/directory overlaps.
  • Cover feature-qualified inputs, shared-owner metadata, and bundle lookup. Numeric lookup expectations are independent of ownership.
  • Cover numeric detection, explicit overrides, and missing or disabled detection in bootstrap tests. Both metadata-generation paths have focused checks, with one provider/metadata agreement regression.

Submission Checklist

Generated with Codex

## Motivation

Register gfx1250-strict as a distinct target sharing the gfx1250 package
bundle. Preserve gfx1250 for numeric lookup.

## Technical Details

Provide dependency-free ownership metadata for packaging consumers and
require bootstrap 0.3.0 for wheel splitting. Group supplied payloads
into owner wheels, preserve target-specific names, and reject
conflicting paths before copying.

Align variant metadata, dependency markers, and bootstrap provider
output on the shared package owner.

Selecting a shared package owner does not guarantee that a particular
target's payload is present; the build and publication must supply
appropriate contents.

## Issue Tracking

Fixes #11758

## Test Plan

- python -m pytest -q -p no:cacheprovider shared/kpack/tests \
    python/rocm-bootstrap/python/rocm_bootstrap/tests

## Test Result

- 1302 passed, 4 existing skips when run from shared/kpack.
- Repository-root execution encounters three existing fixture errors
  from working-directory-relative asset paths.
- Cover gfx1250 and gfx1250-strict payloads individually and together
  using directory output, with separate checks for identical files,
  conflicting contents, and file/directory overlaps.
- Cover feature-qualified inputs, shared-owner metadata, and bundle
  lookup. Numeric lookup expectations are independent of ownership.
- Cover numeric detection, explicit overrides, and missing or disabled
  detection in bootstrap tests. Both metadata-generation paths have
  focused checks, with one provider/metadata agreement regression.

## Submission Checklist

- [x] Look over the contributing guidelines at
  https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md.

Generated with Codex
@marbre
marbre requested a review from ScottTodd September 17, 2026 20:45
@therock-pr-bot

Copy link
Copy Markdown

✅ All Policy Checks Passed

Check Status Details
📝 PR Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —

🎉 All policy checks passed!

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

🙋 Wish to Override Policy?

Comment thread python/rocm-bootstrap/README.md Resolved
marbre added a commit to ROCm/TheRock that referenced this pull request Sep 17, 2026
SDK build and installed metadata need the same ownership rules as kpack
and bootstrap. Load the shared ownership module from rocm-systems and
embed its source into generated SDK metadata so installed packages
remain self-contained without a bootstrap or build-tools dependency.

The rocm-systems change in ROCm/rocm-systems#11801 must land first,
followed by a rocm-systems submodule bump containing that change, before
this commit lands. The submodule bump is not included here.

Direct bootstrap imports remain a follow-up under #4865.

Progress on #8278.

Test plan:
- python -m pytest -q -p no:cacheprovider \
    build_tools/tests/sdk_targets_test.py \
    build_tools/tests/py_packaging_test.py \
    build_tools/github_actions/tests/expand_amdgpu_families_test.py

Test results:
- 100 passed with the companion rocm-systems checkout at ada5b1dc5ef.
- Generated SDK metadata runs under python -I -S without importing
  bootstrap or TheRock build tools.
- Ownership parity and invalid embedding-marker checks pass.
@marbre

marbre commented Sep 18, 2026

Copy link
Copy Markdown
Member Author

Relevant tests pass, rocprofiler tests failing is unrelated to the changes.

@marbre
marbre merged commit 908a970 into develop Sep 18, 2026
59 of 61 checks passed
@marbre
marbre deleted the users/marbre/gfx1250-strict-support branch September 18, 2026 00:02
@systems-assistant

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

marbre added a commit to ROCm/TheRock that referenced this pull request Oct 30, 2026
## Motivation

Family selection must include both gfx1250 targets for builds,
distributions, and artifact fetching. Default test compilation includes
strict along with the other registered targets. Explicit individual
target selections retain their own payload identity.

Closes #8278

## Technical Details

Prerequisites before landing:
- ~~#8325: shared SDK ownership.~~ (superseded)
- #8377: centralized target ownership.
- #8327: native package ownership.
- #8328: tarball ownership.
- ~~A rocm-systems submodule bump containing ROCm/rocm-systems#11801.~~
**(landed)**
- Established broader component readiness for family enablement.

## Test Plan

Fresh compiler/HIP/RAND builds and SDK, DEB/RPM, and tarball validation
passed on the integration branch with temporary family membership. The
exact family enablement was then integrated for a combined build with
RAND tests and target-neutral hipthreads. Test target overrides were
left empty to exercise the default registered-target list. These checks
do not establish full component or GPU execution support.

- python -m pytest -q -p no:cacheprovider
build_tools/tests/cmake_amdgpu_targets_test.py
build_tools/tests/artifact_manager_tool_test.py
build_tools/github_actions/tests/configure_multi_arch_ci_test.py
- cmake --build ../therock-build-rand-tests-gfx125X-dcgpu --target
artifact-rand artifact-hipthreads
-
../therock-build-rand-tests-gfx125X-dcgpu/compiler/amd-llvm/dist/lib/llvm/bin/llvm-objdump
--offloading
../therock-build-rand-tests-gfx125X-dcgpu/math-libs/hipthreads/stage/lib/hipthreads/libhipthreads.a
- python -m rocm_kpack.tools.verify_artifacts --artifacts-dir
../therock-build-rand-tests-gfx125X-dcgpu/artifacts --verbose
--clang-offload-bundler
../therock-build-rand-tests-gfx125X-dcgpu/compiler/amd-llvm/dist/lib/llvm/bin/clang-offload-bundler

## Test Result

- 171 passed and 1 existing test skipped with umask 022.
- rocRAND and hipRAND tests compiled for both gfx1250 targets. Each
target's test kpack contains 34 entries with only its target identity.
- Target-neutral hipthreads compiled with the default test target list.
Its library contains exactly 29 distinct device images, including
separate gfx1250 and gfx1250-strict images.
- All four artifact verifier checks passed.
- No GPU tests were executed.

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/TheRock/blob/main/CONTRIBUTING.md.

Generated with Codex
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.

Align bootstrap target detection

2 participants