一键导入
precision-binary-search
PyPTO 算子上板二分定位法。通过在 kernel 函数中添加检查点 tensor 作为输入参数进行原地修改,对比中间结果的精度。专注:修改 kernel 签名 → 修改 golden 返回值 → 修改测试函数 → 二分定位首个出错的 op。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
PyPTO 算子上板二分定位法。通过在 kernel 函数中添加检查点 tensor 作为输入参数进行原地修改,对比中间结果的精度。专注:修改 kernel 签名 → 修改 golden 返回值 → 修改测试函数 → 二分定位首个出错的 op。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | precision-binary-search |
| description | PyPTO 算子上板二分定位法。通过在 kernel 函数中添加检查点 tensor 作为输入参数进行原地修改,对比中间结果的精度。专注:修改 kernel 签名 → 修改 golden 返回值 → 修改测试函数 → 二分定位首个出错的 op。 |
通过在 kernel 函数中添加检查点 tensor 作为输入参数进行原地修改,对比中间结果的精度,定位导致精度差异的具体 op。
分析kernel和golden代码,确定需要检查的关键计算节点。选择在关键计算节点之后的位置,确保检查点的结果有明确的含义,优先选择有明显边界的位置(如matmul、softmax之后)。
在kernel函数定义中添加检查点tensor作为输入参数,每个对应一个检查点。
重要原则:
shape推导方法:
kernel函数声明(前端推荐):
@pypto.frontend.jit() 装饰器out.move() 或 pypto.assemble 写入结果重要原则:golden函数的检查点必须与kernel函数的检查点完全一致,包括检查点的数量、shape和dtype、顺序、计算逻辑相同。
返回值数量和变量意义匹配:
检查点对等性原则:
修改返回类型注解,增加检查点对应的tensor类型。
创建检查点tensor,执行kernel(kernel内部会原地修改checkpoint),执行golden,对比最终结果和所有检查点。 注意:如果结果相差过大,或者shape不匹配,重新检查添加的检查点代码;device输出为0,可能是卡冲突了或者检查点添加有误。
根据对比结果,定位到第一个精度不匹配的检查点,问题就在该检查点之前或该检查点的计算中。
先从个别关键的计算点开始,每次添加一个检查点即可,然后继续二分进行精度对比,直到找到精度不对的op。
当检查点在循环内时,需要使用切片或者view, assemble赋值。
确保jit和golden的输出shape一致。
如果dtype不一致,进行转换。golden使用float32,jit使用bf16,统一转换为float32对比。
使用pypto.assemble时,输入和输出变量名不能相同,否则会报错"mix assemble and common operation for same output"。使用不同的变量名解决。
pypto.assemble要求输入输出tensor的dtype一致,否则编译报错"Source dtype must be same with dst dtype!"。使用cast转换dtype解决。
添加检查点时,需要准确理解检查点变量的shape。查看kernel中检查点变量的实际shape(可通过中间变量计算得到),查看golden中对应变量的shape,两者必须一致才能对比。
检查golden和kernel的shape是否一致,不一致检查(检查点输出拼接。
使用切片赋值或者view, assemble赋值,根据代码逻辑选择合适的方法。
统一转换为float32对比。
检查是否在 -> 之后声明了返回值。根据正确的实现方式,检查点tensor应该作为输入参数,而不是返回值。
不需要return。调用kernel函数时添加中间变量在输出列表,不需要接收返回值,因为会原地修改变量。
PyPTO Pass 编译性能优化技能。用于分析和优化 Pass 模块的编译性能,当 Pass 编译耗时过长需要优化时使用此技能。
定位测试案例中出现 aicore error 时的问题 CCE 文件和问题代码行。当用户说"aicore error"、"定位 aicore error 的原因"、"帮我定位 aicore error 报错"时使用此技能。也适用于用户直接提供 CCE 文件希望定位问题代码行或映射到源码的场景。
PyPTO 环境安装与环境问题修复,包括 CANN、torch_npu、编译工具链、第三方依赖和 PyPTO 编译运行等。触发词:PyPTO environment setup, CANN install, torch_npu, NPU environment, Ascend toolkit, compile PyPTO, build PyPTO, NPU driver, prepare_env, diagnose environment, fix import error, torch_npu import fail, DT_FP8E8M0, pto-isa, ASCEND_HOME_PATH, npu-smi, softmax verify, pip dependency conflict
分析当前 session 上下文,识别 PyPTO 框架或文档不完善导致的断裂点,产出可转化为 Issue 的结构化报告。当用户在 pypto 相关 skill 运行结束后提到"断裂点"、"识别断裂点"、"检测断裂点"、"fracture point"时触发此 skill。也适用于用户对 session 中遇到的问题进行复盘、想要生成问题报告、或希望改进 pypto 框架/文档质量的场景。
分析 host 侧捕获异常后的堆栈信息,通过地址到源码行映射和符号解析,定位问题代码位置。支持 Python traceback、C++ stack trace 和混合堆栈的自动识别与分析。支持编译Debug版本PyPTO包并定位具体代码行。Triggers:"堆栈分析"、"堆栈反汇编"、"分析堆栈信息"、"地址到源码行"、"stack trace"、"backtrace"
PyPTO MACHINE 内存重叠检测与修复技能。通过系统化流程检测和修复 workspace 内存重叠、内存管理策略问题导致的精度异常。当怀疑精度问题由内存重叠、workspace 不足、内存管理异常引起时使用此技能。触发词:内存重叠、内存重叠检测、workspace问题、内存管理异常、内存复用错误。