[Triton/Gluon] [Config] Drop no-op kpack from RDNA GEMM configs - #5917
Conversation
🏷️ CI GuideRuns automatically on every PR:
Extended tests (opt-in via labels):
One backend per PR: PR title tags & labels: |
|
LGTM |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Fused blockscale paths require matrix_instr_nonkdim, and the configuration contract also needs resolution for its omission.
Review effort: Lite
Findings: 3
Open (3)
What changed in this PR
This PR removes kpack and matrix_instr_nonkdim entries from RDNA Triton GEMM configuration files.
Changes:
- Cleans gfx1100, gfx1151, and gfx1201 GEMM configurations.
- Preserves other tuning values and formatting.
- Updates standard, blockscale, preshuffled, and batched configurations.
| File | Change |
|---|---|
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8/GEMM-A8W8-N=6144-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8/GEMM-A8W8-N=4096-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8/GEMM-A8W8-N=4096-K=14336.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8/GEMM-A8W8-N=28672-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8/DEFAULT.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=8192-K=8192.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=8192-K=32768.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=8192-K=1024.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=7168-K=256.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=7168-K=2304.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=7168-K=2048.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=7168-K=18432.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=7168-K=16384.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=6144-K=2048.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=6144-K=1536.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=512-K=7168.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=512-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=4608-K=7168.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=4096-K=7168.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=4096-K=512.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=4096-K=256.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=4096-K=1024.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=36864-K=7168.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=3584-K=512.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=32768-K=8192.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=32768-K=512.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=3072-K=6144.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=3072-K=1536.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=2624-K=6144.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=24576-K=1536.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=2112-K=7168.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=2048-K=2048.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=16384-K=1536.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=1536-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=1024-K=8192.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=1024-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale/DEFAULT.json |
Removes targeted keys; fused-wrapper compatibility remains unresolved. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale_preshuffled/GEMM-A8W8_BLOCKSCALE_PRESHUFFLED-N=6144-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale_preshuffled/GEMM-A8W8_BLOCKSCALE_PRESHUFFLED-N=4096-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale_preshuffled/GEMM-A8W8_BLOCKSCALE_PRESHUFFLED-N=4096-K=12288.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale_preshuffled/GEMM-A8W8_BLOCKSCALE_PRESHUFFLED-N=24576-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/gemm_a8w8_blockscale_preshuffled/DEFAULT.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/batched_gemm_a8w8_a_per_token_group_prequant_w_per_batched_tensor_quant/DEFAULT.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/batched_gemm_a8w8_a_per_token_group_prequant_w_per_batched_tensor_quant/BATCHED_GEMM-A8W8-A_PER_TOKEN_GROUP_PREQUANT_W_PER_BATCHED_TENSOR_QUANT-N=512-K=128.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1201/triton/gemm/batched_gemm_a8w8_a_per_token_group_prequant_w_per_batched_tensor_quant/BATCHED_GEMM-A8W8-A_PER_TOKEN_GROUP_PREQUANT_W_PER_BATCHED_TENSOR_QUANT-N=128-K=512.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1151/triton/gemm/gemm_a8w8/DEFAULT.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1151/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=8192-K=1024.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1151/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=512-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1151/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=4096-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1151/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=4096-K=256.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1151/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=4096-K=1024.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1151/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=2048-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1151/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=16384-K=1024.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1151/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=1536-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1151/triton/gemm/gemm_a8w8_blockscale/DEFAULT.json |
Removes targeted keys; fused-wrapper compatibility remains unresolved. |
aiter/ops/triton/configs/gfx1100/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=8192-K=1024.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1100/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=512-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1100/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=4096-K=256.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1100/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=4096-K=1024.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1100/triton/gemm/gemm_a8w8_blockscale/GEMM-A8W8_BLOCKSCALE-N=1536-K=4096.json |
Removes targeted configuration keys. |
aiter/ops/triton/configs/gfx1100/triton/gemm/gemm_a8w8_blockscale/DEFAULT.json |
Removes targeted keys; fused-wrapper compatibility remains unresolved. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Restored The shared configs also feed The final tree is identical to the previously validated kpack-only commit |
With #5917 and the previous commit, gfx1100, gfx1101, gfx1150, gfx1151, gfx1200 and gfx1201 carry no kpack, so the three passages saying the RDNA trees still do are updated: kpack is a no-op on any WMMA target, only gfx1250 has entries left, and dropping one needs no retune.

Motivation
Follow up on #5557, as suggested by @amd-xavierwang and requested by @azaidy.
kpackis a Triton AMD backend compiler option used in MFMA lowering. It does not affect the generated code for the gfx1151/gfx1201 GEMM configs in this change, but is still present in 52 config files. Some buckets containkpack, while others in the same file do not.This PR extends the
kpackcleanup applied to gfx1100 blockscale configs in #5217 to the remaining gfx1151/gfx1201 GEMM configs.Technical Details
Removed 397
kpackentries from 52 JSON files:Affected families:
gemm_a8w8(1 file),gemm_a8w8_blockscale(10).gemm_a8w8(5),gemm_a8w8_blockscale(32),gemm_a8w8_blockscale_preshuffled(1),batched_gemm_a8w8_a_per_token_group_prequant_w_per_batched_tensor_quant(3).The diff only removes
kpackentries and the trailing comma of the preceding property where needed. Also verified that:kpackremoved.git diff --checkpasses.matrix_instr_nonkdimis retained. It is listed among the required GEMM keys inaiter/ops/triton/configs/CLAUDE.md.No kernel, Python, test or documentation files are changed.
Test Plan
Environment
rocm/pytorch:rocm7.2.4_ubuntu24.04_py3.12_pytorch_release_2.10.0sha256:4449f856653602317e4101a76fce599c7fcd58ccec2e539951fce5f73083179e2.10.0+rocm7.2.4.git3d3aa8333.8.0+amd.rocm7.2.0.git7cb7b059, installed usinginstall_triton.shGPU tests and benchmarks compared upstream main at
8253efc4with the kpack-only commit64e67f5e, using separate Triton caches. The restored branch atef6646fc8has exactly the same Git tree as64e67f5e; the results below are from that original validation. Focused fused-consumer checks were rerun after restoration (see below):Validation
kpackand compared TTIR, TTGIR, LLVM IR, and AMDGCN. As a control,kpack=1vskpack=2on gfx942 produces different output.test_gemm_a8w8_blockscale.py(Triton path),test_gemm_a8w8.py, andtest_batched_gemm_a8w8_a_per_token_group_prequant_w_per_batched_tensor_quant.py, compared per nodeid between baseline and branch.M_*bucket, plus the first M past each bucket boundary. It calls the public wrappers withconfig=None, compares results against the torch reference and the baseline output, and verifies that the config loaded on the branch contains nokpack. This includes the K<512 shapes that the existing blockscale test skips.op_tests/op_benchmarks/tritonbenches for representative shapes, 5 runs per revision, each in a separate process.Test Result
Offline ISA: identical at every stage for all 135 gfx1151 and all 312 gfx1201 config entries. The gfx942 control differs, as expected. The 447 entries include 397 entries with
kpackremoved and 50 controls that already omitted it. The final comparison used a fresh process per compile call.Harness: all 52 changed files were exercised on their target GPU.
No config loaded on the branch contains
kpack. The K<512 cases (40 on gfx1201, 26 on gfx1151) pass as well.pytest: per-nodeid results are identical between baseline and branch on both GPUs.
All failing nodeids were reproduced on the upstream main baseline (
8253efc4) in the same test environment. No new failing nodeids were introduced.shuffle=Truecases fail because the preshuffled default config is absent.GROUP_K must equal BLOCK_SIZE_K.Fused-consumer checks after restoration: on gfx1201 at
ef6646fc8, all 4 mul/add, 2 FP8 BMM+RoPE and 2 split-cat cases passed. These call existing test functions directly. The 6 mul/add and BMM+RoPE cases passed on main, failed with missing-key errors after the matrix-option removal, and now pass again. Loaded configs retainmatrix_instr_nonkdim=16and omitkpack.Performance:
CI does not exercise the gfx1151/gfx1201 configs changed here, so validation on these targets was performed manually.
Submission Checklist