Skip to content

[Triton/Gluon] spec decode support for gluon kda files - #6034

Merged
vgokhale merged 7 commits into
mainfrom
omuhamma/spec_decode
Oct 2, 2026
Merged

vgokhale merged 7 commits into
mainfrom
omuhamma/spec_decode

Conversation

@omuhamma

@omuhamma omuhamma commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

Newer vllm recipes use spec decode when concurrency is low, enabling and optimizing my spec decode path to atleast beat tritons

Test Plan

Unit test, e2e accuracy, e2e results. Tested on both 1250 and 950

Test Result

UT pass

image image

*accuracy is same as baseline

*measured on m01-21, runs were captured by doing 1 warmup run and then 3 runs averaged together for the results

1250 runtimes:

image

Submission Checklist

@github-actions

github-actions Bot commented Oct 1, 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 6034 --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.

@omuhamma omuhamma self-assigned this Oct 1, 2026
@omuhamma
omuhamma marked this pull request as ready for review October 1, 2026 14:42
@omuhamma
omuhamma requested a review from a team October 1, 2026 14:42
@github-actions github-actions Bot changed the title spec decode support for gluon kda files [Triton/Gluon] spec decode support for gluon kda files Oct 1, 2026
@Boss2002n
Boss2002n requested a balanced review from Copilot October 1, 2026 17:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Speculative decode can access undersized convolution state and leave padded gfx950 outputs uninitialized.

Review effort: Balanced
Findings: 2 High severity · 2 Low severity

Open (4)
What changed in this PR

Adds optimized speculative decoding support to the Gluon KDA path for gfx950 and gfx1250.

Changes:

  • Implements speculative convolution-window handling and resident state processing.
  • Adds gfx950 tuning for fused multi-token workloads.
  • Extends correctness tests across speculative token counts and configurations.
File Description
aiter/​ops/​triton/​attention/​kda.py Dispatches architecture-specific configuration and enables speculative convolution state.
aiter/​ops/​triton/​_gluon_kernels/​gfx950/​attention/​kda_decode.py Adds register-resident speculative decode execution.
aiter/​ops/​triton/​_gluon_kernels/​gfx1250/​attention/​kda_decode.py Adds speculative convolution-window rolling.
aiter/​ops/​triton/​configs/​gfx950/​gluon/​attention/​kda_decode/​DEFAULT.json Tunes multi-token and fused launches.
op_tests/​triton_tests/​attention/​test_kda.py Tests fused speculative decoding and state updates.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread aiter/ops/triton/_gluon_kernels/gfx950/attention/kda_decode.py
Comment thread aiter/ops/triton/attention/kda.py
Comment thread aiter/ops/triton/_gluon_kernels/gfx1250/attention/kda_decode.py
Comment thread op_tests/triton_tests/attention/test_kda.py Outdated
@vgokhale
vgokhale merged commit 847ebdc into main Oct 2, 2026
93 of 97 checks passed
@vgokhale
vgokhale deleted the omuhamma/spec_decode branch October 2, 2026 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants