Skip to content

[DeepSeek][ROCm] V4.1-Flash: enable mono decode on MI355X - #1094

Merged
Fangzhou-Ai merged 1 commit into
mainfrom
amd/dsv41flash-mi355x-mono-decode
Oct 12, 2026
Merged

Fangzhou-Ai merged 1 commit into
mainfrom
amd/dsv41flash-mi355x-mono-decode

Conversation

@Fangzhou-Ai

Copy link
Copy Markdown
Collaborator

Summary

Enable VLLM_ROCM_MONO_DECODE=1 in the MI355X single-node TP overrides. The mono decode layer from vllm-project/vllm#60397 uses two persistent launches per layer for decode steps of up to 48 rows; with five DSpark drafts that is concurrency 8, and larger steps take the regular path.

Also trims the --no-swa-bounded-replay comment to the reason and the removal condition, and adds a short note to the MI355X section of the guide.

Measurements

14-point agentic sweep on MI355X (DeepSeek-V4.1-Flash + DSpark k=5, TP2 and TP4, 1M context, nightly-rocm100-7d0b4e57), compared against the same recipe on the previous pin:

point tok/s/chip ITL p50 mono-eligible
TP4 c1 +24.9% −33.6% yes
TP4 c2 +23.0% −34.1% yes
TP4 c4 +12.2% −34.8% yes
TP4 c8 +8.3% −33.8% yes
TP4 c16 +3.7% −27.9% no
TP4 c32 +1.9% −11.8% no
TP4 c64 +0.3% −0.3% no
TP2 c1 +19.7% −28.0% yes
TP2 c2 +19.0% −27.9% yes
TP2 c4 +13.3% −29.3% yes
TP2 c8 +6.7% −29.9% yes
TP2 c16 +3.2% −23.6% no
TP2 c32 +3.1% −4.7% no
TP2 c64 +0.5% +0.2% no

Grouped:

band tok/s/chip ITL p50
mono-eligible (decode step ≤ 48 rows, i.e. c ≤ 8) +15.9% (sd 6.3) −31.4% (sd 2.7)
control (c > 8) +2.1% (sd 1.3) −11.3% (sd 11.0)

Caveat, stated plainly: the two sweeps are 296 upstream commits apart, so this is not a clean mono-decode-only A/B, and the c16/c32 improvements show that some of the gain comes from the rest of that range. What supports attributing the bulk of the low-concurrency gain to mono decode is the shape: the effect is largest at c1, decays monotonically with concurrency, and is gone at c64 (+0.3% / +0.5%), which is exactly the 48-row cutoff the kernel documents. I'm happy to run a single-variable A/B on one image if that would be preferred before merging.

GSM8K is unchanged across the sweep, and all 14 points plus the eval passed.

Validation

node scripts/build-recipes-api.mjs
✓ JSON API: 195 models (169 with recommended_command, 801 default-hw alternatives, 1565 per-hw renderings), 265 promoted variants, 10 strategies, 2 kv-store deployments, 2 platforms (7 variant collisions skipped)

Note on #962

#962 is still open but conflicting, and its content (AMD image on the ROCm nightly channel, CK a8w4 expert selection) is already present on main. It looks superseded and can probably be closed; this PR does not depend on it.

Set VLLM_ROCM_MONO_DECODE=1 in the MI355X single-node TP overrides. The
mono decode layer from vllm-project/vllm#60397 uses two persistent
launches per layer for decode steps of up to 48 rows, which with five
DSpark drafts covers concurrency up to 8; larger steps take the regular
path.

Also trim the --no-swa-bounded-replay comment to the reason and the
removal condition.

Signed-off-by: Fangzhou Ai <31551580+Fangzhou-Ai@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel

vercel Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

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

Project Deployment Actions Updated
vllm-recipes Ready Ready Preview Oct 10, 2026 11:17pm UTC

Request Review

This branch was successfully deployed

1 active deployment
Preview — 1da32348 Deployed Oct 10, 2026 by vercel[bot]
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.

1 participant