msProf json配置文件说明
编写算子的定义json文件,配置参数的具体说明请参考表1和表2。
{
  "kernel_name": "add_custom",
  "kernel_path": "./add_custom.o",
  
  "blockdim": 8,
  "mode": "ca",
  "device_id": 0,
  "magic": "RT_DEV_BINARY_MAGIC_ELF_AIVEC",
  "test_cases": [
    {
      "case_name": "Test_AddCustom_001",
      "param_desc": [
        {
          "param_type": "input",
          "type": "float16",
          "shape": [
            8,
            2048
          ],
          "data_path": "./input_x.bin",
          "name": "x"
        },
        {
          "param_type": "input",
          "type": "float16",
          "shape": [
            8,
            2048
          ],
          "data_path": "./input_y.bin",
          "name": "y"
        },
        {
          "param_type": "output",
          "type": "float16",
          "shape": [
            8,
            2048
          ],
          "name": "z"
        },
        {
          "param_type": "workspace",
          "user_workspace_size": 4096
        },
        {
          "param_type": "tiling",
          "tiling_data_size": 8,
          "tiling_data_path": "./tiling.bin"
        }
      ]
    }
  ]
}
参数名称  | 
参数描述  | 
类型  | 
是否必选  | 
|---|---|---|---|
kernel_name  | 
核函数名称。  | 
string  | 
是  | 
kernel_path  | 
核函数二进制.o文件所在路径,可配置为绝对路径或者相对路径。  | 
string  | 
是  | 
blockdim  | 
核函数运行所需的核数,默认值:1。  | 
int  | 
否  | 
mode  | 
测试模式。 
  | 
string  | 
是  | 
device_id  | 
运行时使用昇腾AI处理器的ID,默认值:0。  | 
int  | 
否  | 
magic  | 
算子类型。 
  说明:  
 | 
string  | 
是  | 
test_cases  | 
测试数据,支持列表,每个元素包含一个用例。详细说明可参考表2。  说明:  
算子上板或仿真调优时仅支持配置单个用例。  | 
map  | 
是  | 
参数  | 
说明  | 
类型  | 
是否必选  | 
||
|---|---|---|---|---|---|
case_name  | 
-  | 
-  | 
测试用例的名称,需唯一。  | 
string  | 
是  | 
param_desc  | 
-  | 
-  | 
用例描述,支持列表,每个元素代表一个核函数参数。  | 
list  | 
是  | 
-  | 
param_type  | 
input/output/workspace/tiling/fftsAddr  | 
参数类型。  | 
string  | 
是  | 
-  | 
type  | 
-  | 
输入输出数据支持的数据类型,例如:uint8、int16、int32、float16、float32、float等。  说明:  
当“param_type”为input、output时必选。  | 
string  | 
否  | 
-  | 
shape  | 
-  | 
输入输出tensor支持的形状,所有输入输出tensor需支持相同数量的形状。 例如: [8, 3, 256, 256]。 若输入非法的形状会报错,例如:[0]。  说明:  
当“param_type”为input、output时必选。  | 
list  | 
否  | 
-  | 
data_path  | 
-  | 
输入数据bin文件的路径。  说明:  
当“param_type”为input时必须输入data_path或value_range,且data_path优先级更高。  | 
string  | 
否  | 
-  | 
name  | 
-  | 
参数名称,需唯一。  说明:  
当“param_type”为input、output时必选。  | 
string  | 
否  | 
-  | 
user_workspace_size  | 
-  | 
用户设置的workspace_size大小。  说明:  
当“param_type”为workspace时必选。  | 
int  | 
否  | 
-  | 
tiling_data_size  | 
-  | 
tiling数据大小。  说明:  
当“param_type”为tiling时必选。  | 
int  | 
否  | 
-  | 
tiling_data_path  | 
-  | 
tiling数据bin文件所在路径。  说明:  
当“param_type”为tiling时必选。  | 
string  | 
否  | 
-  | 
data_size  | 
-  | 
fftsAddr的data_size大小。  说明:  
当“param_type”为fftsAddr时必选。  | 
int  | 
否  | 
 - “output”中参数取值的个数都要与“input”一致,否则测试用例生成会失败。
例如:“input”的type支持的类型个数2,则“output”的type支持的类型个数也需要为2。
同理,所有inputx/outputx中的type、shape和value_range的取值个数也需要保持一致。
 
- 一个算子所有“input”中参数取值的个数都要一致,否则测试用例生成会失败。
所有“input”中的type、shape和value_range的取值个数也需要保持一致。