Skip to content

[ROCm] Add MI300X and MI355X guidance for Moonshot Kimi - #571

Merged
tjtanaa merged 2 commits into
vllm-project:mainfrom
tanpinsiang:moonshot-kimi-amd-rocm
Jun 18, 2026
Merged

tjtanaa merged 2 commits into
vllm-project:mainfrom
tanpinsiang:moonshot-kimi-amd-rocm

Conversation

@tanpinsiang

Copy link
Copy Markdown
Contributor

Summary

Add AMD ROCm guidance for the Moonshot Kimi K2.5, K2.6, and K2.7-Code recipes.

This updates the recipes with:

  • AMD ROCm Docker image selection.
  • AMD runtime environment variables:
    • VLLM_ROCM_USE_AITER=1
    • VLLM_ROCM_QUICK_REDUCE_QUANTIZATION=INT4
  • MI300X / MI325X guidance for the existing gfx942 W4A16 MoE path.
  • MI350X / MI355X guidance for the gfx950 FlyDSL W4A16 MoE path.
  • Notes that the FlyDSL path should not use expert parallelism.
  • Notes that the MI350X / MI355X FlyDSL path requires:
    --compilation-config '{"pass_config": {"fuse_allreduce_rms": false}}'

Why

The MI350X / MI355X path depends on recent vLLM support from
vllm-project/vllm#44400, which enabled the W4A16 FlyDSL MoE path for gfx950.

Because this support is recent, the AMD recipe pins the ROCm Docker image to:

amd: "vllm/vllm-openai-rocm:nightly-4c626633159887b0f2c962058c17c78f1434556d"

The AMD paths are split by GPU generation:

  • MI300X / MI325X report gfx942, so they use the existing W4A16 MoE implementation.
  • MI350X / MI355X report gfx950, so they can use the new FlyDSL W4A16 MoE path with --moe-backend flydsl.

Validation

Validated Kimi-K2.5, Kimi-K2.7-Code (Kimi-K2.6 should work)

Also benchmarked --block-size 16 vs --block-size 64 with an 8k input / 1k output serving workload. Results were effectively tied, so the recipes do not force a block-size override and instead leave it as an optional tuning knob.

block size successful failed duration output tok/s total tok/s median TTFT mean TPOT
16 32 0 123.75s 264.79 2333.44 37.03s 82.71ms
64 32 0 123.74s 264.81 2333.65 37.62s 82.13ms

We also tested VLLM_ROCM_USE_AITER_RMSNORM=0; it was slower than leaving the RMSNorm setting at the image default, so the recipes remove that override and only keep the required AITER / INT4 QuickReduce environment variables.

Co-authored-by: vllmellm <vllm.ellm@embeddedllm.com>

Co-authored-by: Hongxia Yang <hongxia.yang@amd.com>
Signed-off-by: Tan Pin Siang <tanpinsiang@gmail.com>
@vercel

vercel Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
vllm-recipes Ready Ready Preview, Comment Jun 18, 2026 5:04pm

Request Review

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request adds support and deployment guides for AMD GPUs (MI300X, MI325X, MI350X, and MI355X) across the Kimi-K2.5, Kimi-K2.6, and Kimi-K2.7-Code models. It updates hardware verification statuses, configures Docker images, and adjusts hardware overrides. The reviewer noted that the launch commands for AMD MI350X/MI355X in the documentation are missing several critical arguments (such as host, port, and tool-calling/reasoning parsers) that are present in the MI300X/MI325X commands, and suggested adding them for consistency and completeness.

Comment on lines +206 to +211
vllm serve moonshotai/Kimi-K2.5 \
--tensor-parallel-size 8 \
--trust-remote-code \
--mm-encoder-tp-mode data \
--moe-backend flydsl \
--compilation-config '{"pass_config": {"fuse_allreduce_rms": false}}'

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.

medium

