Skip to content

[ASM][flydsl] opt mla kernel for dspr1(gfx1250) - #6087

Merged
shengnxu merged 5 commits into
ROCm:mainfrom
xiangM99:kimi_mla_nhead96_DCP
Oct 3, 2026
Merged

shengnxu merged 5 commits into
ROCm:mainfrom
xiangM99:kimi_mla_nhead96_DCP

Conversation

@xiangM99

@xiangM99 xiangM99 commented Oct 2, 2026

Copy link
Copy Markdown
Member

Motivation

Update the gfx1250 persistent PS1 (page size 1) FP8 MLA decode

Technical Details

  • Continuous KV ring across work items: a work item's last producer steps gather the next
    item's first KV tiles, so its prologue no longer waits on HBM in series with the previous
    item's epilogue.
  • Padded output staging: staged output rows carry 16 B of padding so the 16 heads of one
    ds_store do not share LDS banks; the TDM store's column extent drops the pad columns.
  • i32 KV tile loop counter (assignment-carried instead of range(init=)), and the
    per-wave page indices of a tile loaded with one 8-dword scalar load.

Test Result

gfx1250, 256 CUs, B=1536, nhead=128, q_seq=1, FP8 Q/KV (--scales poc). Times are per decode
call (stage 1 + reduce).

ctx old PS1 (µs) new PS1 (µs) new vs old ASM PS64 (µs) old vs ASM new vs ASM
1024 180.8 159.6 −11.7% 213.2 1.18x 1.34x
2048 310.3 289.5 −6.7% 320.3 1.03x 1.11x
3072 443.3 418.7 −5.6% 459.8 1.04x 1.10x
4096 575.7 550.6 −4.4% 617.0 1.07x 1.12x
5120 708.1 682.8 −3.6% 686.4 0.97x 1.005x

Submission Checklist

@xiangM99
xiangM99 requested review from a team, coderfeli and shengnxu October 2, 2026 11:04
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

🏷️ CI Guide

Runs automatically on every PR:

  • ✅ Pre-checks (submodule verification, code formatting)
  • ✅ Aiter op tests (gfx942 + gfx950)
  • ✅ Triton tests on MI35X (only when aiter/ops/triton/** or related paths are changed)

Extended tests (opt-in via labels):

Label Tests
ci:gfx1250-ffm-triton Run the five-shard gfx1250 FFM Triton test suite
ci:triton-300x Run an additional Triton test job on MI300X in PRs (added automatically when gfx942 configs change); main branch always runs both MI35X and MI300X
ci:triton-355 Run the full Triton test suite on MI35X, not only the tests the change affects
multigpu Aiter multi-GPU tests on the 8-GPU runner
ci:sglang SGLang integration tests: DeepSeek-R1-MXFP4 accuracy, Qwen 3.5 accuracy
ci:atom ATOM benchmark: DeepSeek-R1-0528, GPT-OSS-120B
ci:atom_full ATOM accuracy suite for PR and main models from ATOM models_accuracy.json
ci:vllm vLLM benchmark: GPT-OSS-120B, DeepSeek-R1-0528, Kimi-K2.5
ci:all All standard extended tests (excludes ci:atom_full)

Only add ci:atom_full for FlyDSL or Triton upgrades.
Add labels via the sidebar or gh pr edit 6087 --add-label <label>

One backend per PR:
A PR changes one kernel backend: [Triton/Gluon] (Triton and Gluon count as one), [HIP], [ASM], [CK], [OPUS] or [FlyDSL]. If the title ends up with two backend tags, split the PR -- as stacked pull requests when one part cannot merge without the other.

PR title tags & labels:
Component tags ([Triton/Gluon], [HIP], [CK], [ASM], ...) are added to the PR title and as PR labels automatically from the changed files and re-synced on every push — change-type tags like [fix]/[Perf], op tags like [MLA], and human labels (ci:*) are left untouched. Add the no-auto-title label to stop the title rewrites; labels stay in sync either way.

@github-actions github-actions Bot changed the title [asm][flydsl] opt mla kernel for dspr1(gfx1250) [ASM] opt mla kernel for dspr1(gfx1250) Oct 2, 2026
@github-actions github-actions Bot added the ASM label Oct 2, 2026
@xiangM99 xiangM99 added the FlyDSL label Oct 3, 2026
@xiangM99 xiangM99 changed the title [ASM] opt mla kernel for dspr1(gfx1250) [ASM][flydsl] opt mla kernel for dspr1(gfx1250) Oct 3, 2026
@github-actions github-actions Bot removed the FlyDSL label Oct 3, 2026
@shengnxu
shengnxu merged commit dbf4f3a into ROCm:main Oct 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants