Repository navigation
[ROCm] Bump AITER to v0.1.19.post2 - #51728
LucasWilkinson wants to merge 1 commit into
Conversation
Picks up ROCm/aiter#4312, which makes the fused QK-norm+RoPE+KV-cache kernel stride-aware for block_size and heads. Without it the kernel hard-asserts AITER_CHECK(is_contiguous_from_dim1(k_cache) && is_contiguous_from_dim1(v_cache), "k_cache/v_cache must be contiguous within a block (dims >= 1)") and aborts the process (SIGABRT) on the packed KV-cache layout that vllm-project#44455 introduced and vllm-project#49373 wired the AITER backends up to: splitting the packed content dim leaves the head dim strided by the whole block. v0.1.19 predates vllm-project#4312; v0.1.19.post1 and .post2 contain it, and the assert is gone in favour of explicit k_stride_token/k_stride_head/k_stride_dim indexing. This is the AITER half of the fix planned in vllm-project#49590, where the vLLM-side .contiguous() workaround was declined in favour of bumping AITER; the vLLM half (vllm-project#49373) merged on 2026-08-07. Signed-off-by: Lucas Wilkinson <wilkinson.lucas@gmail.com> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Lucas Wilkinson <lwilkins@redhat.com>
|
Hi @LucasWilkinson :) We are soon going to start the bumping process. I want one more PR to be cherry picked. Then we ll start the bumping process. @Rohan138 is the one putting up PRs for that. I expect that end of next week we ll have bumped it. Would it be OK to close this PR and let @Rohan138 handle the cadence? |
|
@AndreasKaratzas I think we need to revert #49373 until the AITER bump lands, that PR is blocked by ROCm/aiter#4312 which isn't in the current AITER 0.1.19. Sorry for the confusion @LucasWilkinson! |
|
@AndreasKaratzas @Rohan138 is this PR up to date? Next bump will be |
|
ROCm/aiter#4646 (FlyDSL a16wi4) merged on 2026-08-13. This pin is #51728 is still open, so including 4646 in this bump is still doable. That is the gfx942 MoE path used by Kimi-K3 and Qwen3.8 load-time INT4. Details are in #52803 If retargeting this PR is painful, a fast follow-up pin that contains 4646 also works. One bump that includes it is better. |
|
Can this PR pin If retargeting this PR is painful, a follow-up pin PR to |
|
Hi @ChuanLi1101 we ve already established that this PR should probably be closed since, Rohan or Micah handle the version bumps, and since now we have .21 already there. |
|
This pull request has merge conflicts that must be resolved before it can be |
Purpose
Bump the ROCm base image's AITER pin from
v0.1.19tov0.1.19.post2to pick upROCm/aiter#4312, which makes
fused_qk_norm_rope_cache_pts_quant_shuffle()stride-aware forblock_sizeand heads.Without it, the fused QK-norm+RoPE+KV-cache kernel hard-asserts and aborts the process
(SIGABRT, exit 134) on the packed KV-cache layout:
#44455packed K/V into the content dim,(num_blocks, num_kv_heads, block_size, 2*head_size), and#49373wired the AITER backends to read it viatranspose(1, 2).split(head_size, -1). Those views have a contiguous head dim but a headstride of a whole block (e.g.
(8192, 256, 4096, 1)forH=2, hs=128, N=16), which thepre-#4312 kernel rejects.
This is the AITER half of the fix agreed in
#49590, where a vLLM-side
.contiguous()workaround was declined:The vLLM half (#49373) merged on 2026-08-07; the AITER pin was never moved, so the abort is
still live on the pinned version.
Version arithmetic
v0.1.19(current pin)v0.1.19.post1v0.1.19.post2In
.post2theis_contiguous_from_dim1guard is gone, replaced by explicitk_stride_token/k_stride_head/k_stride_dimindexing.Test Plan
MI300X (gfx942). Built
v0.1.19.post2from source and ran the fusion suite againstunmodified
640a09086d(no vLLM changes), so the pin is the only variable:Test Result
ROCM_AITER_FA and full-neox and auto)v0.1.19)v0.1.19.post2The test asserts
fusion_pass.matched_count == 1and compares fused vs unfused q/k/v andthe KV cache, so these exercise the fused kernel and check it numerically on the packed
layout. Full-suite run in progress; will update.
Notes
docker/Dockerfile.rocm_base_gfx1250tracksAITER_BRANCH="main"and is unaffected.patch_gating_outputTODOs inaiter_mxfp4_w4a8_moe.py— those wait onROCm/aiter#4530, which is still open.
🤖 Generated with Claude Code