SuperAPI AI 工具集

external-gitcode-ascend-ascendc-operator-performance-eval

测试与质量

查看项目

更新于 10-15 17:20

技能介绍

用途:在 ascend-kernel 仓库中为 csrc/ops/<算子名>/ 建立可复用的 profiler 性能用例,并产出「自定义算子 vs 标杆」的 Markdown 性能对比报告。

主要能力:以 torch_npu.profiler 采集性能数据,固定 warmup=5、active=5,每步调用 prof.step();从导出目录 *_ascend_pt/ASCEND_PROFILER_OUTPUT/op_statistic.csv 汇总各算子 Total Time(us),按 active×repeat 或 active 折算单步耗时;生成统一对比表(Case | Shape | DType | 自定义算子(us) | 标杆(us) | 加速比)、全量汇总、按数据类型汇总与简短分析。

使用方式:用例仅以 JSONL 形式维护(如 <op>_perf_cases.jsonl),每行一个含 inputs 数组的 JSON 对象;生成用例前必须先读 csrc/ops/<op>/test/<op>-test-cases.md(若存在)与 csrc/ops/<op>/design.md,提取 dtype、参数约束、典型 shape 与执行模式,用例总数不少于 8,覆盖小/中/大规模及全部支持 dtype。产物统一放在 csrc/ops/<op>/test/:JSONL 用例、<op>_torch_npu_profiler_report.md、profiler_trace/ 导出目录及性能脚本。可参考 examples/layer_norm_profiler_reference/ 整体拷贝后替换算子名与前向调用。

适用场景:AscendC 自定义算子的性能回归与标杆对比评估。

限制:warmup 与 active 不允许改为其它值;报告必须为双路径对比,无标杆等价接口时须用小算子拼接实现标杆路径(以张量操作为主,避免 Python 标量循环),不得输出单路径报告;不生成 .json 用例文件或 *_profiler_results.json;结果须在对话中展示核心表格与结论,不能只给路径。具体算子支持范围与性能数据以实际运行为准,资料未提供固定数值。