ElementwiseOpUT
概述
ElementwiseOpUT继承了OpUT,包含了OpUT的能力。
ElementwiseOpUT主要供单输入单输出的Elementwise类型的算子进行测试用例的定义,例如Abs, Square等算子。
ElementwiseOpUT为这类算子提供了更加便利的接口,例如,创建算子编译用例时,对于一些简单场景无需输入format等信息。
ElementwiseOpUT测试类定义
- 函数原型
ElementwiseOpUT(op_type, op_module_name=None, op_func_name=None)
- 参数说明
- op_type:算子的类型。
- op_module_name:算子的module名称(即算子的实现文件名称和路径),例如:impl.add(文件路径为:impl/add.py)。默认值为None,可根据op_type自动生成,op_type到算子实现文件名称的转换规则可参见4,例如MaximumGrad算子自动生成module名称"impl.maximum_grad"。
- op_func_name:算子的接口名称,算子实现文件中的算子接口名。默认值为None,可根据op_type自动生成,op_type到算子实现文件中接口名称的转换规则可参见4,例如Add算子,则需要在impl/add.py中存在add接口,接口定义如下所示:
@check_op_params(REQUIRED_INPUT, REQUIRED_INPUT, REQUIRED_OUTPUT, KERNEL_NAME) def add(input_x, input_y, output_z, kernel_name="add"):
add_elewise_case接口
- 函数原型
ElementwiseOpUT.add_elewise_case(self, soc, param_info, expect=op_status.SUCCESS, case_name=None)
- 功能说明
- 参数说明
- soc:测试该用例是否支持对应的昇腾AI处理器,昇腾AI处理器的取值范围可从Ascend-cann-toolkit安装目录/ascend-toolkit/latest/compiler/data/platform_config目录下查看,对应“*.ini”文件的名字即为可配置的昇腾AI处理器类型。support_soc支持的数据类型为str、tuple或者list,tuple或者list表示可以支持多个SoC。若配置为“all”或者“None”,表示支持所有的SoC。
- param_info:算子的输入信息,有两种形式:
- [dtype, shape, format, ori_shape, ori_format]
- [dtype, shape, format]:此种形式下,ori_shape与ori_format的取值与shape、format的取值相同。
- expect: 期望是否编译成功,默认为“op_status.SUCCESS”,当测试异常场景时,期望的结果可配置为RuntimeError。
- case_name:默认为None,测试框架会自动生成测试用例的名称。
示例:
ut_case.add_elewise_case("Ascend910", ["float16", (32, 32), "ND"])
以上用例与调用如下add_case接口的用例实现功能相同:
ut_case.add_case(support_soc="Ascend910", case={ "params": [{ "shape": (32, 32), "ori_shape": (32, 32), "format": "ND", "ori_format": "ND", "dtype": "float16" }, { "shape": (32, 32), "ori_shape": (32, 32), "format": "ND", "ori_format": "ND", "dtype": "float16" }] })
add_elewise_case_simple接口
- 函数原型
ElementwiseOpUT.add_elewise_case_simple(self, soc, dtypes, shape, expect=op_status.SUCCESS, case_name=None)
- 功能说明
- 参数说明
- soc:测试该用例是否支持对应的昇腾AI处理器,昇腾AI处理器的取值范围可从Ascend-cann-toolkit安装目录/ascend-toolkit/latest/compiler/data/platform_config目录下查看,对应“*.ini”文件的名字即为可配置的昇腾AI处理器类型。support_soc支持的数据类型为str、tuple或者list,tuple或者list表示可以支持多个SoC。若配置为“all”或者“None”,表示支持所有的SoC。
- dtypes:需要测试的数据类型,填写多个数据,相当于一次添加了多个测试用例。
- shape:算子输入的shape。
- expect: 期望是否编译成功,默认为“op_status.SUCCESS”,当测试异常场景时,期望的结果可配置为RuntimeError。
- case_name:默认为None,测试框架会自动生成测试用例的名称。
此接口较add_elewise_case接口,相当于将输入的所有format配置为“ND”。
示例:
ut_case.add_elewise_case_simple("Ascend910", ["float16", "float32"], [32, 32])
以上用例与调用如下add_case接口的用例实现功能相同:
ut_case.add_case(support_soc="Ascend910", case={ "params": [{ "shape": (32, 32), "ori_shape": (32, 32), "format": "ND", "ori_format": "ND", "dtype": "float16" }, { "shape": (32, 32), "ori_shape": (32, 32), "format": "ND", "ori_format": "ND", "dtype": "float16" }] }) ut_case.add_case(support_soc="Ascend910", case={ "params": [{ "shape": (32, 32), "ori_shape": (32, 32), "format": "ND", "ori_format": "ND", "dtype": "float32" }, { "shape": (32, 32), "ori_shape": (32, 32), "format": "ND", "ori_format": "ND", "dtype": "float32" }] })
父主题: UT测试接口参考