SuperAPI AI 工具集

external-gitcode-ascend-ascendc-operator-testcase-gen

设计与创作

查看项目

更新于 10-15 17:19

技能介绍

该技能用于AscendC算子验证用例生成,依据用户提供的算子设计文档(design.md)设计用例与标杆。使用场景位于ascendc-operator-design创建design.md之后,ascendc-operator-ut-gen、ascendc-operator-precision-eval、ascendc-operator-performance-eval调用之前。必需参数为设计文档,需包含算子逻辑、输入输出、约束条件与支持的数据类型;未指定时默认读取项目路径下的design.md。

流程先解析文档中的[算子接口]、[计算逻辑]、[参考实现]章节,结合PyTorch已有实现等生成算子标杆并梳理输入输出shape约束,再据此生成典型shape用例与边界泛化用例。生成用例前必须读取templates/test-cases-template.md与design.md。设计原则包括:全dtype覆盖,SUPPORTED_DTYPES需包含design.md[参数说明]中支持的所有数据类型;shape由算子支持的维度决定,不写固定维度;单个用例元素数控制在合理范围;用例总数=(len(TEST_SHAPES)+len(GENERAL_SHAPES))×len(SUPPORTED_DTYPES)≥30。

常规Shape测试(TEST_SHAPES)按算子支持的维度从参考池选取1D至5D的shape,推荐单个shape元素数≤200K。泛化Shape测试(GENERAL_SHAPES)分Small与Large:小shape用于边界、极小值、非对齐测试;大shape对应BERT、GPT-2、ViT等模型典型场景,元素数超200K的shape仅用于泛化测试。

输出时读取templates/test-cases-template.md模板填充并写入csrc/ops/[op-name]/test/[op-name]-test-cases.md(即ascend-kernel/csrc/ops/[op-name]/test/[op-name]-test-cases.md),只输出模板定义的章节:算子标杆、典型用例、泛化用例、使用说明。禁止输出精度验证标准、性能验证标准、UT测试代码及模板外内容。其他收费、价格、平台等信息暂未提供。