Skip to content

[CI][Main2Main] Adapt vLLM through September 3 after #14872 - #15627

Closed
zhao-stack wants to merge 8 commits into
vllm-project:mainfrom
zhao-stack:codex/main2main-20260902
Closed

zhao-stack wants to merge 8 commits into
vllm-project:mainfrom
zhao-stack:codex/main2main-20260902

Conversation

@zhao-stack

@zhao-stack zhao-stack commented Sep 3, 2026 •

Copy link
Copy Markdown
Collaborator

What this PR does / why we need it?

以已合入 PR14872 的最新 main fd815467c221ee600137f6bdd53fe354d5e7c999 为基线,仅升级 PR14872 之后的区间:

  • old: e6bfe03ad73a3330cb427885aa90d97a12e1c704(8 月 28 日节点)
  • new: 560ef78bfe734ea894f8a866e50406574021b9f5(9 月 4 日节点)
  • PR14872 的历史提交已从本 PR 提交范围中移除,不重复适配其升级区间。
  • 按维护者明确要求,本 PR 仅支持 main commit lane,不使用 vllm_version_is 区分双版本,不验证/承诺 v0.27.1 兼容。release marker 不变。
  • 临时双版本 workflow 已移除;pr_test.yaml 与 _selected_tests.yaml 与 rebase 基线 fd81546 完全一致,CPU 和设备任务只对接 verified main commit,ready-all 保留。

Per-change upstream evidence

下表代码路径除明确 tests/ 外均相对于 vllm_ascend/;所有上游原因均已验证在 (old, new] 内。全部适配仅针对 main commit lane。

