Skip to content

chore: PR#5 的 13 个算子按新库约定补两项——register 签名升级 + 多平台文档(平台扩展前) #19

Open

Description

@TruNcat3

你好 @Dashener2 👋

你在 PR #5 引入的 13 个算子目录(_local_scalar_dense / clone / contiguous / copy_ / detach / detach_ / dropout / empty / empty_like / empty_strided / item / result_type / type_as)质量很好——三层测试、黄金、报告四件套在 #16 全库审计中全部达标。审计同时发现两类待补项(均为 #14/#16 之后新增的库级约定,你合并时还不存在),麻烦有空跟进:

待补项

1. register.py 签名升级(13 个全部)

现状是旧式单参签名:

def register_a1(dispatch_key: str = "PrivateUse1") -> torch.library.Library

请升级为带计数器与显式平台的签名(对齐 templates/operator/register.py 模板与 ops/embedding 的 _BACKENDS + _DEVICE_PROBE 范式):

def register_a1(dispatch_key="AutogradPrivateUse1", counter: dict | None = None, platform=None)

理由:op 层拦截验证需要 counter(见各算子 test/op_level.py 的调用习惯);第二平台接入时需要 platform= 显式选择(dispatch_key 推断有歧义场景,见 ops/embedding/PLATFORM.md §4 npu/mlu 同 key 案例)。

2. 多平台文档(平台扩展前必补,当前可先欠)

13 个算子目前单平台(cambricon),暂不强制;但做第二平台接入时必须同步补 PLATFORM.md(绑定清单)+ MERGE.md(七步流程),范式抄 ops/embedding/ 双份即可。

参考材料

背景:#13 端到端实测发现多算子同进程时顶层名 register/kernel 互相遮蔽,#14 包化根治、#16 审计补齐了你们 13 个目录的 __init__.py(无需你操作,已代办);本 issue 的两项是审计中无法代办、需要作者按算子语义确认的部分。

优先级不急,按你们的节奏来;有疑问随时在本 issue 讨论。

Activity

  1. Dashener2 commented on Oct 9, 2026

    @Dashener2
    Contributor

    @TruNcat3 收到,跟进如下:

    第 1 项 register 签名升级(13 个)已完成

    • 签名统一为 register_a1(dispatch_key="AutogradPrivateUse1", counter: dict | None = None, platform=None)
    • 新增 _BACKENDS/_backend_for + _DEVICE_PROBE 守卫;10 个可注册算子支持 counter["n"](test/op_level.py 接入断言);3 个不可注册算子(empty/detach_/result_type)同步签名、保持 NotImplementedError
    • 验证(v26.08.0 容器 / MLU):13/13 三层全绿、pytest tests/unit 24 passed、真实 vLLM A1 注入 1 passed
    • PR: fix: 13 算子 register_a1 签名升级(counter + platform,#19) #25

    第 2 项多平台文档:按约定先欠,做第二平台时补 PLATFORM.md/MERGE.md。

    两点想确认

    1. ops/test_packaging.py 依赖 torch_npu,我们只有 MLU 跑不了(仅做了 13 算子包态导入的等价验证)。非 NPU 环境有推荐跑法吗?需要的话我可把它改成设备无关。
    2. MLU 的 A1 key:ops/embedding 是 Autograd→mlu、AutogradPrivateUse1→ascend;我们单平台把 Autograd/PrivateUse1/AutogradPrivateUse1 都映射到 cambricon(实测均命中)。若希望 MLU 严格用 Autograd,请指正,我再对齐。
  2. added 2 commits that reference this issue on Oct 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions