Skip to content

fix(intrinsics): decouple remaining ABI IDs from variant order - #1093

Merged
nihalpasham merged 1 commit into
NVIDIA:mainfrom
uurl:fix/decouple-remaining-abi-ids
Aug 28, 2026
Merged

nihalpasham merged 1 commit into
NVIDIA:mainfrom
uurl:fix/decouple-remaining-abi-ids

Conversation

@uurl

@uurl uurl commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Closes #604

Summary

Finish decoupling compact-family ABI assignment from canonical variant
position.

The remaining register MMA, sparse MMA, and cluster-sreg expansions now leave
generated ABI IDs unbound and rely on the existing ABI ledger binding by
catalog identity.

Canonical admission checks continue to enforce semantic membership, ordering,
and completeness, but no longer derive ABI identity from variant position.

This completes the remaining positional ABI-ID coupling described in #604,
following #1038.

Validation

  • cargo fmt --all -- --check
  • cargo test -p cuda-intrinsics-gen (293 passed)
  • cargo run -p cuda-intrinsics-gen -- check
  • cargo run -p cuda-intrinsics-gen -- check-abi-history --base-ref upstream/main
  • git diff --check upstream/main..HEAD
  • intrinsics/abi-v1.toml unchanged
  • generated intrinsic outputs unchanged

Signed-off-by: Raul Estrada <raulestradaa@gmail.com>
@nihalpasham nihalpasham added bug Something isn't working build-related Build scripts, toolchain discovery, or compilation setup intrinsics Device intrinsics and libdevice math mappings labels Aug 24, 2026
@nihalpasham

nihalpasham commented Aug 28, 2026 •

Copy link
Copy Markdown
Collaborator

Verified complete:

  • crate-wide, zero positional ABI derivation left in production code (the remaining i{:04} + index sites are test fixtures)
  • the binder fails closed when a variant has no ledger entry, and the ledger identity checks (catalog ID, operation key, signature) still guard every record
  • feat(intrinsics): add ex2 approximate f16 #1104 landing ex2.approx.f16 through the sibling mechanism is real-world proof the binder handles family growth

This is the #1038 remainder and closes #604.

Sequencing, important: #1139 reintroduces this pattern (first_abi_id = "i1017", IDs as i1017 + index) in the same files. This PR lands first; #1139 adopts blank-ID + bind_generated_abi_ids (noted there too).

On our side at landing: the byte-identical claim was made on a 2026-08-20 base and main has merged #1104/#1085 since (both touched resolve.rs), so we rerun check, check-abi-history, and the crate tests on the merged tree. Post-merge tidy-ups we'll take: delete the now-inert first_abi_id lines from the six overlay shards, and make RegisterMmaRecipe.abi_id optional so the five-ID skip list can go.

@nihalpasham nihalpasham left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-proven on the merged tree (with #1104/#1085/#1186/#1105 in): outputs byte-identical, ABI history preserves all 1016 entries, zero positional derivation outside test fixtures; CI green. Merging ahead of #1139 per the ledger sequencing.

@nihalpasham
nihalpasham merged commit 8019810 into NVIDIA:main Aug 28, 2026
49 checks passed
@uurl
uurl deleted the fix/decouple-remaining-abi-ids branch August 31, 2026 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working build-related Build scripts, toolchain discovery, or compilation setup intrinsics Device intrinsics and libdevice math mappings

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Canonical variant lists assign ABI IDs by position, which conflicts with the append-only ledger

2 participants