[AIMIGRAPHX-1186] TheRock packaging: amdrocm-migraphx naming + drop weak deps (per-arch packaging in UFB)#5086
[AIMIGRAPHX-1186] TheRock packaging: amdrocm-migraphx naming + drop weak deps (per-arch packaging in UFB)#5086kentqian wants to merge 5 commits into
Conversation
…ng weak deps(recommend/suggest) to hard deps
…packaging (rfc0009)
There was a problem hiding this comment.
Pull request overview
This pull request updates the TheRock packaging path in CMakeLists.txt (MIGRAPHX_PACKAGE_BACKEND=therock) to shift per-GPU dependency selection to per-arch meta packages with hard dependencies, and aligns the TheRock package naming with the amdrocm-* ecosystem (RFC0009). The default (non-TheRock) ROCm packaging path is intended to remain functionally unchanged.
Changes:
- Switch TheRock package naming from
MIGraphXtoamdrocm-migraphxand plumb the package name intorocm_create_package(NAME ...). - For per-arch mode, create per-arch meta package components (e.g.,
gfx90a) plus anallmeta component, installing a small README into each component’s doc dir. - Retain the existing device-all dependency behavior when
MIGRAPHX_THEROCK_GPU_ARCHis empty.
| install(FILES ${_MGX_META_DOC} | ||
| DESTINATION share/doc/${_MGX_PKG_NAME}-${mgx_gpu_arch} | ||
| COMPONENT ${mgx_gpu_arch}) |
| install(FILES ${_MGX_META_DOC} | ||
| DESTINATION share/doc/${_MGX_PKG_NAME}-all | ||
| COMPONENT all) |
| # Legacy ROCm packaging. | ||
| set(_MGX_PKG_NAME "MIGraphX") |
Regressions detected 🔴 * No develop baseline was found for this PR's branch point; compared against the latest available develop run instead. |
|
…move per-arch to UFB
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #5086 +/- ##
===========================================
- Coverage 92.90% 92.90% -0.00%
===========================================
Files 603 603
Lines 32526 32528 +2
===========================================
+ Hits 30217 30218 +1
- Misses 2309 2310 +1 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (1)
CMakeLists.txt:475
- The else-branch comment was changed to "Legacy ROCm packaging", but this is still the default/traditional packaging backend. Calling it "legacy" is potentially misleading in configuration output and future maintenance.
# Legacy ROCm packaging.
set(_MGX_PKG_NAME "MIGraphX")
| set(MIGRAPHX_THEROCK_GPU_ARCH "" CACHE STRING | ||
| "TheRock GPU arch(es) for per-GPU package dependencies. \ | ||
| Semicolon-separated list (e.g. gfx90a;gfx942;gfx950) for per-GPU deps, \ | ||
| or empty for device-all meta-package deps.") |
| # Self-contained per-arch packages (amdrocm-migraphx-gfxNNN) and their per-GPU | ||
| # amdrocm-* deps are produced by the UFB Dockerfile cpack loop: one fat build, | ||
| # repackaged once per arch. Here we set only the base name + arch-neutral | ||
| # runtime dep; the device-all deps below are the standalone default and are | ||
| # overridden per-arch (amdrocm-dnn/blas-gfxNNN) at cpack time. |
| # Only arch-neutral runtime deps are declared here (amdrocm-runtime), since | ||
| # that is the only component published as an arch-neutral package. | ||
| # The device libraries (MIOpen/rocBLAS) exist ONLY as per-arch packages | ||
| # (amdrocm-dnn-gfxNNN / amdrocm-blas-gfxNNN) with no arch-neutral variant, | ||
| # so they are intentionally omitted here. To produce a package with device |
Summary
Technical Details
One fat compile with multi-archs; UFB re-runs cpack once per GPU arch →
amdrocm-migraphx-gfxNNN, each hard-depending on that arch'samdrocm-dnn/blas-gfxNNN+amdrocm-runtime.Compatibility / scope
Arch-specific dependencies (moved out of CMake)
amdrocm-dnn-gfxNNN/amdrocm-blas-gfxNNN) with no arch-neutral variant, so CMake now declares only the arch-neutralamdrocm-runtimedependency.amdrocm-dnn-<arch>,amdrocm-blas-<arch>).Changelog Category
Add a
CHANGELOG.mdentry for any option other thanNot ApplicableFollow the LLVM AI Tool Use Policy for contributions using AI.