The launch command for AMD MI350X/MI355X is missing several critical arguments that are present in the MI300X/MI325X command, such as --host 0.0.0.0, --port 8000, and the tool-calling/reasoning parsers (--tool-call-parser kimi_k2, --enable-auto-tool-choice, --reasoning-parser kimi_k2). Adding these ensures consistency and enables essential model features.

  vllm serve moonshotai/Kimi-K2.5 \\
    --host 0.0.0.0 \\
    --port 8000 \\
    --trust-remote-code \\
    --tensor-parallel-size 8 \\
    --tool-call-parser kimi_k2 \\
    --enable-auto-tool-choice \\
    --reasoning-parser kimi_k2 \\
    --mm-encoder-tp-mode data \\
    --moe-backend flydsl \\
    --compilation-config '{"pass_config": {"fuse_allreduce_rms": false}}'

Comment on lines +184 to +189
vllm serve moonshotai/Kimi-K2.6 \
--tensor-parallel-size 8 \
--trust-remote-code \
--mm-encoder-tp-mode data \
--moe-backend flydsl \
--compilation-config '{"pass_config": {"fuse_allreduce_rms": false}}'

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.

medium

The launch command for AMD MI350X/MI355X is missing several critical arguments that are present in the MI300X/MI325X command, such as --host 0.0.0.0, --port 8000, and the tool-calling/reasoning parsers (--tool-call-parser kimi_k2, --enable-auto-tool-choice, --reasoning-parser kimi_k2). Adding these ensures consistency and enables essential model features.

  vllm serve moonshotai/Kimi-K2.6 \\
    --host 0.0.0.0 \\
    --port 8000 \\
    --trust-remote-code \\
    --tensor-parallel-size 8 \\
    --tool-call-parser kimi_k2 \\
    --enable-auto-tool-choice \\
    --reasoning-parser kimi_k2 \\
    --mm-encoder-tp-mode data \\
    --moe-backend flydsl \\
    --compilation-config '{"pass_config": {"fuse_allreduce_rms": false}}'

Comment on lines +168 to +176
vllm serve moonshotai/Kimi-K2.7-Code \
--tensor-parallel-size 8 \
--trust-remote-code \
--mm-encoder-tp-mode data \
--moe-backend flydsl \
--tool-call-parser kimi_k2 \
--enable-auto-tool-choice \
--reasoning-parser kimi_k2 \
--compilation-config '{"pass_config": {"fuse_allreduce_rms": false}}'

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.

medium

The launch command for AMD MI350X/MI355X is missing the --host 0.0.0.0 and --port 8000 arguments, which are present in the MI300X/MI325X command. Adding these ensures consistency across the deployment guides.

  vllm serve moonshotai/Kimi-K2.7-Code \\
    --host 0.0.0.0 \\
    --port 8000 \\
    --tensor-parallel-size 8 \\
    --trust-remote-code \\
    --mm-encoder-tp-mode data \\
    --moe-backend flydsl \\
    --tool-call-parser kimi_k2 \\
    --enable-auto-tool-choice \\
    --reasoning-parser kimi_k2 \\
    --compilation-config '{"pass_config": {"fuse_allreduce_rms": false}}'

Comment thread models/moonshotai/Kimi-K2.5.yaml Outdated
min_vllm_version: "0.19.1"
docker_image:
nvidia: "vllm/vllm-openai:latest"
amd: "vllm/vllm-openai-rocm:nightly-4c626633159887b0f2c962058c17c78f1434556d"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nightly image like on CUDA, only have 14-days retention period, it will be removed after 14 days.

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.

changed back to nightly

Comment thread models/moonshotai/Kimi-K2.6.yaml Outdated
min_vllm_version: "0.19.1"
docker_image:
nvidia: "vllm/vllm-openai:latest"
amd: "vllm/vllm-openai-rocm:nightly-4c626633159887b0f2c962058c17c78f1434556d"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

likewise.

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.

changed back to nightly

Comment thread models/moonshotai/Kimi-K2.7-Code.yaml Outdated
min_vllm_version: "0.19.1"
docker_image:
nvidia: "vllm/vllm-openai:latest"
amd: "vllm/vllm-openai-rocm:nightly-4c626633159887b0f2c962058c17c78f1434556d"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

likewise

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.

changed back to nightly

Co-authored-by: vllmellm <vllm.ellm@embeddedllm.com>

Co-authored-by: Hongxia Yang <hongxia.yang@amd.com>
Signed-off-by: Tan Pin Siang <tanpinsiang@gmail.com>

@tjtanaa tjtanaa left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@tjtanaa
tjtanaa merged commit aecd2f5 into vllm-project:main Jun 18, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants