[ROCm][Perf][DSV4] Enable split sparse decode on gfx942 - #46275
Merged
tjtanaa merged 5 commits intoJul 16, 2026
Merged
Conversation
Contributor
|
This pull request has merge conflicts that must be resolved before it can be |
Allow gfx942 to use the split Triton sparse decode path that was previously limited to gfx950. Signed-off-by: Tuukka Sarvi <tuukka.sarvi@amd.com>
Run the split sparse decode kernel coverage on gfx942 now that the path is enabled there. Signed-off-by: Tuukka Sarvi <tuukka.sarvi@amd.com>
tuukkjs
force-pushed
the
fix/dsv4-rocm-triton-decode-gfx942
branch
from
June 23, 2026 12:57
82ed480 to
a16608f
Compare
tuukkjs
marked this pull request as ready for review
June 24, 2026 08:39
Contributor
|
This pull request has merge conflicts that must be resolved before it can be |
Keep the upstream removal of the unused combine_topk_swa_indices_ragged test while preserving gfx942 split sparse decode coverage. Signed-off-by: Tuukka Sarvi <tuukka.sarvi@amd.com>
Contributor
Author
|
@tjtanaa could we merge this PR? Even though the e2e improvement is modest, it seems to me it is still an improvement for the codebase. |
tjtanaa
enabled auto-merge (squash)
July 15, 2026 22:18
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.
Purpose
Enable the existing split partial/reduce Triton sparse decode path for DeepSeek-V4 sparse MLA decode on AMD gfx942.
gfx950 already uses this path. gfx942 currently falls back to the monolithic
_sparse_attn_decode_ragged_kernel, even though the split path runs correctly on gfx942. This PR extends the tuned-architecture guard to include gfx942 and updates the ROCm DeepSeek-V4 sparse attention tests so the split decode path is covered on both gfx942 and gfx950.This is a targeted decode-path improvement. The latest MI300X/gfx942 profiles show the sparse decode work itself drops by about 40% with the split path. Serving-level impact is modest and workload dependent: in the repeated-pass validation, high-throughput output throughput was effectively at parity with lower observed TTFT, while the low-rate decode-heavy workload showed lower TPOT/ITL and lower observed TTFT.
AI assistance was used for this PR.
Test Plan
deepseek-ai/DeepSeek-V4-Flashon an 8x gfx942 node and run:vllm bench servehigh-throughput random workload: input 128, output 96, 128 prompts, request rateinfvllm bench servelow-rate decode-heavy random workload: input 17, output 96, 32 prompts, request rate1Testing environment for DeepSeek-V4-Flash prompt/e2e validation on gfx942:
Baseline used the installed gfx950-only guard, so gfx942 took
_sparse_attn_decode_ragged_kernel. Proposed changed only the guard to include gfx942, so gfx942 took_sparse_attn_decode_partial_kernelplus_sparse_attn_decode_reduce_kernel.Test Result
ROCm DeepSeek-V4 sparse attention tests passed on gfx942:
ROCm DeepSeek-V4 sparse attention tests also passed on MI355X/gfx950:
DeepSeek-V4-Flash serving correctness on 8x gfx942:
4242Kernel-level sparse decode benchmark,
MAIN_LEN=80,EXTRA_LEN=32, production DeepSeek-V4 cache packing:High-throughput profiler comparison on gfx942 confirms the intended kernel replacement:
_sparse_attn_decode_ragged_kernel_sparse_attn_decode_partial_kernel_sparse_attn_decode_reduce_kernelServing benchmarks used one baseline server and one proposed server per workload, with six sequential benchmark passes each. Pass 1 is reported separately from the warm average over passes 2-6.
High-throughput random workload, input 128/output 96, 128 prompts, request rate
inf:Low-rate decode-heavy random workload, input 17/output 96, 32 prompts, request rate
1: