目录

固定输入/输出顺序的算子json配置

json配置说明

固定输入/输出顺序的算子json配置文件中“inputs”和“outputs”参数按照“输入/输出规则排布”,所以要求Kernel入口函数的参数也是按照该规则排布。

简要说明:

以AddCustom算子为例,对应的json配置示例如下,参数说明参见表1。

{
    "op_type": "AddCustom",
    "data_script": "./add_golden.py",
    "gen_data": true,
    "inputs": [
        {
            "name": "x",
            "dtype": "int32",
            "format": "ND",
            "ignore": false,
            "shape": [32],
            "param_type": "required",
            "data_file": "x.bin"
        },
        {
            "name": "y",
            "dtype": "int32",
            "format": "ND",
            "ignore": false,
            "shape": [32],
            "param_type": "required",
            "data_file": "y.bin"
        }
    ],
    "outputs": [
        {
            "name": "z",
            "dtype": "int32",
            "format": "ND",
            "ignore": false,
            "shape": [32],
            "param_type": "required",
            "data_file": "golden_z.bin"
        }
    ],
    "attrs": [
        {
            "name": "mask",
            "dtype": "list_int",
            "value": [0,0]
        },
        {
            "name": "repeatTimes",
            "dtype": "int",
            "value": 1
        },
        // ...
    ]
}

表1 固定输入/输出顺序的算子json全量参数说明

参数名 配置项 数据类型 参数说明 取值说明 是否必选
op_type N/A string 算子名。 与待调测算子严格匹配。 是
data_script N/A string 数据生成脚本(python),用于生成输入和标杆数据。

根据实际情况设置,如"/home/flash_attention_golden.py"。

说明: 若无数据生成脚本,填写空字符或null。

否
gen_data N/A bool 是否根据data_script生成输入和标杆数据。

- true:采用脚本生成数据。

- false:不采用脚本生成数据,默认false。

是

inputs /

outputs

name string 核函数输入/输出的参数名。 根据实际情况设置(若通过算子二进制模板文件生成,不建议修改)。 是

inputs /

outputs

dtype string 输入/输出的数据类型。

目前支持bool、int、int8、int16、int32、int64、uint8、uint16、uint32、uint64、float16、float32、float64、bfloat16。

说明: 算子json配置时dtype仅允许输入一种数据类型,不支持多种数据类型。

是

inputs /

outputs

format string 输入/输出的存储格式。 支持的数据格式有ND、NZ。 是

inputs /

outputs

shape list 输入/输出的shape。

根据算子实际shape填写,例如[24, 20, 144, 8]。

说明: 当输入为Scalar时,shape填null。

是

inputs /

outputs

ignore bool 是否忽略该输入/输出。

- true:表示输入/输出可忽略,不分配Global Memory内存。

- false:表示输入/输出不可忽略,默认false。

否

inputs /

outputs

param_type string 是否必选该输入/输出。

- required:必选。

- optional:可选。

说明: 当param_type为optional时

- ignore为false视为没有该输入。

- ignore为true视为存在该输入。

- 不支持中间有悬空输入。例如,存在3个输入x, y, z时,不允许ignore的情况为false, true, false。

是

inputs /

outputs

data_file string

- inputs场景下,指输入数据bin文件。

- outputs场景下,指标杆数据bin文件。

根据实际情况设置数据bin文件路径,必须为绝对路径,例如"/home/data.bin"。

说明:

- 当data_file设为空字符或null,表示不对运行输出作精度比对。

- 当输入为Scalar时,data_file字段删除,只需配置data_value。

否

inputs /

outputs

data_value 由dtype确定 输入的Scalar值。

根据实际情况填写。

说明:

- 只有input节点才可以配置该参数。

- data_value与data_file互斥。若配置data_value则data_file必须删除,且shape必须为null,表示本节点是Scalar输入。

否

inputs /

outputs

value_depend string 输入是否为Const类型

该配置项可选,不配置该字段表示输入不为Const类型。

- true:输入为Const类型。

- false:输入不为Const类型。

否
attrs name string 算子的属性名,是区分每个算子的唯一标识,不可重复。 部分场景允许没有attrs,请根据实际情况填写。 是
attrs dtype string 数据类型。 部分场景允许没有attrs,请根据实际情况填写。 是
attrs value 可变 属性值。 部分场景允许没有attrs,请根据实际情况填写。 是

特殊格式输入