TTK(Ops Test Tool Kit)是CANN算子库提供的全链路、自动化、批量化算子测试框架,帮助开发者快速完成算子批量功能验证、性能评估以及Golden值比对,提升算子开发质量和效率。
当前项目代码仓暂无内容
🚀 TTK —— 算子测试工具
TTK(ops Test Tool Kit)是CANN算子库提供的全链路、自动化、批量化算子测试框架,帮助开发者快速完成算子批量功能验证、性能评估以及Golden值比对,提升算子开发质量和效率。
文档中出现的硬件厂商名仅作示例,TTK 通过配置驱动支持任意符合接口的硬件加速器。
- 全栈测试通路:Kernel(AscendC)/ GEIR(GE图)/ ACLNN(aclnn* C API)/ E2E(torch/torch_npu),覆盖算子到框架各层
- 多设备 + 仿真:真实设备支持 NPU / MLU / CPU;仿真模式基于 CPU 模拟 NPU 行为,无需真实硬件即可开发调试
- 多卡并行:多 NPU 设备并行测试
- 多种精度对比:混合容差(生态算子开源精度标准,默认)、统计相对误差、余弦相似度、二进制精确、重量化、三方交叉校验
- 可扩展插件:自定义 Golden / 输入生成,Kernel 与 ACLNN/E2E 独立命名空间
🏗️ 架构层级与测试覆盖
┌──────────────────────────────────────────────────┐
│ 应用框架层 ✅ Torch · TensorFlow · ... │ ← E2E(端到端,覆盖全链路)
├──────────────────────────────────────────────────┤
│ 引擎层 ✅ GEIR · GE · ✅ ACLNN │ ← GEIR(GE图编译+执行)/ ACLNN(引擎 API)
├──────────────────────────────────────────────────┤
│ 算子层 ✅ AiCore · AiCpu │ ← Kernel(算子内核,覆盖编译+执行)
└──────────────────────────────────────────────────┘
🛠️ 环境准备
- 按照昇腾社区安装CANN环境:官方链接
- Python版本建议选择3.8及以上
git clone https://gitcode.com/cann/ops-test-kit.git
cd ops-test-kit
pip install -r requirements.txt
🚀 快速开始
通过 CSV 文件定义测试用例(字段说明详见用例生成),一条命令批量运行:
# 查看设备信息
python3 -m ttk info
# Kernel:编译 + 执行 + 精度比对
python3 -m ttk kernel -i examples/case_store/kernel/add.csv
# GEIR:GE 图编译 + 执行
python3 -m ttk geir -i examples/case_store/kernel/add.csv
# ACLNN:aclnn* C API
python3 -m ttk aclnn -i examples/case_store/aclnn/aclnn_cat.csv
# E2E:框架端到端(--cpu 强制 CPU 后端)
python3 -m ttk e2e -i examples/case_store/e2e/torch_add.csv
运行后终端输出每个用例的精度状态和整体通过率,加 -o 可输出结果 CSV。参数帮助执行 python3 -m ttk kernel --help。
📚 使用文档
通用
测试通路
四条测试通路对应昇腾技术栈不同层级,详见各通路指南。
| 通路 | 覆盖层级 | 指南 |
|---|---|---|
| Kernel | 算子层(AiCore/AiCpu),覆盖编译+执行 | Kernel算子测试指南 |
| GEIR | 引擎层,GE 图编译+执行 | GEIR算子测试指南 |
| ACLNN | 引擎层,aclnn* C API | ACLNN算子测试指南 |
| E2E | 应用框架层(torch/torch_npu),端到端 | E2E算子测试指南 |
高阶使用场景
离线数据准备、XPU 三方交叉校验、确定性计算、Dump 调试、NPUSim 仿真等多参数组合场景,详见任务执行 - 高阶使用场景。
工具适配
- mssanitizer 适配方法 — 内存/竞争/同步检测
- msopprof 适配方法 — 算子性能 Profiling
- msdebug 适配方法 — 算子源码级调试
FAQ
- FAQ一本通 — 常见问题与自定位
🤖 AI 辅助
TTK 配备 Agent Skills,为 CLI 类 AI 编程助手(Claude Code、OpenCode 等)提供 TTK 使用指导。详见 AGENTS.md。
注意:执行
python3 -m ttk命令需要在 ops-test-kit 目录下运行。