本测试报告模板是希望能帮助算子开发者在完成算子开发后进行有效充分的自检,开发出功能、性能都满足要求的高质量算子。
添加算子描述
- 影响范围/算子:op_name
- 影响版本/分支:master
根据算子需求给出算子分类及其对应的精度验收标准
如:算子采用静态阈值标准:diffs=[diff1, diff2], diff1<=3e-3 && diff2 <= 3e-3
详细见 MLU-OPS 精度验收标准
序号 | 需求 | 需求详情 |
---|---|---|
1 | 支持硬件 | MLU270 MLU290 MLU370 |
2 | job类型 | block U1 U4 |
3 | layout | 支持NHWC 、NCHW、ARRAY等layout |
4 | 多维 | 是否支持多维 |
5 | 0元素 | 是否支持0元素 |
6 | 数据类型 | half / float 等 |
7 | 规模限制 | 如果有请说明限制和原因 |
- 数据类型测试
- 多维张量测试
- Layout 测试
- 不同规模 / 整数余数端段 / 对齐不对齐测试
- 零维张量测试/ 0 元素测试
- 稳定性测试
- 多平台测试
- gen_case模块测试
- nan / inf测试
- 内存泄漏检查, 详见GTest-User-Guide-zh
- 代码覆盖率检查,详见GTest-User-Guide-zh
- IO计算效率检查,详见MLU-OPS性能验收标准
关于功能测试,是希望算子开发者能够针对每一个逻辑,每一个分支,每一个判断,进行对应的测例设计,尽量覆盖到所有代码逻辑。
提交新算子时,给出测试点,并说明测试结果。
测试点 | 验收标准 | 测试结果(出错信息) |
---|---|---|
不符合算子限制 | 正常报错 | |
非法参数传递 | 正常报错 |
平台:MLU270
operator | mlu_hardware_time(us) | mlu_interface_time(us) | mlu_io_efficiency | mlu_compute_efficiency | mlu_workwpace_size(Bytes) | data_type | shape |
---|---|---|---|---|---|---|---|
op_name | |||||||
op_name |
平台:MLU290
operator | mlu_hardware_time(us) | mlu_interface_time(us) | mlu_io_efficiency | mlu_compute_efficiency | mlu_workwpace_size(Bytes) | data_type | shape |
---|---|---|---|---|---|---|---|
op_name | |||||||
op_name |
平台:MLU370
operator | mlu_hardware_time(us) | mlu_interface_time(us) | mlu_io_efficiency | mlu_compute_efficiency | mlu_workwpace_size(Bytes) | data_type | shape |
---|---|---|---|---|---|---|---|
op_name | |||||||
op_name |
总结分析主要需要考虑以下几点:
-
需要对功能、性能测试结果有一个总结性的一句话描述;
-
对于功能测试中发现的问题,例如精度不达标、规模受限等问题,需要显式列出;
-
对于性能测试中 efficiency 异常、与对标硬件 latency 或 efficiency 相比差别过大(好于 / 坏于 都要包括)等情况,给出分析解释;