SuperAPI AI 工具集

triton-operator-performance-eval

测试与质量

查看项目

更新于 10-15 19:57

技能介绍

用途:评估 Ascend NPU 上 Triton 算子的性能,通过 msprof 采集数据、诊断瓶颈类型并输出性能报告。核心原则是只相信 msprof 数据,不凭直觉。性能比 Ratio = torch_npu 耗时 / Triton 耗时,Ratio ≥ 1.0 表示 Triton 更快,目标通常为 Ratio ≥ 1.0x。

主要能力:函数级采集用 msprof --application="python x.py",适合多算子对比与全链路分析;算子级采集用 msprof op --kernel-name=K python x.py,适合硬件利用率与 Bank Conflict 分析。决策流程为先 msprof 定位热点,再 msprof op 深度分析。瓶颈分为 Memory-Bound(AI 低于硬件平衡点)、Compute-Bound(AI 高于平衡点)、Latency-Bound(带宽与计算利用率均低),本技能只负责诊断归类,优化手法交由 triton-operator-performance-optim。

使用方式:按任务加载参考资源,函数级对比加载 msprof-function-level.md,算子级分析加载 msprof-op-level.md 与 performance-data-analysis.md,理解术语加载 ascend-terminology.md。完成后输出基本信息、性能指标(耗时、内存带宽利用率、Cube/Vector 利用率、L2 命中率、Bank Conflict)、瓶颈诊断与优化建议,利用率低于 30% 标记为重点关注。

限制与陷阱:禁止用 time.time()、torch.npu.Event、do_bench 等非 msprof 方式计时;必须同硬件对比,不可 Triton(NPU) 对 PyTorch(CPU);需预热至少 5 次后采集,覆盖小/中/大 shape,固定 dtype,采集时避免打印或日志。函数级 msprof 会包含 JIT 编译时间,op_statistic 中 Avg 可能远高于 msprof op 的 Task Duration,应仅比较稳态调用或直接用 Task Duration 作基准。注意 Triton 为 AI_VECTOR_CORE,torch_npu 为 MIX_AIC,需检查 aic_cube_ratio 是否为 NA。