Repository navigation
docs(mmq): Verify the #29953 y-tile guard under hipcc for #455 - #456
Open
glennneuber wants to merge 2 commits into
Open
glennneuber wants to merge 2 commits into
glennneuber wants to merge 2 commits into
Conversation
…ck-on error, and a variant without one Answers #455 on gfx1151 (ROCm 7.2.1). mmq-29953-guard-verify-hip.sh runs the nvcc script's six builds of mmq.cu with hipcc, both with CMake's own compile command and with the minimal one. - The guard fails the build in exactly the tables nvcc names, in the host pass only, and costs 0.8 s of compile time and no code: mmq.o is byte-identical with it on and off. - Clang reports one failing type per table, then a knock-on error from the outer static_assert, worded as a constexpr step-limit failure is. VARIANT=instantiate drops that static_assert for an explicitly instantiated class; clang then reports 220 guard errors and nothing else, as nvcc does. - #455's mutation 5 cannot fire on rdna3_5 (J = 64 at 192 threads needs no padding); 160 threads does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…a script that survives the fold Follows the CUDA host's nvcc run of the instantiate variant on #455 (same counts, so it folds the variant into mmq-29953-y-tile-guard.patch): - build 5c is the nvcc script's build 5, blackwell at 192 threads: hipcc fails it with 1 guard error naming only blackwell, so both compilers agree on both single-table mutations; - VARIANT=instantiate applies nothing to a patch that already has the variant, checked against a local fold; - every run records the patch's blob (729f22c as #455 published it), so the results stay true after the fold; - the README says nvcc gives the same counts with either form. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5 tasks done
This branch has not been deployed
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.
Wants review before merge. This PR is documentation only: a hipcc verify script and its results for #455. It changes no shipped code. The guard variant it measures also passes on nvcc (#455).
The change
#455 asked whether
mmq-29953-y-tile-guard.patchcompiles and fires under hipcc. This PR adds the script that answers that question, and the results:docs/maxusai/tasks/mmq-29953-guard-verify-hip.shcompilesmmq.cuwith hipcc for gfx1151 and scores each build the waymmq-29953-guard-verify.shdoes. It runs that script's six builds, and splits build 5 three ways: rdna3_5 at 192 and 160 threads, and blackwell at 192. It uses either CMake's own compile command or a minimalhipcccommand. It records the blob of the patch it applies, and checks thatmmq.ois byte-identical with the guard on and off.VARIANT=instantiateapplies the variant below, and does nothing to a patch that already has it.mmq-successor-results/rocm-gfx1151/verify-29953-guard.txtholds the runs: the patch as published (blob729f22c2) and the variant, each with both commands, and one run against a local fold of the variant into the patch.The measured effect
VARIANT=instantiateJblocks; helper rounded to one warpThe knock-on error is the guard's outer
static_assert, which fails after a per-type assertion fails. The variant removes thatstatic_assertand uses an explicitly instantiated class instead. The guard adds 0.8 s to each compile (2.89 s against 2.06 s) and no code.Verified on CUDA
The CUDA host compiled the variant with nvcc for sm_120. Its results match the hipcc results above, table for table, including rdna3_5 at 160 threads (#455). The CUDA host will fold the variant into
mmq-29953-y-tile-guard.patch. After that, this script runs the folded patch withoutVARIANT.amd-server/rocm🤖 Generated with Claude Code