Skip to content

[ROCm][Kimi-K3] Support MoRIIO consumers with specialized decode - #63031

Merged
shen-shanshan merged 8 commits into
vllm-project:mainfrom
YukioZzz:yichaozhu/k3-specialized-decode-moriio
Oct 23, 2026
Merged

shen-shanshan merged 8 commits into
vllm-project:mainfrom
YukioZzz:yichaozhu/k3-specialized-decode-moriio

Conversation

@YukioZzz

@YukioZzz YukioZzz commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Overview

Enable Kimi-K3 specialized decode with MoRIIO READ/WRITE on the decode node, extending #60683 to P/D serving.

Claims

  • Support built-in MoRIIO consumers with the producer on decode_backend=auto.
  • Reuse existing transfer completion without kernel or protocol changes.

Validation

.venv/bin/python -m pytest -q tests/models/kimi_k3/amd_specialized_decode/test_runtime.py
.venv/bin/python -m pytest -q tests/v1/kv_connector/unit/test_moriio_tp_ack.py

48 and 40 tests passed. The four READ/WRITE × RDMA/xGMI acceptance cases fail without this change and pass with it.

Two-node MI355X, real Kimi-K3/DSpark weights, TP8/DCP8, K7, FULL decode graphs:

  • GSM8K 10/10 in READ and WRITE, with matching responses (5-shot completions, c1, temperature 0, seed 42, max 1,024 output tokens).
  • Each mode transferred 6,354 prompt tokens; traces confirmed k3_mono_kda_pre_s8 and k3_mono_k2_s8.

This is a short functional check. xGMI has configuration coverage only. Two-node serving was tested locally because CI provides one eight-GPU node.

Details

Specialized layers skip per-layer transfer hooks. MoRIIO READ loads finish before forward (#60808); WRITE receives finish before scheduler admission. This PR enables that consumer path and leaves other connector configurations unchanged.

No overlapping open PR was found.


Pull Request Checklist
  • I used vLLM's /pr-checklist skill. (Mandatory for agents, optional for humans).

  • AI assistance was used during the creation of this PR.

  • Design Fit: Minimizes impact on core components, reuses existing functionality, and justifies added complexity.

  • Testing and Validation: Validates the change and ensures any added tests are meaningful and reliable, with CI coverage or documented CI resource constraints and validation performed outside CI.

  • Code Quality and Style: Keeps code and comments clear and concise, and updates relevant documentation and examples.

  • Pull Request Contents: Includes a brief summary and relevant links, supports claims with evidence, explains root causes and implementation trade-offs, and follows the contributing guide.

BEFORE SUBMITTING, PLEASE READ https://docs.vllm.ai/en/latest/contributing

Allow the built-in MoRIIO consumer in READ and WRITE modes. Reuse the existing transfer completion guarantees, and keep other connectors and producer-side specialized execution unsupported. Add configuration coverage and document the supported deployment.

Signed-off-by: Yichao Zhu <Yichao.Zhu@amd.com>

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@mergify

mergify Bot commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Documentation preview: https://vllm--63031.org.readthedocs.build/en/63031/

@mergify mergify Bot added documentation Improvements or additions to documentation kimi k3 rocm Related to AMD ROCm labels Oct 22, 2026
@github-project-automation github-project-automation Bot moved this to Todo in AMD Oct 22, 2026
Signed-off-by: Yichao Zhu <Yichao.Zhu@amd.com>
Assisted-by: OpenAI Codex
Signed-off-by: Yichao Zhu <Yichao.Zhu@amd.com>
Comment on lines +107 to +110
(
not supports_kv_transfer(vllm_config.kv_transfer_config),
"KV transfer connectors other than a MoRIIO consumer",
),

@shen-shanshan shen-shanshan Oct 22, 2026 •

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.

When kv_transfer_config is None (which means kv transfer is not enabled), supports_kv_transfer will return true, which is misleading and unclear. Can you directly enumerate the rejected cases for the bad part?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done.

Assisted-by: OpenAI Codex
Signed-off-by: Yichao Zhu <Yichao.Zhu@amd.com>
@shen-shanshan

Copy link
Copy Markdown
Contributor

/ci run

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #96637 for commit 488ff369da17.

Set the multiprocessing backend explicitly for configuration-only coverage on single-GPU CI workers.

Assisted-by: OpenAI Codex
Signed-off-by: Yichao Zhu <Yichao.Zhu@amd.com>
Keep CUDA K3 config construction from enabling breakable graphs for subsequent tests. Use monkeypatch to restore the original environment.

Assisted-by: OpenAI Codex
Signed-off-by: Yichao Zhu <Yichao.Zhu@amd.com>
@shen-shanshan shen-shanshan added the ready ONLY add when PR is ready to merge/full CI is needed label Oct 23, 2026
@github-actions

Copy link
Copy Markdown

✅ @YukioZzz, CI is now available for this PR.

  • /ci run starts upstream CI; /amd-ci run starts AMD CI only.
  • Run commands test your branch with every commit currently on its upstream target branch. If it is behind, the bot merges the target branch into it first (pull before pushing again). Append --allow-stale to a run command to test an outdated branch as is, at your own risk.
  • /ci retry retries failed jobs in the CI build for the current PR head. If the current head has no CI build, it starts a new CI build for the current head containing only jobs that failed in the latest earlier CI build for this PR.
  • /amd-ci retry retries failed jobs in AMD CI for the current PR head. Use /amd-ci run when the current head has no AMD CI build.
  • /ci cancel cancels scheduled or running CI builds for this PR branch; /amd-ci cancel does the same for AMD CI only.

@shen-shanshan

Copy link
Copy Markdown
Contributor

/ci run

@github-actions

Copy link
Copy Markdown

✅ Triggered Buildkite CI #96779 for commit ca25d3e093da.

@shen-shanshan
shen-shanshan merged commit 098eb89 into vllm-project:main Oct 23, 2026
63 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in AMD Oct 23, 2026
seungrokj added a commit to seungrokj/vllm that referenced this pull request Oct 26, 2026
Resolve the test_runtime.py conflict with vllm-project#63031 (MoRIIO consumers): keep
the DCP 2 / 4 refusal cases, take the KVTransferConfig refusal case. Pin
supported_vllm_config to a served DCP1 step (max_num_seqs 1, fp8 KV cache),
which the (max_num_seqs, k) refusal now requires.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: seungrokj <seungrok.jung@amd.com>
bantianyue pushed a commit to bantianyue/vllm that referenced this pull request Oct 28, 2026
…m-project#63031)

Signed-off-by: Yichao Zhu <Yichao.Zhu@amd.com>
Co-authored-by: Shanshan Shen <467638484@qq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation k3 kimi ready ONLY add when PR is ready to merge/full CI is needed rocm Related to AMD ROCm

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants