vllm - ✅(Solved) Fix [Feature]: Better MoE Test Coverage in CI [3 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
vllm-project/vllm#39826Fetched 2026-04-16 06:36:24
View on GitHub
Comments
0
Participants
1
Timeline
1
Reactions
0
Author
Participants
Timeline (top)
labeled ×1

PR fix notes

PR #38989: [Bug] Fix routing bias dtype for trtllm per-block fp8 moe

Description (problem / solution / changelog)

Purpose

Fix [Bug]: Deepseek R1 produces incorrect output FIX https://github.com/vllm-project/vllm/issues/39179 Flashinfer v0.6.7 requires bf16 routing bias dtype for trtllm MoE. We have done this in https://github.com/vllm-project/vllm/pull/38423 for nvfp4 and fp8 per-tensor, but haven't done for fp8 per-block.

Test Plan

Test Result

main:

vllm serve deepseek-ai/DeepSeek-R1 --trust-remote-code --tensor-parallel-size 8

|Tasks|Version|     Filter     |n-shot|  Metric   |   |Value |   |Stderr|
|-----|------:|----------------|-----:|-----------|---|-----:|---|-----:|
|gsm8k|      3|flexible-extract|     5|exact_match|↑  |0.0197|±  |0.0038|
|     |       |strict-match    |     5|exact_match|↑  |0.0000|±  |0.0000|

branch:

|Tasks|Version|     Filter     |n-shot|  Metric   |   |Value |   |Stderr|
|-----|------:|----------------|-----:|-----------|---|-----:|---|-----:|
|gsm8k|      3|flexible-extract|     5|exact_match|↑  |0.9598|±  |0.0054|
|     |       |strict-match    |     5|exact_match|↑  |0.9591|±  |0.0055|

<details> <summary> Essential Elements of an Effective PR Description Checklist </summary>
  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan, such as providing test command.
  • The test results, such as pasting the results comparison before and after, or e2e results
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model.
  • (Optional) Release notes update. If your change is user facing, please update the release notes draft in the Google Doc.
</details>

Changed files

  • vllm/model_executor/layers/fused_moe/experts/trtllm_fp8_moe.py (modified, +5/-0)

PR #39717: [Bugfix] Reject non-nvfp4 dtypes when using the flashinfer_nvlink_one_sided all2all backend

Description (problem / solution / changelog)

The flashinfer_nvlink_one_sided all2all backend hardcodes its workspace sizing for nvfp4 payloads (4-bit activations + fp8 block scales).

See the hardcoding to datatype here: https://github.com/vllm-project/vllm/blob/4d042ed85f3b8fe8c73b6a4a365e65cf1811823e/vllm/distributed/device_communicators/all2all.py#L720-L725

When used with bf16 or other dtypes, the undersized workspace causes silent data corruption and gibberish output. Add an explicit dtype check at backend selection time so unsupported configurations fail loudly with an actionable error message.

Changed files

  • vllm/model_executor/layers/fused_moe/all2all_utils.py (modified, +8/-0)
RAW_BUFFERClick to expand / collapse

🚀 The feature, motivation and pitch

This issue requests for better MoE test coverage in CI.

The current coverage has failed to catch obvious MoE functional bugs like described in https://github.com/vllm-project/vllm/pull/38989, suggesting clear missing coverage.

Besides, there are many MoE backends as well as PrepareAndFinalize backends (Allreduce, A2A, etc), which may have requirements for activation or weight dtypes. The compatibility is defined in functions like _supports_parallel_config in MoE backend or custom condition checks (which are added after hitting issues as uncaught from test). We should ensure these combinations are exhaustively tested in the CI, instead of seeing unhandled errors or garbage output when used.

test_modular_kernel_combinations.py seems designed to provide such coverage. However, it has clear missing coverage, as indicated by the uncaught bugs. In addition, it uses config.is_valid to define test coverage. Yet it may be better to check for graceful handling in production code for incompatible backends.

Overall, we should examine the current test coverage and improve so that we don't have to rely so much on E2E eval tests.

Alternatives

No response

Additional context

No response

Before submitting a new issue...

  • Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

extent analysis

TL;DR

Improve MoE test coverage in CI by enhancing test_modular_kernel_combinations.py to exhaustively test backend combinations and ensure graceful handling of incompatible backends.

Guidance

  • Review the current test coverage in test_modular_kernel_combinations.py to identify gaps and areas for improvement.
  • Consider replacing config.is_valid with more comprehensive checks for compatible backend combinations, such as those defined in _supports_parallel_config or custom condition checks.
  • Develop additional test cases to cover various MoE backends and PrepareAndFinalize backends, including Allreduce and A2A, with different activation and weight dtypes.
  • Verify that the improved test coverage catches obvious MoE functional bugs, such as those described in https://github.com/vllm-project/vllm/pull/38989.

Example

No code snippet is provided as the issue does not contain sufficient technical details to generate a specific example.

Notes

The current test coverage has limitations, and improving it will help reduce reliance on E2E eval tests. However, the exact implementation details of the improved test coverage will depend on the specific requirements of the MoE backends and PrepareAndFinalize backends.

Recommendation

Apply workaround: Enhance test_modular_kernel_combinations.py to improve MoE test coverage, as the current coverage has failed to catch obvious functional bugs, and there is no clear indication of a fixed version available.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

vllm - ✅(Solved) Fix [Feature]: Better MoE Test Coverage in CI [3 pull requests, 1 participants]