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的取值个数也需要保持一致。