文档
注册

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

json配置说明

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

  • 输入/输出规则排布(所有输出参数排布在输入参数之后):例如Kernel入口函数的参数排布为extern "C" __global__ __aicore__ void add_custom(GM_ADDR input1, GM_ADDR input2,uint32_t input3, GM_ADDR output)
  • 标准自定义算子工程场景、ops_adv工程场景的开发人员一般按此方式配置算子json文件。
  • 以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": "z.bin"
            }
        ],
        "attrs": [
            {
                "name": "mask",
                "dtype": "list_int",
                "value": [0,0]
            },
            {
                "name": "repeatTimes",
                "dtype": "int",
                "value": 1
            },
            ......
        ]
    }
  • 以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": "x",
                "dtype": "int32",
                "format": "ND",
                "ignore": false,
                "shape": [32],
                "param_type": "required",
                "data_file": "ref_x.bin"
            }
        ],
        "attrs": [
            {
                "name": "mask",
                "dtype": "list_int",
                "value": [0,0]
            },
            {
                "name": "repeatTimes",
                "dtype": "int",
                "value": 1
            },
            ......
        ]
    }
表1 固定输入/输出顺序的算子json全量参数说明

配置项

数据类型

参数说明

取值说明

是否必选

op_type

string

算子名。

与待调测算子严格匹配。

data_script

string

数据生成脚本(python),用于生成输入和标杆数据。

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

说明:

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

gen_data

bool

是否根据data_script生成输入和标杆数据。

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

inputs /

outputs

name

string

核函数输入/输出的参数名。

根据实际情况设置(若通过算子二进制模板文件生成,不建议修改)。

dtype

string

输入/输出的数据类型。

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

说明:

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

format

string

输入/输出的存储格式。

支持的数据格式有ND、NZ。

shape

list

输入/输出的shape。

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

说明:

当输入为Scalar时,shape填null。

ignore

bool

是否忽略该输入/输出。

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

param_type

string

是否必选该输入/输出。

  • required:必选。
  • optional:可选。

data_file

string

  • inputs场景下,指输入数据bin文件。
  • outputs场景下,指标杆数据bin文件。

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

说明:
  • 当data_file设为空字符或null,表示不对运行输出作精度比对。
  • 当输入为Scalar时,data_file字段删除,只需配置data_value。

data_value

由dtype确定

输入的Scalar值。

根据实际情况填写。

说明:
  • 只有input节点才可以配置该参数。
  • data_value与data_file互斥。若配置data_value则data_file必须删除,且shape必须为null,表示本节点是Scalar输入。

attrs

name

string

算子的属性名,是区分每个算子的唯一标识,不可重复。

部分场景允许没有attrs,请根据实际情况填写。

dtype

string

数据类型。

value

可变

属性值。

特殊格式输入

  • 场景1:支持Scalar格式的输入。

    当输入为Scalar格式,json中“inputs”配置项中删除data_file,shape配为null,data_value配为指定的标量值。

    {
      "op_type": "xxxx",
      "data_script": "",
      "gen_data": false,
      "inputs": [{
          "name": "tileNumIn",
          "dtype": "uint32",
          "param_type": "required",
           ......
          "shape": null,
          "data_value": 8
        }]
        ......
    }
  • 场景2:支持TensorList格式的输入。

    当输入为TensorList格式,该参数需要用[ ]表示,List中的每一项表示一个Tensor,示例如下:

    {
      "op_type": "xxxx",
      "data_script": "",
      "gen_data": false,
      "inputs": 
          # 输入为tensor list
          [{
              "name": "key0",
              "dtype": "float16",
              "format": "ND",
              "ignore": false,
              "shape": [1,5,8192,128],
              "param_type": "required",
              "data_file": "/home/data/input/k_0.bin"
          },{
              "name": "key1",
              "dtype": "float16",
              "format": "ND",
              "ignore": false,
              "shape": [1,5,8192,128],
              "param_type": "required",
              "data_file": "/home/data/input/k_1.bin"
          }]
      ......
    }
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词