输入配置
用户在使用Ascend C调测工具之前,需要提供算子输入数据及标杆数据,同时还需根据实际情况配置算子信息json文件,这些是后续各种调测功能的输入。
- 准备待测算子的输入数据和标杆数据(bin格式)。
支持采用工具随机生成的数据、自定义Python脚本生成的数据等作为输入/标杆数据,具体方法请参见输入数据和标杆数据准备。
- 获取算子json配置模板。
本场景以工具自带的Add算子json配置文件为模板,文件路径为${INSTALL_DIR}/tools/ascendc_tools/sample/cmd/minimalist_add_case/add_test.json,其中${INSTALL_DIR}为CANN安装包路径。
- 根据实际算子shape信息,修改步骤2中的算子json配置模板,该模板的关键参数说明参见表1。
{ "op_type": "add_custom", "data_script": "", "gen_data": false, "params": [{ "name": "x", "dtype": "float16", "param_type": "input", "shape": [1,16384], "data_file": "input_x.bin" }, { "name": "y", "dtype": "float16", "param_type": "input", "shape": [1,16384], "data_file": "input_y.bin" }, { "name": "z", "dtype": "float16", "param_type": "output", "shape": [1,16384], "data_file": "golden.bin" }, { "name": "tileNumIn", "dtype": "uint32", "param_type": "input", "shape": null, "data_value": 8 } ], "kernel_info": { "kernel_source": "add_custom.cpp", "kernel_name": "add_custom", "kernel_includes": [] } }
表1 Kernel直调工程的json配置说明 参数名
数据类型
参数说明
配置值建议
op_type
string
算子名。
与待调测算子严格匹配。
data_script
string
数据生成脚本,用于生成输入和标杆数据。
此处填写“”。
gen_data
bool
是否根据data_script生成输入和标杆数据。
此处填写false。
params
name
string
核函数输入/输出的参数名。
用户根据实际情况修改。
dtype
string
输入/输出的数据类型。
支持的数据类型有bool、int、int8、int16、int32、int64、uint8、uint16、uint32、uint64、float16、float32、float64、bfloat16。
param_type
string
标识该节点是输入或输出。
用户根据实际情况修改,可选值 {input、output}。
shape
list
输入/输出的shape。
根据算子实际shape填写,例如[24,20,144,8]。
data_file
string
- 当param_type为input:输入数据bin文件。
- 当param_type为output:标杆数据bin文件。
数据bin文件的绝对路径,例如"/path/data.bin"。
data_value
由dtype确定
输入的Scalar值。
- 仅当param_type为input时才需要配置该参数。
- data_value与data_file互斥。若配置data_value则data_file必须删除,且shape必须为null,表示本节点是scalar输入。
用户根据实际情况填写。
kernel_info
kernel_source
string
Kernel入口源文件绝对路径。
用户根据开发的核函数信息填写。
kernel_name
string
kernel入口函数名。
用户根据开发的核函数信息填写。
kernel_includes
list
kernel文件依赖的头文件所在的路径。
可设为[],也可填入多个路径。