用途:在真实 NPU 上采集算子性能数据,系统解读 8 个 CSV 指标文件,判定性能是否达标、定位瓶颈类型并给出优化建议。适用于算子开发完成后的性能验收、性能问题定位、优化效果验证及 Agent team 测试阶段。
主要能力:提供从上板采集到瓶颈定位的工作流。流程为构建算子、使用 msprof op 采集数据、归档数据并生成统计摘要、对照性能标准判定、查阅瓶颈优化速查表、修改代码后重新采集验证。采集输出的 OPPROF 目录包含 OpBasicInfo.csv、PipeUtilization.csv、ArithmeticUtilization.csv、Memory.csv、MemoryL0.csv、MemoryUB.csv、L2Cache.csv、ResourceConflictRatio.csv 等文件。归档脚本会将 CSV 复制到 operators/{operator_name}/docs/perf/round_NNN/ 并生成 summary.txt 统计摘要。判定时可对照核间负载均衡、Block Dim、VEC/MTE2/fixpipe ratio、icache_miss_rate、bank conflict、L2 命中率、头开销、DoubleBuffer、带宽利用率等标准,并按不同算子类型预期 ratio 分布判断异常。
使用方式:构建直调算子可执行 cd operators/{operator_name} && mkdir -p build && cd build && cmake .. && make -j;构建 aclnn 算子使用 bash build.sh --pkg --soc=ascend910b --ops={operator_name} --vendor_name=custom -j16 等命令。采集使用 msprof op,推荐 msprof op --warm-up=10 --output=./msprof_output ./demo,或加 --launch-count=5 取均值。归档与摘要生成执行 python3 {skill_path}/scripts/perf_summary.py $OPPROF_DIR operators/{operator_name}。优化后重新采集,可用 diff 对比两轮 summary.txt。
限制与注意事项:必须做 warm-up 以避免 DVFS 影响首次运行;需检查 OpBasicInfo.csv 中 Current Freq 与 Rated Freq;MTE2/MTE3 同时读写 GM 时带宽共享;数据量很小时头开销占比会偏高;多核同地址访问可能被串行化。summary.txt 仅作统计聚合,瓶颈判定与优化建议需结合参考文档自主完成。上板需要 NPU,仿真不需要。其余未在资料中说明的内容暂未提供。