已关闭
[Requirement|需求建议]: 增加最小功能测试 CI 能力与统一测试清单 #33
zhangzijie创建于 3月19日关闭于 3月19日
3月19日 添加了label:requirement
zhangzijie
3月19日 评论:
3月19日 评论:
/assign


3月19日 将 zhangzijie 设为负责人
3月19日 关联了pull request:test: add minimal functional CI runner and manifest
3月19日 关闭了 issue
3月20日 添加了label:resolved
Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
一、背景信息 (必填)
当前
cann-samples仓库已有.ci/build.sh用于看护构建流程,能够完成 configure / build / install / package,但缺少统一的功能测试 CI 入口。现状问题主要有:
hif8)安装目录结构与源码/README/测试脚本假设不完全一致,影响自动化执行。本需求希望在不引入过度抽象的前提下,为仓库增加一套最小可落地的功能测试 CI 原型,用于支撑后续样例的逐步接入和回归执行。
二、价值/作用 (必填)
该需求的价值主要体现在以下几个方面:
适用场景包括:
三、设计方案 (必填)
3.1 使能方式(涉及哪些框架:如Aclnn直调、Pytorch训练等)
本需求不引入新的算子框架能力,主要面向仓库级测试基础设施。
使能方式如下:
.ci/build.sh完成仓库统一构建、安装、打包.ci/run_ci_functional.sh调用功能测试执行入口.ci/run_ci_functional.py读取测试清单并执行对应 sampletests/ci_functional_test.yaml定义当前纳入功能测试的样例、命令与通过规则当前纳入功能测试的样例包括:
vector_addmatmul_basichif8_quantize3.2 总体设计
3.2.1 算子支持的数据类型
本需求本身不新增算子数据类型支持。
功能测试覆盖的数据类型由各 sample 自身决定:
vector_add:float32matmul:由 sample 当前实现支持的数据类型决定hif8_quantize:覆盖 HiFloat8 相关路径3.2.2 host侧设计
host 侧设计聚焦仓库级测试调度,而非算子 host 逻辑本身。
总体结构如下:
.ci/build.sh.ci/run_ci_functional.sh.ci/build.sh.ci/run_ci_functional.pytests/ci_functional_test.yamlsetup/stepspass_criteria做机器判定summary.json、stdout、stderr、exit code 等产物tests/README.md.ci/README.md伪代码示意:
manifest = load_yaml("tests/ci_functional_test.yaml") for sample in manifest["samples"]: run(sample["setup"]) run(sample["steps"]) assert pass_criteria(sample) write_summary() ###### 3.2.3 kernel侧设计 本需求不改动 kernel 计算逻辑。 仅涉及一个与自动化测试相关的样例结构修正: - hif8 安装时保留 scripts/ 子目录,使安装树结构与源码、README、测试脚本一致 ##### 3.3 支持硬件 本需求依赖当前仓库已有样例所支持的硬件和运行环境,不额外扩大硬件支持范围。 当前测试执行依赖: - 已安装可用的 CANN 工具链 - 目标机器具备对应 NPU 运行环境 - 样例自身所需 Python 依赖已安装