Skip to content

[310P]fused recurrent gated delta rule pytorch core and ut - #7398

Merged
wangxiyuan merged 3 commits into
vllm-project:mainfrom
Tflowers-0129:test/fused-recurrent-gated-delta-rule-ut
Mar 25, 2026
Merged

wangxiyuan merged 3 commits into
vllm-project:mainfrom
Tflowers-0129:test/fused-recurrent-gated-delta-rule-ut

Conversation

@Tflowers-0129

@Tflowers-0129 Tflowers-0129 commented Mar 18, 2026 •

Copy link
Copy Markdown
Collaborator

What this PR does / why we need it?

RFC #7394
Add a PyTorch implementation of the fused recurrent gated delta ruler on 310P.

Does this PR introduce any user-facing change?

NO

How was this patch tested?

UT

@github-actions

Copy link
Copy Markdown
Contributor

👋 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.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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 introduces a crucial PyTorch fallback implementation for the fused_recurrent_gated_delta_rule operation, specifically targeting Ascend 310P hardware. This ensures that the operation can execute correctly even when the optimized Triton kernel is not available or suitable. Accompanying this implementation are new unit tests designed to rigorously verify its functional equivalence with the existing Triton kernel, thereby enhancing the robustness and reliability of the system on Ascend platforms.

Highlights

  • PyTorch Fallback Implementation: A new PyTorch-based fallback for the fused_recurrent_gated_delta_rule operation has been introduced for Ascend 310P devices, ensuring functional correctness when the optimized Triton kernel is not used.
  • Unit Testing: Comprehensive unit tests were added to validate the correctness of the new PyTorch fallback by comparing its output against the existing Triton kernel implementation.
  • Ascend 910 Specific Testing: The new tests include a mechanism to skip execution if the environment is not an Ascend 910B/C device, ensuring relevant testing for the target hardware.

🧠 New Feature in Public Preview: You can now enable Memory 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 Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize 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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. 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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a PyTorch reference implementation for the fused_recurrent_gated_delta_rule and a corresponding unit test. The implementation is for Ascend 310P devices. My review has identified a critical bug in the state indexing logic that could lead to incorrect behavior when using ssm_state_indices. I have provided a detailed comment with a suggested fix. Additionally, I've recommended enhancing the unit tests to cover this complex part of the logic to prevent future regressions.

Comment thread vllm_ascend/_310p/ops/fla/fused_recurrent_gated_delta_rule.py
Comment thread tests/ut/ops/test_fused_recurrent_gated_delta_rule.py Outdated
@Tflowers-0129
Tflowers-0129 force-pushed the test/fused-recurrent-gated-delta-rule-ut branch from 0958217 to 8d0600a Compare March 21, 2026 01:21
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

…test

Signed-off-by: Tflowers-0129 <2906339855@qq.com>
@Tflowers-0129
Tflowers-0129 force-pushed the test/fused-recurrent-gated-delta-rule-ut branch from a603206 to 692d03f Compare March 24, 2026 01:27
Tflowers-0129 and others added 2 commits March 24, 2026 10:20
@wangxiyuan
wangxiyuan merged commit 3f4087a into vllm-project:main Mar 25, 2026
33 of 36 checks passed
starmountain1997 pushed a commit to starmountain1997/vllm-ascend that referenced this pull request Mar 25, 2026
…ect#7398)

### What this PR does / why we need it?
RFC vllm-project#7394
Add a PyTorch implementation of the fused recurrent gated delta ruler on
310P.
### Does this PR introduce _any_ user-facing change?
NO
### How was this patch tested?
UT
- vLLM version: v0.17.0
- vLLM main:
vllm-project/vllm@4497431

---------

Signed-off-by: Tflowers-0129 <2906339855@qq.com>
Co-authored-by: wangxiyuan <wangxiyuan1007@gmail.com>
845473182 pushed a commit to 845473182/vllm-ascend that referenced this pull request Mar 25, 2026
…to qwen3next_graph

