已关闭
[Requirement|需求建议]: torch_extension目录拆分 #4502
huangbolin创建于  13 天前关闭于  11 天前
huangbolin
huangbolin成员
13 天前 创建

Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.

Backgroud(背景信息)

当前torch_extension目录下存放了不同算子的torch层接口文件,需要拆分到对应的算子源码目录下,提高易读性和维护性

Benefit / Necessity (价值/作用)

原来 37 个算子的 torch_extension 代码(.py 封装 + csrc/.cpp 注册 + graph_convert 图转换)全部扁平堆在 cann_ops_transformer/ops/ 一个目录里,和各自算子的 C++ 内核(op_kernel/op_host/op_api)物理分离,跨算子找代码、维护、按需构建都很吃力。拆分后把每个算子的 Python 封装、csrc、图转换搬到对应算子目录 {分类}/{算子}/torch_extension/,让「内核实现 + Python 封装 + 图转换」聚在同一算子目录下,职责清晰、易定位易维护,并且天然支持按算子独立打包(--ops 单算子出包)。

Design(设计方案)

把算子相关的 .py/csrc/.cpp/graph_convert_*.py 从 cann_ops_transformer/ops/ 平移到 {category}/{op}/torch_extension/,重写 setup.py 用一个 _collect_op 扫描仓库根下各分类目录的 torch_extension/ 自动收集算子文件打进 whl;ops/init.py 改成 _legacy_map 动态发现 + 别名注册(保留旧的 from cann_ops_transformer.ops import xxx 调用方式不变),并把算子构建统一收敛到 op_builder(OpBuilder + register_meta + PrivateUse1 懒加载),同时支持 --ops 单算子打包(独立 vendor 包名),从而做到「算子代码就近存放、公共构建逻辑复用、对外 API 兼容、可按需裁剪出包」。

likedislike
huangbolinhuangbolin成员
13 天前 添加了label:requirement
huangbolinhuangbolin成员
13 天前 关联了pull request:torch extension整改成分布式
huangbolinhuangbolin成员
13 天前 修改了issue 的描述
huangbolinhuangbolin成员
13 天前 将 hblnb 设为负责人
CANN-robotCANN-robot成员
11 天前 关闭了 issue
CANN-robotCANN-robot成员
11 天前 添加了label:resolved