评测任务样例 (tasks)
定位:本目录是评测流水线的示例 fixture,非生产评测目标。 mish/exp 等正式评测算子在
tasks/目录下,本目录仅提供 add/sqrt 两个轻量算子, 供开发者理解评测任务目录结构、验证流水线是否正常工作。
目录结构
examples/tasks/
├── level1/ # L1 基础算子
│ └── sqrt/ # Sqrt 算子(单输入 Elementwise)
│ ├── proto.yaml # 算子原型定义
│ ├── golden.py # PyTorch 参考实现
│ ├── cases.yaml # 评测用例定义
│ ├── cases.csv # 评测用例 CSV 格式
│ └── desc.md # 算子 API 文档
├── level2/ # L2 中级算子
│ └── add/ # Add 算子(双输入 Elementwise)
│ ├── proto.yaml
│ ├── golden.py
│ ├── cases.yaml
│ ├── cases.csv
│ └── desc.md
├── metadata/ # Baseline 性能数据
│ ├── 910b2.json # 910b2 平台 baseline(fixture,值均为 0.0 placeholder)
│ └── VERSION # 版本信息
└── README.md # 本文件
用例说明
这两个算子的 metadata/910b2.json 中所有 baseline_perf_us 和 t_hw_us 均为 0.0(placeholder),因为本目录用于验证评测流水线机制,不做真实性能评测。
| 算子 | Level | 输入 | dtype | 用例数 | 特点 |
|---|---|---|---|---|---|
| Sqrt | L1 | x (单输入) | float16, float32, bfloat16 | 4 | 演示单输入算子的评测流程 |
| Add | L2 | x, y (双输入) | float16, float32, bfloat16, int32 | 5 | 演示双输入算子的评测流程 |
使用方式
1. 通过评测脚本
# 评测 add 算子
./scripts/run_evaluation.sh --source-dir examples/aclnn_launch_example \
--task-dir examples/tasks/level2/add --no-perf
# 评测 sqrt 算子
./scripts/run_evaluation.sh --source-dir examples/aclnn_launch_example \
--task-dir examples/tasks/level1/sqrt --no-perf
# 评测目录下所有样例算子(add + sqrt)
./scripts/run_evaluation.sh --source-dir examples/aclnn_launch_example \
--task-dir examples/tasks --no-perf
2. 通过 kernel_eval CLI
PYTHONPATH=src python -m kernel_eval.cli eval \
--source-dir examples/aclnn_launch_example \
--task-dir examples/tasks/level2/add \
--no-perf --case-id 1
3. 通过 auto_pipeline
from auto_pipeline.core import CannBenchClient
client = CannBenchClient()
add_case = client.load_case("cann", "examples/tasks/level2/add")
sqrt_case = client.load_case("cann", "examples/tasks/level1/sqrt")
与生产评测任务的关系
| 目录 | 定位 | baseline/t_hw | 用例数 |
|---|---|---|---|
tasks/levelN/<op>/ |
正式评测集 | 真实测量值 | 20+ |
examples/tasks/levelN/<op>/ |
流水线 fixture | 0.0 placeholder |
4-5 |
如需新增生产评测算子,请参照 docs/guide/contributing.md 将算子目录放入 tasks/levelN/ 下。
与算子工程样例的关系
| 目录 | 定位 | 内容 |
|---|---|---|
examples/direct_launch_example/ |
算子实现样例 | C++ kernel + Python bindings(编译→安装→调用) |
examples/aclnn_launch_example/ |
ACLNN 算子实现样例 | ACLNN 模式算子工程 |
examples/tasks/ |
算子评测样例 | proto.yaml + golden.py + cases.yaml + metadata/(定义→评测) |
简单理解:direct_launch_example / aclnn_launch_example 教你"怎么写算子",examples/tasks 教你"怎么评算子"。