Repository navigation
fix(hip-kernel-provider): reserve FlyDSL census TOMLs with their shard - #14801
Merged
Merged
Conversation
#14573 made hkp_finalize_census_install() fail when a census shard names a TOML that is not placed beside it, and fixed the gfx950 entry. #14111, merged after it without a rebase, added per-arch FlyDSL entries whose generated TOML is passed only as TEST_CONFIG. With legacy CTest labels (no shared/ctest, as in the Windows superbuild) the shard names that TOML and configure fails: hkp: the gfx1151 census shard names hipkernel_flydsl_rmsnorm_gfx1151.toml, but nothing places it beside the shard ... Pass the TOML to hkp_reserve_census_shard(... FILES ...) as the gfx950 entry does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
BrianHarrisonAMD
approved these changes
Oct 30, 2026
✅ All Checks Passed — Ready for Review
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🎉 All checks passed! This PR is ready for review. |
Merged
3 of 5 tasks
This was referenced Oct 31, 2026
8 of 9 tasks
AnaghaRaoAMD
approved these changes
Oct 31, 2026
This was referenced Oct 31, 2026
Contributor
|
I just merged because this is blocking my PRs. |
1 task done
BrianHarrisonAMD
added a commit
that referenced
this pull request
Nov 2, 2026
…g (ALMIOPEN-2922) (#13972) ## Summary Implements [RFC 0021](https://github.com/ROCm/rocm-libraries/blob/develop/projects/hipdnn/docs/rfcs/0021_KernelSlots.md) (kernel slots). An engine can run several kernels in a fixed order, and each position (a slot) picks its kernel independently. The first intended user is split SDPA backward (prep, dK/dV, dQ). JIRA ID : ALMIOPEN-2922 ## Risk Assessment Risk 3: a new feature path in the plugin SDK, behind `HIPDNN_ENABLE_KERNEL_INGESTOR`. That flag is OFF by default in hipDNN and ON in TheRock. Engines without slots are unchanged. Golden tests pin their knob ids, selector revision and winner records, and their packed bundles match `develop` byte for byte. Public API changes are additive, apart from the source changes listed in RFC 0021 section 10. ## ASIC Coverage The change is architecture-independent host code. It was tested on the host with the GPU hidden, and on a gfx90a device for the device-gated tests (gfx950 for an earlier head). A local build targeting gfx90a, gfx950 and gfx1151 runs every packed-load test. CI covers Linux and Windows superbuilds and TheRock gfx94X, gfx950, gfx110X and gfx125X builds; the Windows superbuild currently fails at configure on a `develop` issue (#14801). ## Testing Summary Results are for this head: the single feature commit, rebased onto `develop` f755808. Host suites (Linux, flag ON, GPU hidden): | Suite | Result | |---|---| | `hipdnn_plugin_sdk_tests` | 1637 run, 0 failed, 15 skipped (device-gated or locale) | | hipDNN ctest: SDK, validator, generator, bench and `uhd_gen` (required, not skipped) | 88/88 | | hip-kernel-provider ctest: gtest suites, `hkp_pack` pytest and packaging probes (provider-wide GPU integration tiers not run) | 67 run, 0 failed, 1 skipped (environment) | | `hkp_pack` and packaging-probe pytest, run directly | 386 and 182 passed | Device-gated tests on gfx90a: - Plugin SDK stall, benchmark and timer tests: 45/45. - `hip_kernel_provider_tests`: 1179 passed, 3 skipped (a device code-object capture, and the gfx950 and gfx1151 fixture loads, which the three-arch build runs: 10/10 packed-load tests). This includes `TestMultiLaunchEndToEnd`. - `hip_kernel_provider_integration_tests`: 35/35, including the `kernel_ingestor_engine` suites. Not tested: - Real slotted kernels; the fixtures are synthetic. - `hipdnn_bench --sweep` on a slotted engine. - The RFC section 11 separability check. Like the existing `uhd_gen` tests, the slot tests skip in CI because CI lacks pandas, pyarrow and lightgbm (#14623). They pass locally. ## Testing Checklist - [x] Host suites above - Status: Passed - [x] Device-gated SDK and HKP tests - Devices: gfx90a (gfx950 for an earlier head) - Status: Passed - [x] pre-commit - Status: Passed - [ ] hipDNN superbuild CI, Linux and Windows - Status: Linux running; Windows fails at configure on a `develop` FlyDSL census-shard error, not from this change (fix: #14801) - [ ] TheRock multi-arch CI - Status: Running on the new head ## Technical Changes - **Plugin SDK:** - UED, KDP and UHD 1.1 describe slots. - Each slot has its own catalog, ranker, `<slot>.<field>` knobs and winner records. - A slot program runs the picks over one shared workspace. `SlotProgramBenchmark` times whole programs, and `winners.jsonl` v3 records the results. - **Composition with existing features:** - Slots work with multi-launch kernels, pointer catalogs, staged applicability and the stall-restart benchmark policy. - A slot's kernels may be rocKE, hip or hsaco multi-launch kernels (#14215); `launches` and the launch-set checks apply per slot. The gfx950 hsaco fixture's `dq` slot is a two-launch hsaco `sources` kernel. - Regenerated slotted bundles keep their descriptor ids (#14109). - Slotted plans are not serialized (RFC 0021 section 11). - **RFCs:** RFC 0017 links RFC 0021 and carries the slot edits RFC 0021 lists. - **Tooling:** - `uhd_gen --slot` trains and promotes one slot's ranker. - IngestorGenerator, `hipdnn_validate_descriptors` and `hipdnn_bench` accept slotted engines. - **`hkp_pack`:** packs slotted engines and rejects invalid slot configurations it can detect statically. - **Shared rule corpus:** the `trained_against` slot-provenance rules are one JSON corpus run by the C++ parser, the packaging schema, `hkp_pack` and `uhd_gen`. - **Test packaging:** fixtures built for one arch (gfx950 hsaco, gfx1151 multi-launch) pack only when the build targets that arch. On other builds, packaging probes check that they pack. - **Skills:** the `hipdnn-ingestor-engine` skill names RFC 0017 by repository path, so `validate-skills.py` passes. - **Behavior changes visible on unslotted engines:** - Ingestor log lines now name the engine. - A cached decline logs at INFO instead of TRACE. Logging is off by default. ## Known Issues - PR CI does not build for gfx950 or gfx1151 on Linux, so the packed-load tests of the two single-arch fixtures do not run there. The gfx1151 test would run on the Windows superbuild, which currently fails at configure on a `develop` issue (#14801); both ran in a local build targeting gfx90a, gfx950 and gfx1151 for this head. Until CI covers these arches, changes to those fixtures need a build that targets them.
Contributor
TheRock Submodule Bump ActivityNewest first
|
bartekxk
added a commit
that referenced
this pull request
Nov 5, 2026
… the develop merge The develop merge built only with HIPDNN_ENABLE_KERNEL_INGESTOR=OFF. With it on: - Reserve hipkernel_Gfx950ConvFwd.toml with its census shard (FILES), as develop's #14801 now requires; configure failed without it. - Carry KernelDefinition::prepared/preparedBy through launchKernelDefinition() and null them in the FlyDSL test fixtures: develop's positional constructions predate the fields and failed -Wmissing-field-initializers. - Restore the gfx950AttentionDenseKpackModuleCache() declaration the merge dropped from IngestorKernelCode.hpp. - Pass the graph match's bound tokens to candidate filters: after develop's slot refactor catalog.bound is only set by the caller, so filters saw none (caught by ACandidateFilterNarrowsWhatItsKernelMatcherAdmitted). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The HipDNN Windows Superbuild fails at CMake configure on
developsince #14111 merged:#14573 added that check and moved the gfx950 entry's TOML into
hkp_reserve_census_shard(... FILES ...). #14111's last superbuild run predates #14573, and it merged afterwards without a rebase (the required checks are not strict), so its per-arch FlyDSL entries still pass the generated TOML only asTEST_CONFIG. Only builds with legacy CTest labels (noshared/ctest, as in the Windows superbuild) write the TOML name into the shard text, so Linux is not affected.This PR passes the generated FlyDSL TOML to
hkp_reserve_census_shard(... FILES ...), exactly as the gfx950 entry does.JIRA ID: ALMIOPEN-2953
Testing
descriptor-packaging/tests/test_hkp_census_shard_files.py(theFILESmechanism): 4 passed.develop(runs 41135285646, 41134306713, 41136279489).🤖 Generated with Claude Code