Skip to content

[Bugfix][Worker] Runtime compatibility for Qwen3.5 perf path#10

Closed
lHrHenry233 wants to merge 2 commits intomainfrom
smallpr/worker-runtime-compat
Closed

[Bugfix][Worker] Runtime compatibility for Qwen3.5 perf path#10
lHrHenry233 wants to merge 2 commits intomainfrom
smallpr/worker-runtime-compat

Conversation

@lHrHenry233
Copy link
Copy Markdown
Owner

@lHrHenry233 lHrHenry233 commented Apr 7, 2026

What this PR does

This PR is a runtime compatibility follow-up to keep the serving path stable with minimal review scope.

Changed files (2):

  • vllm_ascend/worker/model_runner_v1.py
  • vllm_ascend/patch/worker/patch_qwen3_next.py

Main changes

  1. model_runner_v1.py
  • Make draft proposer import optional to avoid startup failures when that module is unavailable in some deployments.
  • Use dynamic proposer-type checks for isinstance/assert to support both environments.
  • Keep max_num_blocks_per_req in NPUInputBatch call to match current interface.
  1. patch_qwen3_next.py
  • Ensure recurrent state is BF16 before calling npu_recurrent_gated_delta_rule (both spec and non-spec paths) to avoid dtype runtime errors.

Why this split

This PR only addresses runtime compatibility, without mixing scheduler semantics or kernel-level optimization changes.

Validation

  • python3 -m py_compile vllm_ascend/worker/model_runner_v1.py vllm_ascend/patch/worker/patch_qwen3_next.py

- make draft proposer import optional to avoid startup hard failure when module is absent
- remove stale max_num_blocks_per_req argument from NPUInputBatch call
- cast recurrent state to bf16 before npu_recurrent_gated_delta_rule in qwen3_next patch

This PR focuses on runtime stability and compatibility and intentionally excludes scheduler/config or kernel-level optimization changes.

Signed-off-by: lHrHenry233 <lHrHenry233@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 7, 2026

👋 Hi! Thank you for contributing to the vLLM Ascend project. The following points will speed up your PR merge:‌‌

  • A PR should do only one thing, smaller PRs enable faster reviews.
  • Every PR should include unit tests and end-to-end tests ‌to ensure it works and is not broken by other future PRs.
  • Write the commit message by fulfilling the PR description to help reviewer and future developers understand.

If CI fails, you can run linting and testing checks locally according Contributing and Testing.

Follow-up adjustment after upstream API drift: NPUInputBatch now accepts max_num_blocks_per_req, so keep passing it to preserve block-limit semantics while retaining other runtime compatibility fixes in PR10.

Signed-off-by: lHrHenry233 <lHrHenry233@users.noreply.github.com>
@lHrHenry233 lHrHenry233 closed this Apr 7, 2026
@lHrHenry233 lHrHenry233 deleted the smallpr/worker-runtime-compat branch April 7, 2026 13:14
lHrHenry233 pushed a commit that referenced this pull request Apr 10, 2026
…(v3.1)

- Port upstream _causal_conv1d_fwd_kernel as NPU Triton kernel
  - Handles initial/final/intermediate conv state in-kernel
  - Supports APC block boundary state writes
  - NPU adaptations: removed .cache_modifier, kept debug_barrier
- Rewrite causal_conv1d_fn to dispatch to new Triton kernel
- Rewrite gdn.py conv1d path: split decode/prefill like upstream
  - Decode: causal_conv1d_update_npu with block params
  - Prefill: causal_conv1d_fn with APC params (new kernel)
- Fix SSM #6: _build_initial_state only zeros prefill sequences
- Fix SSM #7: _write_final_states adds slot >= 0 validation
- Fix SSM #8: _scatter_intermediate_states adds unaligned offset
- Update all 36 UTs to pass with new num_computed_tokens_all field

Alignment status vs upstream #26807:
  #1 conv1d prefill kernel:     FIXED (kernel ported)
  #3 causal_conv1d_fn params:   FIXED (rewritten)
  #4 intermediate conv state:   FIXED (kernel internal)
  #6 SSM zeroing scope:         FIXED
  #7 _write_final_states guard: FIXED
  #8 SSM scatter alignment:     FIXED
  #9 causal_conv1d_fn signature: FIXED
  #2 decode pre-copy:           KEEP (NPU needs it)
  #5 SSM decode index:          OK (correct approach)
  #10 conv layout hardcoded:    DEFERRED

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant