SuperAPI AI 工具集

external-cannbot-ops-pypto-op-develop

编程与开发

查看项目

更新于 10-15 17:19

技能介绍

用途:当需要编写 PyPTO 算子实现时使用。基于需求规格(SPEC.md)、设计方案(DESIGN.md)和参考实现({op}_golden.py)完成代码实现、精度验证与 README 交付;信息不足时向用户逐步提问补充。

主要能力:生成 custom/{op}/ 下的三件交付物——{op}_impl.py(PyPTO kernel,导出 {op}wrapper(x: torch.Tensor) -> torch.Tensor,使用 @pypto.frontend.jit)、test{op}.py(基于 torch golden 的精度对比测试,用 assert_allclose,输出 [PRECISION_PASS]/[PRECISION_FAIL] 标记)、README.md(算子概述、目录结构、运行方式、验证入口、已知限制等)。

必要用法:阶段一环境准备,检查 CANN 安装(echo ${PATH} | grep cann-8.5.0)与 pto-isa 源码(echo ${PTO_TILE_LIB_CODE_PATH}),必要时执行 scripts/environment_prepare.sh;用 bash scripts/list_idle_chip_ids.sh 找空闲 chip 并 export TILE_FWK_DEVICE_ID;未设置会报 NPU 环境不可用。阶段二读取 references/impl-template.py、references/test-template.py 生成代码,遵循 references/execution-constraints.md。阶段三验证:如未安装 pypto 先执行 python3 build_ci.py -f python3 --disable_auto_execute,再运行 python3 custom/{op}/test_{op}.py;有 NPU 卡时不要用 run_mode=sim。失败时先检查日志中是否有 ErrCode: F,有则按 references/error-code-troubleshooting.md 排查。

限制与注意:PyPTO tensor 创建后是未初始化随机值,须先初始化或保证先写后读;只能使用 PyPTO 已支持的 API,不得无中生有;golden/impl/test 必须职责分离;输出写回须显式(output[:] = ... 或 pypto.assemble(..., output));动态轴须标注 pypto.DYNAMIC,动态范围用 valid_shape,动态循环边界用 unroll_list,matmul/cube 场景须配置 set_cube_tile_shapes;避免同图内回环读写。简洁说明:未提供收费、版本兼容范围等更多信息。