You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This RFC proposes an experimental, CUDA-only Qwen3.5 MoE AFD validation lane for the AFD plugin.
The purpose is to establish a reviewed model/architecture baseline before continuing the MUSA work proposed in #173. It is not a request to change the project-wide vLLM alignment policy in #155, and it does not claim production readiness or performance improvement.
A local CUDA implementation has completed deterministic correctness validation for Qwen/Qwen3.5-35B-A3B on vLLM 0.23.0. The implementation follows native vLLM model/decoder/weight-loading lifecycles and disaggregates only at the MoE experts boundary.
Why an RFC before an implementation PR?
Qwen3.5 is a hybrid full-attention + linear-attention/Mamba MoE model. AFD must keep attention/KV and hybrid state on the Attention role while moving only routed/shared expert execution to the FFN role.
Maintainer feedback is requested now on:
whether Qwen3.5 belongs in the AFD model-support scope;
whether an eager, text-only correctness-first contribution is an acceptable first step;
whether the Attention-side router boundary is the preferred design; and
whether this experimental vLLM 0.23 validation should be treated solely as an architecture/evidence lane while the project follows the alignment policy in [RFC]: afd-plugin project roadmap #155.
Proposed initial scope
Model: Qwen/Qwen3.5-35B-A3B, original BF16 checkpoint.
attention backend, KV cache, or hybrid/Mamba state
The adapter is model-specific rather than a copy of Model.forward, DecoderLayer.forward, or the native loader.
CUDA correctness evidence
Environment:
base commit: 987301208dc0e3597d01e700880094a3603c5bea;
Python 3.12.3, PyTorch 2.11.0+cu130, vLLM 0.23.0;
4 × NVIDIA RTX PRO 6000 Blackwell Server Edition, 96 GiB each, driver 580.82.09;
model integrity verified: 14/14 shards.
Every comparison requires:
exact generated token-ID equality;
exact top-5 token-set equality at every decode step; and
maximum absolute top-5 logprob error of 0.0.
The following gates passed against an equivalently configured colocated TP2 baseline:
Gate
Result
AFD batch 1
PASS, 32/32 decode steps, max error 0.0
Repeated AFD requests
PASS, 32/32 steps, max error 0.0
Alternate prompts
PASS, max error 0.0
Concurrent batch 2, prompt A
PASS, 32/32 steps, max error 0.0
Concurrent batch 2, prompt B
PASS, 32/32 steps, max error 0.0
CPU model-role/package/FFN-runner contracts
PASS, 37 tests
Shutdown cleanup
PASS; no vLLM workers and all four GPUs at 0 MiB
The implementation also asserts that the Attention proxy has no expert parameters and that FFN construction does not instantiate KV-cache, attention, or hybrid/Mamba state.
Known limitations
Text prompts only. Qwen3.5's checkpoint architecture is multimodal; visual modules are deliberately not constructed or loaded.
vLLM emits a warning when chunked prefill is disabled for this model. This validation pins eager/no-DBO behavior and records that warning; it is not a claim of general chunked-prefill support.
The FlashInfer sampler was disabled with VLLM_USE_FLASHINFER_SAMPLER=0 because the local CUDA runtime cannot JIT it for SM120. This does not change model weights, MoE computation, or AFD communication.
Proposed follow-up, subject to feedback
If accepted, the implementation can be proposed in small reviewable units:
Qwen3.5 role-aware adapter and typed experts-boundary payload;
targeted CPU contracts plus reproducible CUDA correctness recipe/evidence;
Is this narrow Qwen3.5 CUDA correctness lane in scope for AFD?
Is Attention-side router ownership and FFN-side native FusedMoE execution the preferred first boundary?
Is text-only, eager/synchronous support acceptable as the initial model contribution?
Should the CUDA proof remain an explicitly experimental vLLM 0.23 architecture lane, with any durable support PR rebased onto the project-selected vLLM line?
Would you prefer the model adapter and typed payload support in one PR, or split them before the CUDA recipe/tests?
Relationship to existing RFCs
[RFC]: afd-plugin project roadmap #155 defines the project roadmap and layered support/evidence policy. This RFC proposes a model/backend-specific experimental evidence lane under that policy.
Summary
This RFC proposes an experimental, CUDA-only Qwen3.5 MoE AFD validation lane for the AFD plugin.
The purpose is to establish a reviewed model/architecture baseline before continuing the MUSA work proposed in #173. It is not a request to change the project-wide vLLM alignment policy in #155, and it does not claim production readiness or performance improvement.
A local CUDA implementation has completed deterministic correctness validation for Qwen/Qwen3.5-35B-A3B on vLLM 0.23.0. The implementation follows native vLLM model/decoder/weight-loading lifecycles and disaggregates only at the MoE experts boundary.
Why an RFC before an implementation PR?
Qwen3.5 is a hybrid full-attention + linear-attention/Mamba MoE model. AFD must keep attention/KV and hybrid state on the Attention role while moving only routed/shared expert execution to the FFN role.
Maintainer feedback is requested now on:
Proposed initial scope
Qwen/Qwen3.5-35B-A3B, original BF16 checkpoint.Explicit non-goals
MUSA remains a separate follow-up track under #173, where the CUDA result can serve as the model-boundary and correctness reference.
Proposed plugin boundary
The proposed adapter keeps native vLLM Qwen control flow and loading authoritative:
Ownership is intentionally strict:
FusedMoE, routed experts, shared expert, shared-expert gateThe adapter is model-specific rather than a copy of
Model.forward,DecoderLayer.forward, or the native loader.CUDA correctness evidence
Environment:
987301208dc0e3597d01e700880094a3603c5bea;Every comparison requires:
0.0.The following gates passed against an equivalently configured colocated TP2 baseline:
The implementation also asserts that the Attention proxy has no expert parameters and that FFN construction does not instantiate KV-cache, attention, or hybrid/Mamba state.
Known limitations
VLLM_USE_FLASHINFER_SAMPLER=0because the local CUDA runtime cannot JIT it for SM120. This does not change model weights, MoE computation, or AFD communication.Proposed follow-up, subject to feedback
If accepted, the implementation can be proposed in small reviewable units:
Questions for maintainers
FusedMoEexecution the preferred first boundary?Relationship to existing RFCs