尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CANN/cannbot-skills: CANNBot A5基线采集工作流

CANN/cannbot-skills: CANNBot A5基线采集工作流
📅 发布时间:2026/7/15 8:10:47

CANN-Bench A5 基线采集与跑分工作流

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

本文档说明 CANN-Bench 在Ascend A5(Ascend950DT_9582)上如何采集官方性能基线、如何跑分对比。


1. 基线是什么

概念说明
Baseline(基线)CANN 生态在该硬件上的参考实现性能,用于算加速比和 SOL 分
Golden(精度参考)tasks/levelN/<op>/golden.py,CPU/NPU 数值对比,与 baseline 无关
t_hw_us硬件理论下界(带宽/算力模型),用于 SOL% 计算
baseline_perf_us参考实现在 A5 上实测的 device kernel 耗时(μs)

基线不是用户自研 kernel 的性能,而是「CANN 官方路径跑同一套 case 有多快」。


2. 采集方案总览

tasks/levelN/<op>/cases.yaml ↓ scripts/baseline/inputs.py ← 按 case 生成输入(与评测一致) ↓ scripts/baseline/refs/level{N}.py ← NPU 参考实现(ref_fn) ↓ PerfEvaluator + msprof ← 复用评测框架采 kernel 耗时 ↓ tasks/metadata/Ascend950DT_9582.json

核心脚本:cann-bench_A5/scripts/collect_baseline.py

设计原则:

  • 复用评测体系的PerfEvaluator+KernelDetailsStrategy(与正式跑分同一套计时逻辑)
  • 复用refs/下的 NPU 参考算子,保证 baseline 代表 CANN 生态路径
  • 每个 case独立子进程采集,避免 profiler session 状态污染
  • 强制ASCEND_LAUNCH_MODE=ACL,确保 msprof 产出完整kernel_details.csv

3. 环境准备

source /path/to/cann-9.0.0/bin/setenv.bash conda activate xxx # 需 torch + torch_npu;Exp 等算子还需 torchair 依赖, 这块用户提供python环境 cd /path/to/cann-bench_A5 export PYTHONPATH=src

** 算子如果使用 torchair + torch.compile,需要额外依赖**:

pip install protobuf decorator scipy psutil absl-py # torchair 由 torch_npu 内嵌,collect_baseline.py 会自动 alias 到 sys.modules

4. 采集命令

4.1 单算子

python scripts/collect_baseline.py \ --op level1/exp \ --device-id 0 \ --warmup 5 \ --repeat 20

4.2 按级别 / 全量

python scripts/collect_baseline.py --level 1 python scripts/collect_baseline.py --all

4.3 常用参数

参数默认说明
--op—算子路径,如level1/exp、level2/softmax
--device-id0NPU 卡号
--warmup5预热次数
--repeat20采集 repeat 次数
--cases全部逗号分隔 case id,如1,2,5
--skip-existingoff跳过 metadata 中已有数据的 case
--force-recollectoff强制重采
--output自动输出 JSON 路径
--bench-roottasks/评测集根目录

5. 参考实现(refs)策略

refs 注册在scripts/baseline/ref_registry.py,按 level 分文件:

算子类型参考路径典型 kernel 形态
Exprefs/level1.py→exp_reftorchair + torch.compile,GE 融合为AutomaticBufferFusionOp×1(Mul/Add/Exp 合一)
Softmaxrefs/level2.py→softmax_reftorch.nn.functional.softmax(eager,SoftmaxV2 单 kernel)
Level2+ 融合算子各 level 文件优先 CANN fused API / torch_npu 专用算子

6. 单 case 采集流程(内部)

对每个 case,BaselineCollector.collect_one_case()执行:

  1. 从cases.yaml读取 shape / dtype / attrs
  2. inputs.py生成 CPU 输入 → 搬至 NPU
  3. 调用ref_fn(inputs, attrs)包装为 profiling 函数
  4. PerfEvaluator.run_profiled()+ msprof 采集
  5. 从kernel_details.csv汇总device kernel 总耗时→baseline_perf_us
  6. 从已有 metadata 读取或保留t_hw_us

计时口径:只统计 device kernel 时间(与候选算子跑分一致),不用 wall clock 替代。


7. 产出物

7.1 文件路径

文件用途
scripts/baseline/output/Ascend950DT_9582_<op>.json单算子采集中间结果
tasks/metadata/Ascend950DT_9582.json正式基线库(BaselineStore 加载)
reports/profiler 归档(调试用)

7.2 metadata JSON 结构

{ "_metadata": { "hardware": "Ascend950DT_9582", "source": "collect_baseline.py (PerfEvaluator + KernelDetailsStrategy + refs)", "warmup": 5, "repeat": 20 }, "level1": { "exp": { "1": { "baseline_perf_us": 11.54, "t_hw_us": 1.09 }, "2": { "baseline_perf_us": 25.62, "t_hw_us": 8.74 } } } }

硬件型号由DeviceManager.get_device_name()自动映射(如Ascend950DT_9582)。


8. 跑分:候选算子 vs A5 基线

8.1 CANN-Bench 评测命令

cd /path/to/cann-bench_A5 source /path/to/cann-9.0.0/bin/setenv.bash conda activate xxx # 用户安装好依赖的环境 PYTHONPATH=src python -m kernel_eval.cli eval \ --source-dir /path/to/candidate/exp \ --task-dir tasks/level1/exp \ --operator Exp \ --device-id 0 \ --processes-per-card 1 \ --warmup 3 \ --repeat 5 \ --output reports/baseline_exp_a5_eval

source-dir 要求:

  • 含build.sh→ 编译libexp_ops.so+ 打包cann_benchwheel
  • 含cann_bench/__init__.py→ 暴露exp(x, base, scale, shift)接口

8.2 评分公式

加速比 speedup = baseline_perf_us / candidate_kernel_us SOL% perf_score = t_hw_us / candidate_kernel_us × 100% 综合得分 = 编译分(20) + 功能分(30) + 性能分(≤50)

8.3 报告字段

评测 JSON 报告(reports/<op>_eval_*.json)每个 case 含:

字段含义
baseline_perf_usA5 基线耗时
elapsed_us候选 kernel 耗时
speedup加速比
t_hw_us硬件理论下界
perf_score归一化性能分(0~1)

9. 常见问题

Q1: Exp 基线采集 0/20 失败

原因:缺少 torchair 运行时依赖(protobuf、decorator、scipy 等)。
对比:Softmax 用 eager API,无 torchair 依赖,通常一次成功。

Q2: baseline 与 cases.csv 中 baseline_kernels 标注不一致

cases.csv 的baseline_kernels是设计预期(如AutomaticBufferFusionOp×1);实际采集以 msprof 抓到的 kernel 为准。Exp 在部分 case 上可能仍是Muls + Add + Exp多 kernel(attrs 导致无法融合)。

Q3: 直调 wall_time 与 CANN-Bench 分数对不上

直调run_all_cases.py的 wall_time 含 ACL 初始化(~5–7s/case),不能与baseline_perf_us比加速比。加速比必须以 CANN-Bench eval 报告的elapsed_us为准。

Q4: 如何更新 A5 基线

python scripts/collect_baseline.py --op level1/exp --force-recollect # 合并写入 tasks/metadata/Ascend950DT_9582.json

Q5: 无 A5 metadata 时的 fallback

BaselineStore 会 fallback 到默认平台(如910b2)的数据并打印 warning;正式 A5 跑分前应确保tasks/metadata/Ascend950DT_9582.json已采集。


10. 关键路径速查

用途路径(cann-bench_A5 仓库内)
基线采集脚本scripts/collect_baseline.py
参考实现scripts/baseline/refs/level{1-4}.py
输入生成scripts/baseline/inputs.py
正式基线库tasks/metadata/Ascend950DT_9582.json
评测用例tasks/levelN/<op>/cases.yaml
性能评测核心src/kernel_eval/eval/perf_eval.py
基线加载src/kernel_eval/utils/baseline_store.py

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

  • 2026年7月最新东莞天梭官方售后客户服务电话及线下网点地址 - 天梭服务中心
  • DRA71x引脚复用实战:从硬件设计到设备树配置的嵌入式开发指南
  • 单片机实战:从零编写IIC驱动点亮OLED屏幕

最新新闻

  • 为什么选择BiSheng JDK-build:华为毕昇JDK构建工具的7大优势
  • 从机械到腾讯:我的两年自学转行与六轮面试闯关实录
  • 【软件设计师-从小白到大牛】下午题进阶篇:第四章 算法策略实战与代码填空精解
  • CANN/HCOMM HCCL测试框架
  • Claude Code:从智能补全到代码库对话的AI编程助手实战
  • VideoDownloadHelper:高效实用的Chrome视频下载助手完整指南

日新闻

  • 告别启动盘残留:用Diskpart彻底清除U盘EFI分区与恢复完整空间
  • 2026 年宜春诚信的塑料缠绕膜厂家哪个好,缠绕膜背后的秘密:你不知道的成本陷阱 - 领域鉴赏官
  • Arch ECS 入门指南:10分钟掌握C#高性能数据驱动架构

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号