| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat:add license headers to annotated args examples Co-authored-by: lfz<220252399@seu.edu.cn> # message auto-generated for no-merge-commit merge: !4683 merge fix1 into develop feat:add license headers to annotated args examples Created-by: lfz2812 Commit-by: lfz Merged-by: cann-robot Description: # Pull Request ## 描述 补充4个cmake文件中的license ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1. 2. ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!4683 | 1 个月前 | |
feat: 新增 PyPTO 算子 GE 入图样例 Co-authored-by: lfz2812<2842778284@qq.com> # message auto-generated for no-merge-commit merge: !4797 merge pypto_try into develop feat: 新增 PyPTO 算子 GE 入图样例 Created-by: lfz2812 Commit-by: lfz2812 Merged-by: cann-robot Description: # Pull Request ## 描述 新增 pypto_add_custom 样例,把 PyPTO JIT kernel 通过 Python 自定义算子接入 GE 图执行。 主要变更: - 使用 @register_op 注册 PyptoAddCustom 原型与 infer_meta,@register_op_impl 注册 schema-bound execute(x, y) 实现。 - execute 回调通过 GE EagerOpExecutionContext 申请输出 Tensor,把输入/输出 device 地址经 torchair create_npu_tensors 零拷贝包装为 torch Tensor,再执行 @pypto.jit Add kernel。 - PyPTO kernel 由 src/run.py 在 GE 初始化前于主线程预热编译,execute 回调只消费进程内编译缓存(GE 回调内触发 JIT 编译会因编译器子进程与 GE 运行时冲突而挂起)。 - 通过 ge.exec.static_model_ops_lower_limit=-1 强制 RT2 动态执行路径,使 execute 回调在每次图执行时被调用(默认静态路径下回调仅在任务生成阶段执行一次,与 PyPTO 即时启动模型不兼容)。 - execute 以设备同步保证输入/输出数据可见性,100 轮计时约 3-4 ms/iter。 - README 中英文双语说明 PyPTO 支持现状:仅支持 JIT 直接执行,无独立编译接口和 binary 导出接口,无法预编译为 kernel binary 或转换为 AnnotatedArgs 的 kernel_bin;Python execute 回调 + torchair 桥接是当前 PyPTO 接入 GE 的可行路径。 - examples/custom_op/README.md 与 README_en.md 总览表同步登记新样例。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 静态检查: bash python3 -m py_compile examples/custom_op/pypto_add_custom/src/*.py examples/custom_op/pypto_add_custom/src/ge/*.py bash -n examples/custom_op/pypto_add_custom/run.sh git diff --check 已对全部变更文件执行 pre-commit(ruff/codespell/clang-format/OAT 等),全部通过。 NPU 环境验收(CANN 9.2.0 + Atlas A2): bash source ${ASCEND_HOME_PATH}/set_env.sh cd examples/custom_op/pypto_add_custom bash run.sh 实测输出: text [OnlinePython] PyPTO kernel warm-up PASS [OnlinePython] PyptoAddCustom precision check PASS [Perf] input shape: [8192], dtype: float32 [Perf] iters: 100 [Perf] PyptoAddCustom: 371476 us (avg 3714 us/iter) [OnlinePython] NPU_EXECUTION=PASS [INFO] Online Python PyPTO custom-op pipeline PASS ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 - PyPTO JIT 编译产物(output/ 下 program.json、dy_kernel_*.o 等)为进程内部缓存,未纳入版本管理。 - Python 导入顺序要求 import torch / import torch_npu 在 import pypto 之前,否则可能触发 libc10.so 静态 TLS 报错,README 已注明。 - torchair 桥接优先使用公开 torchair.llm_datadist.create_npu_tensors;torchair 包初始化失败的环境自动降级为直接加载其 C++ 扩展。 - execute 回调的单轮耗时(约 3-4 ms)高于 Ascend C + AnnotatedArgs 路径(约 0.4 ms,参考 annotated_args_refresh_add_custom):开销来自设备同步与 Python 回调,本样例聚焦链路打通而非性能。 - 如需声明式地址刷新或 om 模型下沉,请参考 annotated_args_refresh_add_custom 等基于 Ascend C 的样例。 See merge request: cann/ge!4797 | 1 个月前 |