ATK(华为算子测试平台)详细介绍

ATK(ApiToolKits)是华为昇腾生态中面向算子接口的端到端测试工具,属于 MindStudio 工具链家族(项目地址:gitcode.com/Ascend/ATK),定位是为算子开发者和算子测试人员提供"用例泛化生成 + 用例测试执行"的一站式框架,用来简化昇腾 NPU 算子的验证流程。

一、工具定位与背景

ATK 运行在华为 CANN(Compute Architecture for Neural Networks,神经网络计算架构) 之上。CANN 是昇腾针对 AI 场景推出的异构计算架构,向上对接 MindSpore、PyTorch、TensorFlow 等框架,向下服务昇腾 AI 处理器,发挥着"承上启下"的关键作用。而 MindStudio 是华为面向昇腾 AI 开发者提供的全流程工具链,覆盖训练开发、推理开发和算子开发等环节,ATK 正是其中算子测试环节的工具。

二、核心功能

ATK 的主要能力可以概括为以下几个方面:

能力维度具体内容
用例生成自动生成算子测试用例,覆盖常规值、边界值和特殊 Tensor;支持通过 YAML 泛化生成大量不同 shape、dtype、取值范围的用例
执行后端支持 CPU、NPU 等后端作为待测节点或标杆(benchmark)节点
测试类型精度测试(待测算子 vs 标杆算子结果比对)、性能测试、确定性测试等
结果输出自动生成日志与 Excel 格式的总结报告,含总用例数、精度通过率、是否达标等信息
扩展能力支持通过插件(function_*.py)扩展参数约束、执行方式和精度比较逻辑
AI 辅助配备 Agent Skills,可被 Claude Code、Codex 等 CLI 编程助手自动加载,辅助根据算子文档自动生成测试用例与执行器

三、环境要求

使用 ATK 前需要准备:

  • 已安装 CANN 环境
  • Python 3.8 及以上版本
  • 测试 PyTorch 算子时,建议安装 Ascend Extension for PyTorch 2.1 及以上版本
  • 推荐在 conda 环境或容器环境中安装运行
    安装方式为源码编译 whl 包后通过 pip install 安装,安装完成后可通过 pip show atk 验证。

四、基本使用流程

ATK 的标准使用闭环为:环境准备 → 安装工具 → 用例执行 → 查看结果
1. 用例构造
通过 CSV 或 YAML 文件定义测试用例。关键字段包括:

  • name:指定要测试的算子名(如 torch.max),框架会自动调用对应接口
  • input0 等:入参名称,可自定义
  • dtypeshaperange_values:定义输入张量的类型、形状和取值范围
  • standard.acc:精度标准
  • single_bm:单标杆配置
    2. 执行命令
# PyTorch 场景
atk pytorch pytorch/torch.max.csv
# Aclnn 场景
atk aclnn aclnn/aclnnUnique.csv
# 泛化用例生成
atk case -f path/to/your.yaml

3. 结果查看
结果和日志默认保存在 atk_output 目录下,目录结构如下:

atk_output/
  all_op_max_时间戳/
    log/atk.log                      # 运行日志
    report/all_op_max_reports_时间戳.xlsx  # Excel 总结报告
    input/                           # 输入数据
    output/                          # 输出数据

控制台会同步输出任务汇总信息,例如总用例数、精度通过率和是否达标。

五、典型应用场景

  • 算子可用性快速验证:开发者在实现自研算子后,用少量用例快速确认功能是否正确
  • 精度对比测试:将待测算子(通常跑在 NPU 上)与标杆算子(通常跑在 CPU 上)的输出结果进行比对,快速发现精度偏差
  • 泛化压力测试:通过 YAML 配置自动生成数百条不同 shape/dtype/取值范围的用例,对算子进行大范围覆盖性测试,挖掘边界条件下的质量问题
  • 性能测试:采集算子执行耗时等性能数据,辅助性能调优

六、与华为其他测试平台的区别

需要注意的是,"ATK"特指上述昇腾算子测试工具,而华为体系内还有其他名称相近但用途完全不同的测试平台,容易混淆:

  • DevEco Testing:面向 HarmonyOS 富设备(手机、平板等)的测试平台,提供稳定性、安全、功耗、性能、图形图像、兼容性六大测试服务
  • 华为云测试服务:面向 Android/HarmonyOS 应用的云测平台,提供海量真机上的兼容性、稳定性、性能、功耗、安全检测
  • TestMan(华为云测试管理平台):一站式的测试管理与自动化测试平台,侧重用例管理、测试执行和缺陷跟踪
  • MindStudio 中的 msOpST:CANN 官方的算子测试工具,与 ATK 侧重不同,msOpST 更偏向在真实硬件环境中验证算子输入输出的功能正确性

七、总结

ATK 是一款轻量、易上手、可扩展的算子测试框架,核心价值在于把"构造用例 → 跑 NPU/CPU 对比 → 出报告"这条原本繁琐的链路标准化、自动化了。无论是自研算子的功能验证,还是官方算子的大规模精度回归,都能通过几条简单命令完成闭环,并且借助插件机制可以灵活适配各种自定义约束和比对逻辑。对于昇腾算子开发者而言,它是 CANN + MindStudio 工具链中"测试验证"环节的重要补充。

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