下游修改点 升级为何要求此修改 对应上游修改 验证
patch/platform/patch_kv_cache_utils.py:分组补丁入口、Uniform 分组统计 旧 group/unify 与 uniform-group hook 被新 packed hook 取代;改接新入口,保留 Ascend 分组规则;统计调用改用 get_max_layers_per_page_size。 #53896: vllm/v1/core/kv_cache_utils.py live packed-hook、分组规划断言
patch/worker/patch_mamba_utils.py:分组返回值与三处状态复制 get_mamba_groups 从二元 tuple 改为按 spec 分类的 dict;保留上游新分组实现,复制时按每层 mamba_type 选择函数映射,不再迭代旧 tuple。 #53896: vllm/v1/worker/mamba_utils.py uniform groups、逐层复制单测
worker/model_runner_v1.py:Mamba 复制函数生产端 两处原 model tuple 获取改用上游 runner 的后端分类映射,匹配复制端的新协议。 #53896: vllm/v1/worker/gpu_model_runner.py runner 及 Mamba 复制测试
worker/v2/block_table.py:slot enablement 透传 CircularBufferSpec 不使用 token slot;把上游生成的 slot_mapping_enabled tensor 传到 Ascend kernel。 #53896: vllm/v1/worker/gpu/block_table.py CPU kernel kwargs + NPU enabled/disabled cases
_310p/worker/v2/model_runner.py 与 block_table.py:310P recurrent group 标记 展开 Uniform spec 后识别 CircularBufferSpec,构造 enablement 列表;310P kernel 对禁用 group 写 PAD_SLOT_ID。 #53896: vllm/v1/worker/gpu/model_runner.py 310P 初始化、forwarding 与 slot mapping 单测
ops/triton/v2/block_table/compute_slot_mappings.py:设备 kernel 消费 slot_mapping_enabled,禁用 group 不生成 token 索引;保持原有 CP 布局和 padding 语义。 #53896: vllm/v1/worker/gpu/block_table.py 新增 4 个设备 case;test_config 登记预计耗时,原 nightly fixture 同步
patch/worker/patch_bind_kv_cache.py:group metadata 与 ring tracker 接受新增 kv_cache_groups,在实际绑定后调用上游 share_replayssm_ring_trackers;不宣称增加 NPU ReplaySSM 支持。 #52506: vllm/v1/worker/utils.py 绑定 metadata 透传测试;DSV4 bind mock 新 keyword
worker/v2/model_runner.py、_310p/worker/v2/model_runner.py:dummy state flag 上游 dummy 调用新增 valid_dummy_state_slots;两层 override 接收并透传,不丢失合法 state-slot 请求。 #52506: vllm/v1/worker/gpu/model_runner.py 普通及 310P exact parent kwargs 测试
core/kv_cache_interface.py:MLA storage 字段冲突 新增可空 dataclass 字段与 Ascend 只读 property 同名,构造会冲突。移除 property,helper 显式区分 Ascend 物理行数与上游 None/override,并递归处理 Uniform spec。 #53906: vllm/v1/kv_cache_interface.py 构造、merge/resize、None/override、Uniform 几何测试
attention/dsa_v1.py、attention/context_parallel/dsa_cp.py:metadata 物理行数 字段存在但可为 None,getattr 默认值不会触发;改用 storage helper,保留最新 main 的 cache_group_key/layer_names。 #53906: vllm/v1/kv_cache_interface.py 压缩 prefix-cache 与 DSA 几何测试
worker/model_runner_v1.py、_310p/worker/v2/model_runner.py:cache views 缓存 view 和 indexer/scale shape 使用实际物理行数,避免新可空字段直接进入 shape 计算。 #53906: vllm/v1/kv_cache_interface.py compressed prefix cache、attn_utils 与 310P 测试
core/recompute_scheduler.py:边界状态交接 替换删除的 partial_tail API:每步 drain 新 boundary offers,在 CoW retention 释放前快照 current block IDs,交给 connector 构建 metadata,随后清空 scheduler-local 字段。仅删旧字段会漏掉交接;AscendOffloadingConnector 继承的上游调度端确实消费新字段。 #51358: vllm/v1/core/sched/scheduler.py 新增 current snapshot / 无 connector drain 回归;2 个隔离单测及实际 CPU 回归均通过
distributed/device_communicators/npu_communicator.py:graph-capture 字段 共享 graph capture 新增读取 fi_pcie_ipc_ar_comm;NPU 不执行 CUDA constructor,需要显式初始化为 None。 #53576: vllm/distributed/parallel_state.py NPU communicator constructor protocol 测试
worker/v2/sample/gumbel.py:draft 参数与随机盐 新增必需 is_drafting 参数并对 draft position 加 1<<30 salt;Ascend 被安装为 sampler/speculator replacement,必须保持新参数顺序和随机行为。 #54282: vllm/v1/worker/gpu/sample/gumbel.py main 参数顺序单测 + draft salt 设备回归;19 个原设备测试方法不变
tests/ut/models/minimax_m3/test_minimax_m3_vit.py:多模态 mock 继承 helper 改用 get_multimodal_config,mock 增加返回原配置的 accessor;不改变运行时代码。 #54079: vllm/model_executor/models/interfaces.py 原 vision-pruning 断言保留
tests/ut/patch/platform/test_patch_mamba_block_aligned_split.py:scheduler mock 继承 split helper 新读 use_eagle_block_drop,补齐测试字段。 #53388: vllm/v1/core/sched/scheduler.py 原边界分割断言保留
worker/v2/model_runner.py、_310p/worker/v2/model_runner.py:InputBatch 构造及对应回归 上游 #54436 删除 max_seq_len_np;删除普通 runner prepare_inputs 中该值的 PP 计算及构造 keyword,并删除 310P 的 max_seq_len_np=None keyword。首次 rebase 漏保留这项适配,已由 CPU 回归捕获并恢复;不是删除测试断言。 #54436: vllm/v1/worker/gpu/input_batch.py 原 prepare_inputs source contract 断言保留;本地实际方法检查和修复后 CPU 回归均通过
tests/ut/distributed/ascend_store/test_pool_worker.py:Mamba dtype fixture #53896 在 MambaSpec.is_uniform_with_collection 新增 page_size_bytes 比较;旧路径不读 dtype,新路径调用 get_dtype_size 时暴露了 fixture 的 NumPy dtype。仅改为 torch.float32,保持原分组识别断言,不改生产逻辑。 #53896: vllm/v1/kv_cache_interface.py 首轮 CPU traceback 已定位新增访问链;old/new 源码确认;修复后 CPU 回归通过

Exact-contract scan

新基线为 fd815467c221ee600137f6bdd53fe354d5e7c999,上游 old/new 如上;engine 7bd156ac14fa5d289c942ce88652d7de85307817,scenario main2main、profile exact-contracts、无 external roots。因基线改变,已重新完成 validate 和 predict(退出码 0)。指纹 e9b767e728e0fac32f4a8ed3fdf022ff61e55c5a7f44a4ecc09d7ee991500f67;engine package SHA256 966906dea108013cb4f163ae04543b40d8880b654efab3eab476293778bf6663。predict 耗时 1372.33 秒,全部计划能力 analyzed/included。

结果为 6 个 introduced 根因 / 8 条关系,逐条核实四项 gates 全真;两处旧 KV grouping hook、bind 参数、Mamba 返回协议、普通/310P BlockTables 参数、普通/310P execute_model 参数均由本 PR 适配覆盖。另有 35 warnings、7 preexisting、314 unresolved、1 fixed,未批量当作升级修复。#53906、#51358 语义交接、Gumbel draft delta 和两项 CPU 失败另以直接源码证据记录。旧 c72 扫描不作为新基线完成依据;后续仅修改适配代码不重复扫描。