* 'main' of https://github.com/vllm-project/vllm-ascend: (94 commits)
  [bugfix] Fixed the error issue when overlaying MTP and full decode on DSV3.1 C8. (vllm-project#7571)
  [eagle3][pcp] fix acceptance rate for eagle3 and pcp enabled (vllm-project#7549)
  [bugfix][CI] fix '_OpNamespace' 'vllm' object has no attribute 'qkv_rmsnorm_rope' (vllm-project#7620)
  [Nightly] Nightly pre-build image (vllm-project#7388)
  [Bugfix]Fix deepseek 3.2 C8  precision by rotary tensor (vllm-project#7537)
  adapt to main2main for model runner v2 (vllm-project#7578)
  [Patch] Fix balance scheduling (vllm-project#7611)
  [310P]fused recurrent gated delta rule pytorch core and ut (vllm-project#7398)
  [CI] refine issue triage rules, wan regex and update stale setting (vllm-project#7531)
  [Lint]Add lint hooks for clang-format, shellcheck, forbidden imports, and boolean context manager checks (vllm-project#7511)
  [doc] add enable_sparse_c8 option in configuration options (vllm-project#7600)
  lower log level in PD Disaggregation (vllm-project#7589)
  [model_runner_v2]:optimize the performance of the _compute_slot_mappings_kernel (vllm-project#7575)
  [Feat][SP] Suport SP for VL MoE models (vllm-project#7044)
  Fix  Qwen3Next CI Config (vllm-project#7561)
  [Feat] Add npugraph_ex enablement logging (vllm-project#7574)
  [UT] Align input arguments with Ascend(Yarn)RotaryEmbedding with vLLM and add ut (vllm-project#7358)
  [P/D] Check wildcard  address for layerwise connector (vllm-project#7389)
  [P/D] [Bugfix] fix mooncake layerconnector dead when update_decoder_info fail (vllm-project#7514)
  [BugFix][P/D] fix padding error on FullGraph mode && fix layerwise connector mamba accuracy (vllm-project#7506)
  ...
lihaokun-2026 pushed a commit to lihaokun-2026/vllm-ascend that referenced this pull request Mar 29, 2026
…ect#7398)

### What this PR does / why we need it?
RFC vllm-project#7394
Add a PyTorch implementation of the fused recurrent gated delta ruler on
310P.
### Does this PR introduce _any_ user-facing change?
NO
### How was this patch tested?
UT
- vLLM version: v0.17.0
- vLLM main:
vllm-project/vllm@4497431

---------

Signed-off-by: Tflowers-0129 <2906339855@qq.com>
Co-authored-by: wangxiyuan <wangxiyuan1007@gmail.com>
chenchuw886 pushed a commit to chenchuw886/vllm-ascend that referenced this pull request Apr 1, 2026
…ect#7398)

### What this PR does / why we need it?
RFC vllm-project#7394
Add a PyTorch implementation of the fused recurrent gated delta ruler on
310P.
### Does this PR introduce _any_ user-facing change?
NO
### How was this patch tested?
UT
- vLLM version: v0.17.0
- vLLM main:
vllm-project/vllm@4497431

---------

Signed-off-by: Tflowers-0129 <2906339855@qq.com>
Co-authored-by: wangxiyuan <wangxiyuan1007@gmail.com>
zouyida2052 pushed a commit to zouyida2052/vllm-ascend that referenced this pull request Apr 28, 2026
…ect#7398)

### What this PR does / why we need it?
RFC vllm-project#7394
Add a PyTorch implementation of the fused recurrent gated delta ruler on
310P.
### Does this PR introduce _any_ user-facing change?
NO
### How was this patch tested?
UT
- vLLM version: v0.17.0
- vLLM main:
vllm-project/vllm@4497431

---------

Signed-off-by: Tflowers-0129 <2906339855@qq.com>
Co-authored-by: wangxiyuan <wangxiyuan1007@gmail.com>
Signed-off-by: zouyida2052 <zouyida2002@gmail.com>
yangzhe-2026 pushed a commit to yangzhe-2026/vllm-ascend that referenced this pull request May 6, 2026
…ect#7398)

### What this PR does / why we need it?
RFC vllm-project#7394
Add a PyTorch implementation of the fused recurrent gated delta ruler on
310P.
### Does this PR introduce _any_ user-facing change?
NO
### How was this patch tested?
UT
- vLLM version: v0.17.0
- vLLM main:
vllm-project/vllm@4497431

---------

Signed-off-by: Tflowers-0129 <2906339855@qq.com>
Co-authored-by: wangxiyuan <wangxiyuan1007@gmail.com>
nanxingMy pushed a commit to nanxingMy/vllm-ascend that referenced this pull request May 15, 2026
…ect#7398)

### What this PR does / why we need it?
RFC vllm-project#7394
Add a PyTorch implementation of the fused recurrent gated delta ruler on
310P.
### Does this PR introduce _any_ user-facing change?
NO
### How was this patch tested?
UT
- vLLM version: v0.17.0
- vLLM main:
vllm-project/vllm@4497431

---------

Signed-off-by: Tflowers-0129 <2906339855@qq.com>
Co-authored-by: wangxiyuan <wangxiyuan1007@gmail.com>
Signed-off-by: nanxing <1014662416@qq.com>
adeepn added a commit to jethome-iot/vllm-ascend that referenced this pull request May 30, 2026
SP-0a A0a.11 + A0a.12 deliverables.

A0a.11 — fill jh-architecture.md «Version freeze» с реальными values из image inspection:
- OS: Ubuntu 22.04.5 LTS
- CANN: 8.5.1
- torch: 2.9.0+cpu, torch_npu: 2.9.0
- transformers: 5.5.3, vllm: 0.19.1+empty, vllm_ascend: 0.19.1rc1
- Host driver: 26.0.rc1 (ascendhal 7.35.23)
- Our Harbor image: cr.jethome.work/jethome-iot/vllm-ascend:jh-stable (sha256:0c7122525de75...)

A0a.12 — docs/jh-upstream-status.md initial с current status 9 critical PR/issues
(vllm-project#7394, vllm-project#7306, vllm-project#7398, vllm-project#7798, vllm-project#7109, vllm-project#3017, vllm-project#1565, vllm-project#1700, vllm-project#5318).

Также fix branch naming convention в PR strategy section — `jh-feature/<sub>` instead of
`jh/qwen36-310p/<sub>` (git ref doesn't allow file/dir coexistence).
adeepn added a commit to jethome-iot/vllm-ascend that referenced this pull request May 30, 2026
SP-0a A0a.11 + A0a.12 deliverables.

A0a.11 — fill jh-architecture.md «Version freeze» с реальными values из image inspection:
- OS: Ubuntu 22.04.5 LTS
- CANN: 8.5.1
- torch: 2.9.0+cpu, torch_npu: 2.9.0
- transformers: 5.5.3, vllm: 0.19.1+empty, vllm_ascend: 0.19.1rc1
- Host driver: 26.0.rc1 (ascendhal 7.35.23)
- Our Harbor image: cr.jethome.work/jethome-iot/vllm-ascend:jh-stable (sha256:0c7122525de75...)

A0a.12 — docs/jh-upstream-status.md initial с current status 9 critical PR/issues
(vllm-project#7394, vllm-project#7306, vllm-project#7398, vllm-project#7798, vllm-project#7109, vllm-project#3017, vllm-project#1565, vllm-project#1700, vllm-project#5318).

Также fix branch naming convention в PR strategy section — `jh-feature/<sub>` instead of
`jh/qwen36-310p/<sub>` (git ref doesn't allow file/dir coexistence).
adeepn added a commit to jethome-iot/vllm-ascend that referenced this pull request May 30, 2026
SP-1 A1a.0 investigation revealed что upstream `vllm-ascend` уже merged большинство
fixes планировавшихся как наша работа (PyTorch fallback decode/chunk, patch_qwen3_5).
PR vllm-project#9514 (merged 2026-05-30) addresses vllm-project#7306 MambaSpec dtype.

Decision: rebase jh/main onto upstream/main HEAD (a8658e9) + reduce SP-1 scope to
verify-only (skip ABI/stub kernel — defer to SP-3 on real signature basis).

Backup tag: pre-rebase-2026-05-30 (732f7f8) для recovery.

Refs:
- huawei-ascend/docs/investigations/2026-05-30-sp1-scope-shift.md
- PRs vllm-project#7109, vllm-project#7398, vllm-project#7306, vllm-project#9514
adeepn added a commit to jethome-iot/vllm-ascend that referenced this pull request May 31, 2026
SP-0a A0a.11 + A0a.12 deliverables.

A0a.11 — fill jh-architecture.md «Version freeze» с реальными values из image inspection:
- OS: Ubuntu 22.04.5 LTS
- CANN: 8.5.1
- torch: 2.9.0+cpu, torch_npu: 2.9.0
- transformers: 5.5.3, vllm: 0.19.1+empty, vllm_ascend: 0.19.1rc1
- Host driver: 26.0.rc1 (ascendhal 7.35.23)
- Our Harbor image: cr.jethome.work/jethome-iot/vllm-ascend:jh-stable (sha256:0c7122525de75...)

A0a.12 — docs/jh-upstream-status.md initial с current status 9 critical PR/issues
(vllm-project#7394, vllm-project#7306, vllm-project#7398, vllm-project#7798, vllm-project#7109, vllm-project#3017, vllm-project#1565, vllm-project#1700, vllm-project#5318).

Также fix branch naming convention в PR strategy section — `jh-feature/<sub>` instead of
`jh/qwen36-310p/<sub>` (git ref doesn't allow file/dir coexistence).
adeepn added a commit to jethome-iot/vllm-ascend that referenced this pull request May 31, 2026
SP-1 A1a.0 investigation revealed что upstream `vllm-ascend` уже merged большинство
fixes планировавшихся как наша работа (PyTorch fallback decode/chunk, patch_qwen3_5).
PR vllm-project#9514 (merged 2026-05-30) addresses vllm-project#7306 MambaSpec dtype.

Decision: rebase jh/main onto upstream/main HEAD (a8658e9) + reduce SP-1 scope to
verify-only (skip ABI/stub kernel — defer to SP-3 on real signature basis).

Backup tag: pre-rebase-2026-05-30 (732f7f8) для recovery.

Refs:
- huawei-ascend/docs/investigations/2026-05-30-sp1-scope-shift.md
- PRs vllm-project#7109, vllm-project#7398, vllm-project#7306, vllm-project#9514
ader47 pushed a commit to ader47/vllm-ascend that referenced this pull request Jun 18, 2026
…ect#7398)

### What this PR does / why we need it?
RFC vllm-project#7394
Add a PyTorch implementation of the fused recurrent gated delta ruler on
310P.
### Does this PR introduce _any_ user-facing change?
NO
### How was this patch tested?
UT
- vLLM version: v0.17.0
- vLLM main:
vllm-project/vllm@4497431

---------

Signed-off-by: Tflowers-0129 <2906339855@qq.com>
Co-authored-by: wangxiyuan <wangxiyuan1007@gmail.com>
CXY-Katrina pushed a commit to CXY-Katrina/vllm-ascend that referenced this pull request Jun 27, 2026
…ect#7398)

### What this PR does / why we need it?
RFC vllm-project#7394
Add a PyTorch implementation of the fused recurrent gated delta ruler on
310P.
### Does this PR introduce _any_ user-facing change?
NO
### How was this patch tested?
UT
- vLLM version: v0.17.0
- vLLM main:
vllm-project/vllm@4497431

---------

Signed-off-by: Tflowers-0129 <2906339855@qq.com>
Co-authored-by: wangxiyuan <wangxiyuan1007@gmail.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.

2 participants