Repository navigation
[Misc] main2main 1106 - #21005
[Misc] main2main 1106#21005zhao-stack wants to merge 47 commits into
Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request advances the verified vLLM main branch pin to a newer commit (69d27bf8) and updates the release version to v0.33.0. It includes comprehensive adaptations to ensure compatibility with upstream changes in graph mode, speculative decoding, and weight management. The changes are designed to keep the Ascend-specific implementation in sync with the evolving vLLM main branch while maintaining support for the v0.33.0 release. Highlights
New Features🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
Revert the 15 main-pin commits from c1ab53d through fd288f1, including the main-only split-grid follow-up 1081583. Their individual records and original SHA provenance are retained in PR vllm-project#21005. Restore the exact release-only f9880ef tree, including verified main pin 24420b7a and v0.33.0. No release upgrade commit is reverted. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
There was a problem hiding this comment.
Code Review
This pull request updates the verified vLLM main commit pin to 69d27bf8002a4634de1699c95fb0aeb22fb86ca5 and bumps the release tag to v0.33.0 across Dockerfiles, documentation, and tests. It adapts the codebase to upstream changes in vLLM v0.33.0 by removing legacy v0.32.0 compatibility shims, updating KV-cache planning imports, and adjusting speculative decoding, weight-loading, and KV offload compatibility. The review feedback correctly identifies that the PR title and summary violate the repository style guide and provides a structured suggestion to align them with the required format.
|
👋 Hi! Thank you for contributing to the vLLM Ascend project. The following points will speed up your PR merge:
If CI fails, you can run linting and testing checks locally according Contributing and Testing. |
|
/rerun Rerun (failed jobs only):
|
1 similar comment
|
/rerun Rerun (failed jobs only):
|
711cd85 to
39624fe
Compare
|
/rerun Rerun (failed jobs only):
Failed:
|
|
/rerun |
### What this PR does / why we need it? Upgrade vLLM release compatibility and Dockerfile defaults to **v0.33.0** (`4ba787ec9959e566d3b587a796dff07673324da5`). The verified vLLM main pin remains **`24420b7a341af37a9bc3186e6fc6062512e0aa58`**. The separate main-pin upgrade is in #21005. The five signed-off release commits are rebased onto Ascend main `7ead678c715ccf292d19f6b2f2ff41c0fe0e4052`: - `19e32a64e`: release version guards, Dockerfile defaults, metadata and documentation. - `3708328d6`: v0.33 CPU expectations and KV planner calls. - `d0e83d582`: Kimi fused output-gate compatibility. - `0362753e7`: v0.33 DSpark sampling fixture. - `70c2b2be9`: PCP tuple contract and DP sync fixtures. The clean release history avoids replaying reverted main-pin changes. After the previous rebase, upstream #20361 changed adaptive verification and CI's live-main rebase conflicted in three files before tests. This rebase keeps upstream's capability-driven allocator, its legacy/Triton tests, and its 3/4-field allocation handling with admitted-draft propagation. The obsolete overlapping release hunks were removed; the other four release patches remain identical. No unrelated upstream feature fix, main-pin upgrade or benchmark threshold change is included. ### Does this PR introduce _any_ user-facing change? The supported release baseline and Dockerfile defaults become vLLM v0.33.0. The verified main pin is unchanged. Release note: `release_notes/fragments/20627.yaml`. ### How was this patch tested? - Current head: `70c2b2be95cd66808c88e46aae0bf1c98f951de0`. [E2E42000109512](https://github.com/vllm-project/vllm-ascend/actions/runs/42000109512) has passed pre-commit, test selection and both CPU lanes; each CPU lane reports **16516 passed / 109 skipped**, including all three allocator compatibility tests and successful rebase. Attempt 2 is now terminal **success**: **44/44 hardware shards passed**, ci-gate passed, and **50 jobs succeeded / 8 skipped / 0 failed** overall. Skipped jobs are not test passes. - Python AST parsing, Ruff lint and Ruff format checks pass for all 104 changed Python files. `git diff --check` passes and CI-style rebase onto the current base succeeds as a no-op. - Range-diff confirms the four subsequent release patches are identical. The first patch differs only by removal of the adaptive-verification hunks superseded by upstream. The allocator patch and its tests exactly match current upstream. - Existing adaptive-verification tests cover legacy allocator wrapping and preservation of the Triton allocator. All three allocator tests passed in both current-head CPU lanes; local Windows lacks the Torch runtime. - Full `bash format.sh ci` was attempted with bounded local initialization and stopped at actionlint setup; the task's own formatter process trees were cleaned. A complete local lint pass is not claimed. - Previous head `5f9371a39`, [E2E41996832071](https://github.com/vllm-project/vllm-ascend/actions/runs/41996832071): pre-commit passed; both CPU lanes and test selection failed during rebase, before tests, with the three adaptive-verification conflicts repaired here. Those failures are not runtime test failures. - Historical head `6e4535561`: CPU lanes each passed 16398 tests / 109 skips, and 43/44 hardware shards passed. Release A2 part7 failed before tests on the PyTorch ninja index HTTP503; those old-head results do not validate this head. - Attempt 1 [main24420 A3 job127162106257](https://github.com/vllm-project/vllm-ascend/actions/runs/42000109512/job/127162106257) failed the Qwen DSpark GDN fixed-versus-plain comparison (prompt2/token19, logprob difference 0.1472 > 0.1378). On unchanged published head, the targeted [attempt 2 job127250533233](https://github.com/vllm-project/vllm-ascend/actions/runs/42000109512/job/127250533233) passed the same file (2 tests), the full shard (10 passed / 1 skipped), and [ci-gate127271942785](https://github.com/vllm-project/vllm-ascend/actions/runs/42000109512/job/127271942785) passed. No tolerance or source changes were made between attempts. The rerun was triggered by `vllm-ascend-ci`; this monitor only observed it. Runtime vLLM remains `0.1.dev1+g24420b7a3.empty`; Ascend is `0.19.1rc2.dev3366+g3603d176e` versus attempt 1 `...+g07b5dafcd`, because CI rebases onto live main and produces a local detached commit. Exact rebased full SHA/tree, image digest and weight revision are not established. The first numerical failure's root cause remains unproven; rerun success does not by itself prove fluctuation or exclude every migration association. The release counterpart also passed the same two tests. - Follow-up fixes are limited to v0.33 migration regressions and rebase/restore operations. Other-code failures will be reported separately. Skipped or unexecuted coverage is not counted as passing. - Historical A2 performance, four-node Kimi DSpark, A5 GLM dtype and A5 DSV4 layout risks remain outside ordinary-CI closure. This repair did not post a new nightly comment or restart local hardware validation. - vLLM main: vllm-project/vllm@24420b7 --------- Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
5cdf3f6 to
0a5201f
Compare
vLLM #55688 requires forward_context to size per-layer Mamba state buffers. Preserve the release constructor and lazy metadata initialization, and enforce the installed native signature in the context regression. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
vLLM #55688 passes ZERO_TEMPORAL_TOKEN_BIAS to the globally replaced kernel. Match its optional flag and temporal-only bias semantics while preserving convolution bias, legacy callers and the Ascend pointer-copy workaround. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Keep all source-executed kernel cases and assertions while making the exec-installed callable visible to mypy on Python 3.10, 3.11 and 3.12. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Mirror the native collector added by vLLM #55688 in the existing Ascend KV initializer. The inherited update_requests path reads this list on hybrid prefix-cache block copies. Preserve release/old-main initialization, lazy model-state binding, cache containers and connector registration. Extend profiling and tracker-copy regressions without relaxing assertions. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Match the config-derived encoder DP flag introduced by vLLM #60314 and the optional input normalization initialization from #65577. Retain release and prior-main APIs, ModelSlim tower quantization, and original assertions. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Gate deprecated scheduler prefix fields and Gemma4/Mamba/ReplaySSM API differences with vllm_version_is. Separate split-grid API availability from optional configuration values, preserving None, empty-list, cap restoration and TP/MC2 behavior. Align fixtures and add explicit/default cap regression coverage without dropping existing assertions. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Model the explicit vLLM version alongside the ReplaySSM hook in cache-binding fixtures. Follow the renamed draft metadata helper and select the native release/main single-step draft method when mocking capture. Preserve existing test cases and assertions. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
The pinned vLLM speculator configuration refactor (#63205) makes spec_decode_needs_target_embed read uses_target_hidden_states and draft_model_config.may_use_target_embed. Supply those DFlash capabilities in the official PP embedding fixture, preserving all test cases and assertions and release compatibility. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Official main now imports vllm_version_is at module scope for release-only adaptive verification. Remove the duplicate import replayed from the upgrade while preserving both version-gated behaviors. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Remove test_main2main_v033_contracts.py as requested. Keep existing upstream AST tests and their compatibility fixture changes unchanged pending scope review. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Initialize KDA merged shard IDs and per-parameter load tracking required by vLLM #63752. Complete constructor-bypassing gate fixtures and the Mamba alignment config fixture for the pinned-main APIs, preserving all existing assertions. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Remove the deprecated v0.33 common-prefix block calculation, its SchedulerOutput forwarding, and unused imports. The release SchedulerOutput supplies its default, while verified main no longer exposes this deprecated contract. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Remove deprecated common-prefix block calculations and SchedulerOutput keyword forwarding from the dyntra, recompute, and profiling chunk schedulers. Clean up imports made unused by these deletions, matching the balance scheduler cleanup. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
The cascade compatibility cleanup removed Any even though existing helper and policy annotations still reference it, causing ten Ruff F821 errors. Restore the typing import and verify all four scheduler files with CI's Ruff 0.14.0 check and format checks. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Remove the v0.33 exclusion from non-FULL draft prefill metadata normalization. Request padding in target FULL graphs also exists on v0.33, so eager and PIECEWISE MLA drafts must clamp query lengths to real decode rows on both supported versions. Add regression coverage for both version branches and all three graph modes while preserving target metadata. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Use the upstream query-shape resolver on main while preserving integer query lengths on v0.33.0. Cover the caller contract for both versions across full, eager, and mixed graph modes. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
vLLM main resolves ModelConfig from vllm.config after the speculator config refactor. Patch that lookup on main and retain the speculative-module lookup on v0.33.0 so the real configuration validators receive the intended draft fixture. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
3cd2f57 to
16b3cce
Compare
…16b3cce) Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Model self-contained Kimi/Qwen/GLM DSpark drafts with their declared speculator config class so upstream adaptation preserves the draft architecture and real validation remains exercised. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
…3145cd9) Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
| if self.pcp_manager is not None: | ||
| attn_metadata = self._get_pcp_draft_prefill_metadata(attn_metadata) | ||
| attn_metadata = self._get_draft_prefill_metadata(attn_metadata) |
There was a problem hiding this comment.
I reproduced this on v0.33 with the Kimi K3 MTP test by changing the capture sizes to [8]: one real request has 2 query tokens, while the target FULL graph pads to 8. The eager draft reuses the target’s cumulative query lengths [2,4,6,8], but MLA slices the query to 2 rows, causing the FIA length mismatch. This issue is therefore not specific to the main update; #63406 exposed it under the existing test configuration. Could we reuse the existing PCP adjustment directly in propose() by replacing the PCP-only condition with if attn_metadata is not None, rather than adding another call in _prefill()? The helper modifies a copy, and FULL replay uses the original metadata from model_state for graph parameter updates, so it does not consume the adjusted copy. I tested this placement on v0.33 with both draft eager and draft FULL, and both passed with FULL replay confirmed.
There was a problem hiding this comment.
Thanks for the repro! I updated propose() to reuse the existing metadata adjustment whenever attn_metadata is available and removed the extra call from _prefill().
Apply the existing query-length adjustment whenever target attention metadata is available. Exercise eager, piecewise, and full draft dispatch through propose. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
Expect direct prefill calls to preserve their inputs and supply dictionary attention metadata when testing propose DP synchronization. Signed-off-by: zhao-stack <80399320+zhao-stack@users.noreply.github.com>
What this PR does / why we need it?
Upgrade baseline
24420b7a341af37a9bc3186e6fc6062512e0aa58toba15685ab7f4f5fbed8630bbb7441f8837e76fbe. The complete upstream comparison contains 544 commits.0.33.0release lane. Version gates below distinguish actual release/main signatures, fields, and module ownership.ba15685a. Metadata, fixture repairs, and comment-only changes without an independent upstream API change are identified explicitly.085accc3, rebased onto official main1af7c5fc. CI results below refer to this head.Changes by file
1.
.github/vllm-main-verified.commit24420b7a...ba15685a; there is no single introducing PR.ba15685a.2.
release_notes/fragments/21005.yaml3.
tests/ut/core/test_dyntra_lb_scheduler.pyAsyncScheduler.pp_size; the cadence is derived fromparallel_config.pipeline_parallel_size.4.
tests/ut/core/test_profiling_chunk.pypp_sizewhile retaining the configured pipeline-parallel decode stagger.parallel_config.5.
tests/ut/distributed/kv_transfer/kv_p2p/test_remote_prefill_lifecycle.py_block_hashrepresentation with the publicblock_hashfield.6.
tests/ut/distributed/weight_transfer/test_hccl_engine.pystart_reload/finish_reload(model, config, device)and adds optional load-plan state/payload.empty_cache, select reload symbols by version, and assertuse_load_plan=Falseon main.7.
tests/ut/distributed/weight_transfer/test_npu_ipc_engine.pystart_reload/finish_reloadand forwards the device.8.
tests/ut/kv_offload/test_dspark_transfer_cancellation.py9.
tests/ut/kv_offload/utils.pyModelInfo.speculator_config_classfor declared/custom speculators.speculator_config_class=Noneon the fake OPT model info.10.
tests/ut/ops/test_linear.py11.
tests/ut/ops/test_mla.pyshardq_eligiblefor the CUDA sparse-MLA optimization.12.
tests/ut/ops/test_mla_weight_processing.py13.
tests/ut/patch/platform/test_patch_pp_mtp.pyTokenIdsViewconsumers ofRequest._all_token_ids._all_token_idsto the existing structured-output request fixture.14.
tests/ut/patch/platform/test_patch_use_v2_model_runner.pyspeculator_config.speculator_class.15.
tests/ut/patch/worker/test_deepseek_pp_embedding.pyuses_target_hidden_statesanddraft_model_config.may_use_target_embed. Official Ascend #21114 introduced the PP fixture in the inherited base.SimpleNamespacefields.16.
tests/ut/patch/worker/test_patch_bind_kv_cache.py17.
tests/ut/patch/worker/test_patch_mm_input_norm.pyModelConfig.revisionwhile resolving checkpoint paths.revision=Nonein the existing fake config.18.
tests/ut/quantization/test_utils.pykv_role.19.
tests/ut/spec_decode/test_dspark_graph_contract.pydecode_max_reqs, and_decode_descs.20.
tests/ut/spec_decode/test_eagle_aclgraph_source_regression.pyar_speculatoralias.21.
tests/ut/test_ascend_forward_context.py22.
tests/ut/test_platform.py23.
tests/ut/worker/test_attn_utils_v2.pyallocate=Noneeven when extensible allocation is disabled.24.
tests/ut/worker/test_model_runner_v2.pydecode_query_lento a query-width-to-request-limitdecode_query_lensmapping on main.25.
tests/ut/worker/test_model_runner_v2_kv_cache.pyreplayssm_block_copy_tensorsto scheduler-driven cache-block copies.26.
tests/ut/worker/test_model_runner_v2_mamba.pyforward_contextto count the state tensors attached to actual layers.autospec=True, assert version-specific arguments, layer bindings, block-table identity, and cached context reuse.MagicMockwould accept.27.
tests/ut/worker/test_mtp_pcp_speculator_v2.py28.
tests/ut/worker/test_pcp_profile_budget.pymax_num_new_slots_for_drafting; MTP's value is zero.29.
tests/ut/worker/test_v2_dummy_padding.py30.
tests/ut/worker/test_worker_v1.pygpu_memory_utilization=Noneand resolves the default after allocation mode selection.31.
tests/ut/worker/v2/test_aclgraph.py32.
tests/ut/worker/v2/test_entropy_verify.pyskip_masked_vocab_blocksas a resampling optimization hint.33.
tests/ut/worker/v2/test_lmhead_tp_utils.py_get_pcp_draft_prefill_metadatato_get_draft_prefill_metadata.34.
tests/ut/worker/v2/test_speculator.py_generate_draftto_decode.35.
tests/ut/worker/v2/test_standalone_ar_speculator.py36.
vllm_ascend/_310p/worker/v2/model_runner.pyget_decode_cudagraph_query_lens(...)on main.37.
vllm_ascend/_310p/worker/v2/spec_decode/mtp_speculator.py_decodeentry point on main._generate_draftor main_decodedirectly and expose the Ascend wrapper as_decode.38.
vllm_ascend/_310p/worker_310p.py39.
vllm_ascend/ascend_forward_context.py40.
vllm_ascend/core/dyntra_lb_scheduler.pyget_num_common_prefix_blocksandSchedulerOutput.num_common_prefix_blocks.41.
vllm_ascend/core/recompute_scheduler.pycommon_prefix_kwargs; omit it on main.42.
vllm_ascend/core/scheduler_profiling_chunk.py43.
vllm_ascend/distributed/kv_transfer/kv_pool/kv_offload/native/cpu_npu.pyDevicePointerswith resolved addresses, copy sizes, group counts, and logical block offsets.44.
vllm_ascend/models/deepseek_v4/vl_model.py45.
vllm_ascend/models/deepseek_v41/vl_model.py46.
vllm_ascend/models/gemma4_mm.pyuse_data_parallelinitialized frommm_encoder_tp_mode.vision_input_normproduced bybuild_mm_input_norm.47.
vllm_ascend/models/glm5next/kda.pyshard_idsandloaded_shard_idsafter the PCP-specific allocator.48.
vllm_ascend/models/layer/attention/layer.py49.
vllm_ascend/models/minimax_m3/msa_m3.pyparamfrom both loaders, and retain the release validation branch.50.
vllm_ascend/ops/linear.py51.
vllm_ascend/ops/mla.pyshardq_eligible, including when False.52.
vllm_ascend/ops/triton/mamba/postprocess.pySKIP_TEMPORAL_STATE_COPYwhen temporal migration belongs to the ring materializer.53.
vllm_ascend/ops/triton/mamba/precopy.pyZERO_TEMPORAL_TOKEN_BIASfor ReplaySSM.54.
vllm_ascend/patch/__init__.py55.
vllm_ascend/patch/platform/patch_balance_schedule.py56.
vllm_ascend/patch/platform/patch_speculative_config.pyhf_config_overriderenames the legacy DSpark architecture before returning.57.
vllm_ascend/patch/worker/__init__.pyAutoRegressiveAclGraphManager310to that namespace after the common patch.58.
vllm_ascend/patch/worker/patch_bind_kv_cache.pylayer_kv_cachesand removes tracker-sharing responsibility from native binding.59.
vllm_ascend/patch/worker/patch_eagle_speculator.pyautoregressive; release retains target-dependent AR.60.
vllm_ascend/patch/worker/patch_model_runner.pydecode_query_lens.61.
vllm_ascend/platform.py62.
vllm_ascend/worker/v2/aclgraph_utils.pyMapping[int, int]where release passes one query width.63.
vllm_ascend/worker/v2/attn_utils.pyallocate=Noneand explicitly reject non-None custom allocation.64.
vllm_ascend/worker/v2/model_runner.pyextensible_kv_cacheon all runners.65.
vllm_ascend/worker/v2/model_states/mamba_hybrid.pystatic_forward_contexton main while retaining release creation and lazy cached initialization.66.
vllm_ascend/worker/v2/spec_decode/dflash/aclgraph.pydecode_query_lensrather than the release scalar parameter.67.
vllm_ascend/worker/v2/spec_decode/rejection_sampler_utils.pyskip_masked_vocab_blocksargument to native rejection-sampler calls.68.
vllm_ascend/worker/v2/spec_decode/standalone_ar/speculator.py+1and max-length clamp only for release step 0.69.
vllm_ascend/worker/v2/spec_decode/target_dependent_ar/aclgraph.pySpeculatorCudaGraphManagerto shared autoregressive graph utilities.70.
vllm_ascend/worker/v2/spec_decode/target_dependent_ar/speculator.py_decode._decodeto the Ascend wrapper.71.
vllm_ascend/worker/worker.pygpu_memory_utilizationoptional and exposesresolved_gpu_memory_utilization.total_memory * Noneand retain the native default rather than hard-coding a ratio.Compatibility and review notes
allocate=Noneand initializingextensible_kv_cache=Nonepreserves the existing allocator; this PR does not implement extensible/VMM cache allocation.tests/ut/test_main2main_v033_contracts.pyAST suite was removed. Existing source/AST-based tests inherited from the base are retained. The fixture and assertion-name updates above do not introduce another AST-only suite.Does this PR introduce any user-facing change?
The verified main compatibility baseline advances to the fixed SHA above while retaining vLLM v0.33.0 support. The changes restore compatibility with native scheduling, loading, graph execution, speculative decoding, Mamba, offloading, and Gemma4 initialization contracts. The release note is
release_notes/fragments/21005.yaml; passing hardware behavior is not established by the current CI results.How was this patch tested?
Current-head E2E run 42987360392 has completed for Ascend
085accc3:16950 passed, 102 skipped, 34 warnings.ba15685a:29 failed, 16937 passed, 86 skipped, 27 warnings. The unresolved failures are 2 Kimi gate-loading cases missingAscendMergedColumnParallelLinear.shard_ids, 7 KDA PCP projection cases missingKDAInputParallelLinear.shard_ids, and 20 Mamba platform-alignment cases whose fixture lacksuse_flashinfer_replayssm. These failures are not reported as infrastructure-only failures or as fixed.