Does this PR introduce any user-facing change?

将 verified-main 节点移至 9 月 4 日,适配其接口和行为变化;本 PR 暂不支持双版本。

How was this patch tested?

  • 本地 scope/workflow/syntax 检查通过;改动 Python 文件没有 vllm_version_is;原有 19 个 Gumbel 设备测试方法 AST 不变。
  • 边界交接新增两项隔离单测通过(执行实际 helper,但未加载 torch/NPU;不等同完整运行时测试)。
  • 完整 format.sh ci 已执行:Ruff check/format、拼写、typos、clang-format、markdownlint、Actionlint 通过。Windows 本机其余 hook 受 /bin/bash、shellcheck、python3 launcher 限制;未关闭 hook,修复后远端 pre-commit 已通过。
  • 首轮新 CI 34098781247:pre-commit 通过;CPU 3585 passed / 2 failed / 37 skipped,设备被正常 CPU gate 阻止。日志确认对接 560ef78、Ascend 输入 a96f178。新增边界状态两个单测在实际 CPU 环境均通过。
  • 两项 CPU 失败对应上表 #54436 与 #53896,均有 e6..560 区间内直接修改点。已在 2b04dd8 修复,不跳过测试、不放松 gate;修复后 CPU 两项原失败用例均通过,设备验证亦已完成。
  • 修复后 CI 34101594737:head 2b04dd8522c4c1cb7e5962bff9d128fa3b4f2313,attempt 1,最终 SUCCESS。pre-commit、CPU、三种设备构建、全部 12 个设备任务及 ci-gate 均通过。CPU 3600 passed / 37 skipped,两项原失败均 PASSED。
  • 设备验证均对接 vllm@560ef78:A2 单卡 5 个分片,A3 双卡 2 个分片、四卡 2 个分片、八卡 1 个任务,310P 单卡与四卡各 1 个任务,全部 SUCCESS。
  • 针对性回归:slot mapping 所在 A2 分片 中 test_slot_mapping_enabled.py 4 passed;Gumbel 所在 A2 分片 中 test_gumbel_sampling.py 32 passed,包含 draft salt 回归。
  • A5、upstream selected tests、推荐及 coverage 上传的跳过由既有 workflow 条件决定,并非本 PR 放松门禁;不将这些未执行任务声称为通过,也不承诺未验证的平台或 release lane。
  • rebase 冲突按下游集成记录,不归为 main2main break;仅修复有本区间上游来源证据的问题。此前 release lane 的既存测试问题不在本次 main-only 修复范围。
  • 截至 2026-09-07 19:25(UTC+8),当前 main commit lane 的必要 CI 已完成,没有剩余的已发现升级引入 CI 报错,本轮验证结束;PR 保持未合入。扫描中的 unresolved 不是全仓兼容性保证,结论限定于已核实契约与本轮实际执行的验证。

以下为 workflow 自动维护的版本尾注,按其当前内容保留;本 PR 目标及实际 CPU checkout 均为上文 560ef78:

@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 performs a compatibility update for the vLLM main CI lane, advancing the vLLM pin to 5d09eb2c. It addresses several breaking changes introduced in recent vLLM commits, specifically regarding KV cache grouping, slot mapping, and multimodal configuration access. The changes ensure that the Ascend-specific NPU model runners and KV cache management logic remain functional on both the v0.27.1 legacy lane and the current vLLM main branch.

Highlights

  • vLLM Version Upgrade: Upgraded the vLLM main pin to commit 5d09eb2c, ensuring compatibility with the latest upstream vLLM developments.
  • KV Cache Contract Adaptation: Adapted the KV cache allocation and layout logic to support vLLM's transition to standardized shared backing allocations, while maintaining compatibility for v0.27.1.
  • Ascend-Specific Optimizations: Implemented memory budget scaling for multi-group KV cache layouts and ensured Ascend-specific NPU communicator fields are exposed for graph capture compatibility.
  • Regression and Compatibility Testing: Added focused regression tests for packed-group hooks, Mamba mapping compatibility, and NPU graph-capture communicator fields to ensure stability across both main and v0.27.1 lanes.
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 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 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 .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 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

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

@github-actions

github-actions Bot commented Sep 3, 2026

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

Suggested PR Title:

[Misc][Feature] Update compatibility with upstream vLLM changes

Suggested PR Summary:

### What this PR does / why we need it?
This PR updates the vllm-ascend integration to maintain compatibility with recent upstream vLLM changes (including #51718, #53515, #53869, #53694, and #54282). It adapts the KV cache allocation, tensor layout planning, and speculator interfaces to handle renamed fields (such as `shared_by` to `layers` and `compress_ratio` to `tokens_per_state`) and the new standardized shared KV backing allocation.

Feedback on the current implementation:
- In `vllm_ascend/worker/model_runner_v1.py` and `vllm_ascend/worker/worker.py`, the `layout` object returned by `get_resolved_kv_cache_layout()` can be `None`. Accessing its attributes directly will raise an `AttributeError` at runtime.
- In `vllm_ascend/patch/worker/patch_mamba_utils.py`, `UniformTypeKVCacheSpecs` and `MambaSpec` are used in `isinstance` checks but are not imported, which will raise a `NameError` at runtime.

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
The changes are covered by updated and newly added unit tests across various modules.

Comment on lines +4325 to +4328
layout = self.vllm_config.cache_config.get_resolved_kv_cache_layout()
tensor_sizes = {tensor.size for tensor in kv_cache_config.kv_cache_tensors}
regions: list[tuple[str, int, int]] = []
if len(tensor_sizes) == 1 and layout.is_layer_compact and layout.is_block_compact:

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.

high

The layout object returned by get_resolved_kv_cache_layout() can be None in certain configurations or tests. Accessing layout.is_layer_compact directly without a None check will raise an AttributeError at runtime. We should add a check to ensure layout is not None before accessing its attributes.

            layout = self.vllm_config.cache_config.get_resolved_kv_cache_layout()\n            tensor_sizes = {tensor.size for tensor in kv_cache_config.kv_cache_tensors}\n            regions: list[tuple[str, int, int]] = []\n            if layout is not None and len(tensor_sizes) == 1 and layout.is_layer_compact and layout.is_block_compact:

Comment on lines +689 to +694
layout = self.vllm_config.cache_config.get_resolved_kv_cache_layout()
if (
has_attention
and has_mamba
and layout.is_layer_compact
and layout.is_block_compact

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.

high

The layout object returned by get_resolved_kv_cache_layout() can be None in certain configurations or tests. Accessing layout.is_layer_compact directly without a None check will raise an AttributeError at runtime. We should add a check to ensure layout is not None before accessing its attributes.

        layout = self.vllm_config.cache_config.get_resolved_kv_cache_layout()\n        if (\n            has_attention\n            and has_mamba\n            and layout is not None\n            and layout.is_layer_compact\n            and layout.is_block_compact

Comment on lines +72 to +75
mamba_spec = kv_cache_group.kv_cache_spec
if isinstance(mamba_spec, UniformTypeKVCacheSpecs):
mamba_spec = mamba_spec.kv_cache_specs[layer_name]
assert isinstance(mamba_spec, MambaSpec)

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.

high

The classes UniformTypeKVCacheSpecs and MambaSpec are used in isinstance checks but they are not imported in this file. This will raise a NameError at runtime. We should import them locally to ensure they are available.

    from vllm.v1.kv_cache_interface import MambaSpec, UniformTypeKVCacheSpecs\n    mamba_spec = kv_cache_group.kv_cache_spec\n    if isinstance(mamba_spec, UniformTypeKVCacheSpecs):\n        mamba_spec = mamba_spec.kv_cache_specs[layer_name]\n    assert isinstance(mamba_spec, MambaSpec)

@zhao-stack
zhao-stack force-pushed the codex/main2main-20260902 branch 5 times, most recently from 1c4686c to 74417f3 Compare September 3, 2026 08:23
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

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

@zhao-stack
zhao-stack force-pushed the codex/main2main-20260902 branch from 74417f3 to 72b3e90 Compare September 4, 2026 03:41
@zhao-stack zhao-stack changed the title [CI] Upgrade vLLM main through 5d09eb2c [CI][Main2Main] Advance vLLM main to 560ef78 after #14872 Sep 4, 2026
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

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

@zhao-stack

zhao-stack commented Sep 4, 2026 •

Copy link
Copy Markdown
Collaborator Author

/rerun
[Bot]: rerun completed.

Rerun (failed jobs only):

  • E2E

@zhao-stack zhao-stack changed the title [CI][Main2Main] Advance vLLM main to 560ef78 after #14872 [CI][Main2Main] Adapt vLLM through September 3 after #14872 Sep 5, 2026
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

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

shenzhao added 7 commits September 7, 2026 15:40
Build on PR vllm-project#14872 at d9d162d. Adapt the exact post-e6bfe03 upstream interval, including #53896, #52506, #51358, #54079, #54282, #54436, #53576, #53388 and the #53906 storage-field collision. Preserve v0.27.1 contracts and leave its pin unchanged.

Signed-off-by: shenzhao <shenzhao9@huawei.com>
Complete the e126687a (#53896) main-only contract: inherited V2 setup disables slot mappings for CircularBufferSpec groups, but the Ascend kernel previously ignored the flag. Emit PAD before indexing state rows and retain the explicit v0.27.1 no-flag path. Add CPU forwarding and NPU CP/padding regressions.

Signed-off-by: shenzhao <shenzhao9@huawei.com>
Update target Gumbel test calls for the #54282 required drafting argument and main API while retaining every existing assertion and the legacy call path. Add draft-noise salt coverage. Move the new #53896 slot-mapping regression into the existing PR one-card lane so ready-all actually runs it without CI configuration changes.

Signed-off-by: shenzhao <shenzhao9@huawei.com>
Register the PR #53896 circular-buffer slot-mapping regression in the required estimated_times map. Use the existing 600s default as an initial scheduling estimate, not a measured duration or test timeout. This fixes the missing registration introduced when the new in-range regression was moved into the PR suite; no runtime, routing, skip, or assertion changes.

Signed-off-by: shenzhao <shenzhao9@huawei.com>
Gate the vLLM #53896 CircularBufferSpec adaptation explicitly on the main lane instead of probing symbol availability. Keep the v0.27.1 slot-mapping behavior and cover both lane selections.

Signed-off-by: shenzhao <shenzhao9@huawei.com>
Signed-off-by: shenzhao <shenzhao9@huawei.com>
Adapt upstream vllm PR #51358 (6b110badbb22d3f66c7218b71138f13b7a6b3419): drain boundary offers, snapshot current block tables before CoW retention release, pass scheduler-local state to connectors, and clear it before worker dispatch. AscendOffloadingConnector inherits the upstream consumer. Add boundary snapshot and no-connector regression tests.

Signed-off-by: shenzhao <shenzhao9@huawei.com>
Restore the #54436 InputBatch max_seq_len_np removal lost during rebase. Match #53896's newly evaluated Mamba page-size contract by using torch.float32 in the existing uniform-group fixture. Both failures were observed in run 34098781247; retain assertions and the CPU gate.

Signed-off-by: shenzhao <shenzhao9@huawei.com>
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

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

yzeyu71 added a commit to yzeyu71/vllm-ascend that referenced this pull request Sep 9, 2026
Keep the working set that made the A2 unit tests pass on the Sep-4
kv_config_builder vLLM (get_max_layers_per_page_size / may_override /
_annotate_eagle_groups(use_deepseek_v4_fallback) / storage_block_size
setter / bind_kv_cache kv_cache_groups / is_kv_cache_spec_uniform).
Temporary: superseded by rebasing onto vllm-ascend main2main vllm-project#15627.

Signed-off-by: yangzeyu <532183776@qq.com>
yzeyu71 added a commit to yzeyu71/vllm-ascend that referenced this pull request Sep 9, 2026
…e_num_blocks

The vllm-project#15627 clean migration calls kv_cache_planning.may_override_num_blocks
(no aliasing shim), so the monkeypatch must target the public name. The old
private name only existed in the b2f-based shimmed branch.

Signed-off-by: yangzeyu <532183776@qq.com>
yzeyu71 added a commit to yzeyu71/vllm-ascend that referenced this pull request Sep 9, 2026
…53558 vLLM

The vllm-project#15627 base targets vLLM main where get_kv_cache_groups lives in
kv_cache_utils; the Sep-4 #53558 fork moved the group-planning entry to
kv_cache_planning. worker.py's top-level import therefore failed on the A2
#53558 box, breaking every vllm_ascend.worker.worker.* patch (module never
registers as a package attr). Also retarget test_attn_utils_v2 to the public
planning may_override_num_blocks (the shim-era private name is gone).

Signed-off-by: yangzeyu <532183776@qq.com>
yzeyu71 added a commit to yzeyu71/vllm-ascend that referenced this pull request Sep 9, 2026
Under the #53906 storage_block_size optional-override semantics the field on
AscendMLAAttentionSpec stays None (matching the vllm-project#15627-only storage tests that
assert is None); the derived physical size must be read via
get_storage_block_size(). These three base tests asserted the field directly
(== 32), which only held under the pre-#53906 property semantics.

Signed-off-by: yangzeyu <532183776@qq.com>
@zhao-stack zhao-stack closed this Sep 12, 2026
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