@@ -18,13 +18,13 @@ | |||
set(CMAKE_CXX_FLAGS "-Wno-unused-variable ${CMAKE_CXX_FLAGS}") | |||
# add all proto files, generate corresponding .h and .cc files | |||
file(GLOB_RECURSE PROTO_LIST RELATIVE ${CMAKE_CURRENT_LIST_DIR} | |||
"../../proto/om.proto" | |||
"../../proto/ge_ir.proto" | |||
"../../proto/insert_op.proto" | |||
"../../proto/task.proto" | |||
"../../proto/fwk_adaper.proto" | |||
"../../proto/op_mapping_info.proto" | |||
"../../proto/dump_task.proto" | |||
"${GE_SOURCE_DIR}/metadef/proto/om.proto" | |||
"${GE_SOURCE_DIR}/metadef/proto/ge_ir.proto" | |||
"${GE_SOURCE_DIR}/metadef/proto/insert_op.proto" | |||
"${GE_SOURCE_DIR}/metadef/proto/task.proto" | |||
"${GE_SOURCE_DIR}/metadef/proto/fwk_adaper.proto" | |||
"${GE_SOURCE_DIR}/metadef/proto/op_mapping_info.proto" | |||
"${GE_SOURCE_DIR}/metadef/proto/dump_task.proto" | |||
) | |||
file(GLOB_RECURSE ONNX_PROTO_LIST RELATIVE ${CMAKE_CURRENT_LIST_DIR} | |||
@@ -1,127 +0,0 @@ | |||
/** | |||
* Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
syntax = "proto3"; | |||
package toolkit.dumpdata; | |||
enum OutputDataType { | |||
DT_UNDEFINED = 0; | |||
DT_FLOAT = 1; | |||
DT_FLOAT16 = 2; | |||
DT_INT8 = 3; | |||
DT_UINT8 = 4; | |||
DT_INT16 = 5; | |||
DT_UINT16 = 6; | |||
DT_INT32 = 7; | |||
DT_INT64 = 8; | |||
DT_UINT32 = 9; | |||
DT_UINT64 = 10; | |||
DT_BOOL = 11; | |||
DT_DOUBLE = 12; | |||
DT_STRING = 13; | |||
DT_DUAL_SUB_INT8 = 14; | |||
DT_DUAL_SUB_UINT8 = 15; | |||
DT_COMPLEX64 = 16; | |||
DT_COMPLEX128 = 17; | |||
DT_QINT8 = 18; | |||
DT_QINT16 = 19; | |||
DT_QINT32 = 20; | |||
DT_QUINT8 = 21; | |||
DT_QUINT16 = 22; | |||
DT_RESOURCE = 23; | |||
DT_STRING_REF = 24; | |||
DT_DUAL = 25; | |||
} | |||
enum OutputFormat { | |||
FORMAT_NCHW = 0; | |||
FORMAT_NHWC = 1; | |||
FORMAT_ND = 2; | |||
FORMAT_NC1HWC0 = 3; | |||
FORMAT_FRACTAL_Z = 4; | |||
FORMAT_NC1C0HWPAD = 5; | |||
FORMAT_NHWC1C0 = 6; | |||
FORMAT_FSR_NCHW = 7; | |||
FORMAT_FRACTAL_DECONV = 8; | |||
FORMAT_C1HWNC0 = 9; | |||
FORMAT_FRACTAL_DECONV_TRANSPOSE = 10; | |||
FORMAT_FRACTAL_DECONV_SP_STRIDE_TRANS = 11; | |||
FORMAT_NC1HWC0_C04 = 12; | |||
FORMAT_FRACTAL_Z_C04 = 13; | |||
FORMAT_CHWN = 14; | |||
FORMAT_FRACTAL_DECONV_SP_STRIDE8_TRANS = 15; | |||
FORMAT_HWCN = 16; | |||
FORMAT_NC1KHKWHWC0 = 17; | |||
FORMAT_BN_WEIGHT = 18; | |||
FORMAT_FILTER_HWCK = 19; | |||
FORMAT_HASHTABLE_LOOKUP_LOOKUPS=20; | |||
FORMAT_HASHTABLE_LOOKUP_KEYS = 21; | |||
FORMAT_HASHTABLE_LOOKUP_VALUE = 22; | |||
FORMAT_HASHTABLE_LOOKUP_OUTPUT = 23; | |||
FORMAT_HASHTABLE_LOOKUP_HITS=24; | |||
FORMAT_C1HWNCoC0 = 25; | |||
FORMAT_MD = 26; | |||
FORMAT_NDHWC = 27; | |||
FORMAT_FRACTAL_ZZ = 28; | |||
FORMAT_FRACTAL_NZ = 29; | |||
FORMAT_RESERVED = 30; | |||
} | |||
message OriginalOp { | |||
string name = 1; | |||
uint32 output_index = 2; | |||
OutputDataType data_type = 3; | |||
OutputFormat format = 4; | |||
} | |||
message Shape { | |||
repeated uint64 dim = 1; | |||
} | |||
message OpOutput { | |||
OutputDataType data_type = 1; | |||
OutputFormat format = 2; | |||
Shape shape = 3; | |||
OriginalOp original_op = 4; // the original op corresponding to the output | |||
bytes data = 5; | |||
uint64 size = 6; | |||
} | |||
message OpInput { | |||
OutputDataType data_type = 1; | |||
OutputFormat format = 2; | |||
Shape shape = 3; | |||
bytes data = 4; | |||
uint64 size = 5; | |||
} | |||
enum BufferType { | |||
L1 = 0; | |||
} | |||
message OpBuffer { | |||
BufferType buffer_type = 1; | |||
bytes data = 2; | |||
uint64 size = 3; | |||
} | |||
message DumpData{ | |||
string version = 1; | |||
uint64 dump_time = 2; | |||
repeated OpOutput output = 3; | |||
repeated OpInput input = 4; | |||
repeated OpBuffer buffer = 5; | |||
} |
@@ -1,26 +0,0 @@ | |||
/** | |||
* Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
syntax = "proto3"; | |||
import "om.proto"; | |||
package domi; | |||
message FusionModelDef { | |||
string version = 1; | |||
repeated OpDef fusion_op = 2; | |||
} |
@@ -1,42 +0,0 @@ | |||
/** | |||
* Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
syntax = "proto3"; | |||
package aicpu.FWKAdapter; | |||
option cc_enable_arenas = true; | |||
// Defines an struct for input and output. | |||
message TensorDataInfo { | |||
// value DataType | |||
uint32 dtype = 1; | |||
// shape dim | |||
repeated int64 dim = 2; | |||
// data point addr | |||
int64 data_addr = 3; | |||
} | |||
message KernelRunParam { | |||
// input | |||
repeated TensorDataInfo input = 1; | |||
// output | |||
repeated TensorDataInfo output = 2; | |||
} | |||
@@ -1,104 +0,0 @@ | |||
/** | |||
* Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
syntax = "proto3"; | |||
package ge.api_pb; | |||
import "ge_ir.proto"; | |||
// GE initialize | |||
message GEInitialize { | |||
map<string, string> options = 1; | |||
}; | |||
// initialize response | |||
message GEInitializeResponse { | |||
uint32 status = 1; | |||
uint32 clientId = 2; | |||
}; | |||
// GE finalize | |||
message GEFinalize { | |||
bool final = 1; | |||
uint32 clientId = 2; | |||
}; | |||
message GEFinalizeResponse { | |||
uint32 status = 1; | |||
}; | |||
// GE Session | |||
message CreateSession{ | |||
map<string, string> options = 1; | |||
}; | |||
message CreateSessionResponse { | |||
uint32 status = 1; | |||
uint64 sessionId = 2; | |||
}; | |||
//GE AddGraph | |||
//model serialize :: serializegraph | |||
message SessionAddGraph{ | |||
uint32 graphId = 1; | |||
uint64 sessionId = 2; | |||
ge.proto.GraphDef graph = 3; | |||
}; | |||
message SessionAddGraphResponse { | |||
uint32 status = 1; | |||
}; | |||
//GE SessionRemoveGraph | |||
message SessionRemoveGraph{ | |||
uint32 graphId = 1; | |||
uint64 sessionId = 2; | |||
}; | |||
message SessionRemoveGraphResponse { | |||
uint32 status = 1; | |||
}; | |||
message SessionRunGraph{ | |||
uint32 graphId = 1; | |||
uint64 sessionId = 2; | |||
repeated ge.proto.TensorDef tensor = 3; | |||
}; | |||
message SessionBuildGraph{ | |||
uint32 graphId = 1; | |||
uint64 sessionId = 2; | |||
repeated ge.proto.TensorDef tensor = 3; | |||
string savePath = 4; | |||
}; | |||
message SessionRunGraphResponse { | |||
uint32 status = 1; | |||
repeated ge.proto.TensorDef tensor = 2; | |||
}; | |||
message SessionBuildGraphResponse { | |||
uint32 status = 1; | |||
}; | |||
message DestroySession{ | |||
bool final = 1; | |||
uint64 sessionId = 2; | |||
}; | |||
message DestroySessionResponse { | |||
uint32 status = 1; | |||
}; |
@@ -1,206 +0,0 @@ | |||
/** | |||
* Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
syntax = "proto3"; | |||
package ge.proto; | |||
enum DataType | |||
{ | |||
DT_UNDEFINED = 0; // Used to indicate a DataType field has not been set. | |||
DT_FLOAT = 1; // float type | |||
DT_FLOAT16 = 2; // fp16 type | |||
DT_INT8 = 3; // int8 type | |||
DT_UINT8 = 4; // uint8 type | |||
DT_INT16 = 5; // int16 type | |||
DT_UINT16 = 6; // uint16 type | |||
DT_INT32 = 7; // | |||
DT_INT64 = 8; // int64 type | |||
DT_UINT32 = 9; // unsigned int32 | |||
DT_UINT64 = 10; // unsigned int64 | |||
DT_BOOL = 11; // bool type | |||
DT_DOUBLE = 12; // double type | |||
DT_STRING = 13; // string type | |||
DT_DUAL_SUB_INT8 = 14; /**< dual output int8 type */ | |||
DT_DUAL_SUB_UINT8 = 15; /**< dual output uint8 type */ | |||
DT_COMPLEX64 = 16; // complex64 type | |||
DT_COMPLEX128 = 17; // complex128 type | |||
DT_QINT8 = 18; // qint8 type | |||
DT_QINT16 = 19; // qint16 type | |||
DT_QINT32 = 20; // qint32 type | |||
DT_QUINT8 = 21; // quint8 type | |||
DT_QUINT16 = 22; // quint16 type | |||
DT_RESOURCE = 23; // resource type | |||
DT_STRING_REF = 24; // string_ref type | |||
DT_DUAL = 25; /**< dual output type */ | |||
} | |||
message AttrDef | |||
{ | |||
message ListValue | |||
{ | |||
enum ListValueType{ | |||
VT_LIST_NONE = 0; | |||
VT_LIST_STRING = 1; | |||
VT_LIST_INT = 2; | |||
VT_LIST_FLOAT = 3; | |||
VT_LIST_BOOL = 4; | |||
VT_LIST_BYTES = 5; | |||
VT_LIST_TENSOR_DESC = 6; | |||
VT_LIST_TENSOR = 7; | |||
VT_LIST_GRAPH = 8; | |||
VT_LIST_NAMED_ATTRS = 9; | |||
VT_LIST_DATA_TYPE = 10; | |||
} | |||
repeated bytes s = 2; // "list(string)" | |||
repeated int64 i = 3; // "list(int)" | |||
repeated float f = 4; // "list(float)" | |||
repeated bool b = 5; // "list(bool)" | |||
repeated bytes bt = 7; | |||
repeated TensorDescriptor td = 8; | |||
repeated TensorDef t = 9; | |||
repeated GraphDef g = 10; | |||
repeated NamedAttrs na = 11; | |||
repeated int64 dt = 12; // list ge::DataType | |||
ListValueType val_type = 20; | |||
} | |||
message ListListInt{ | |||
message ListInt{ | |||
repeated int64 list_i = 1; // list int | |||
} | |||
repeated ListInt list_list_i = 1; // list list int | |||
} | |||
oneof value | |||
{ | |||
bytes s = 2; // "string" | |||
int64 i = 3; // "int" | |||
float f = 4; // "float" | |||
bool b = 5; // "bool" | |||
bytes bt = 7; | |||
ListValue list = 1; // any "list(...)" | |||
NamedAttrs func = 10; // Used to support attr nesting | |||
TensorDescriptor td = 11; // GeTensorDesc type | |||
TensorDef t = 12; // GeTensor type | |||
GraphDef g = 13; // Graph type | |||
ListListInt list_list_int = 14; // List List Int type | |||
int64 dt = 15; // ge::DataType | |||
} | |||
} | |||
// A list of attr names and their values. The whole list is attached | |||
// with a string name. E.g., MatMul[T=float]. | |||
message NamedAttrs | |||
{ | |||
string name = 1; | |||
map<string, AttrDef> attr = 2; | |||
} | |||
// Shape / dimension description, using row-major order | |||
message ShapeDef | |||
{ | |||
repeated int64 dim = 1; // Size of each dimension | |||
} | |||
// Multidimensional data description | |||
message TensorDescriptor | |||
{ | |||
string name = 1; // Optional parameter, tensor name | |||
DataType dtype = 2; // tensor datatype | |||
ShapeDef shape = 3; // Shape / dimension | |||
string layout = 4; // Tensor format, eg: "NCHW", "NHWC", "CHW", "ND" | |||
bool has_out_attr = 9; | |||
int64 size = 10; | |||
int64 weight_size = 11; | |||
bool reuse_input = 12; | |||
bool output_tensor = 13; | |||
string device_type = 14; | |||
bool input_tensor =15; | |||
int64 real_dim_cnt = 16; | |||
int64 reuse_input_index = 17; | |||
int64 data_offset = 18; | |||
int64 cmps_size = 19; | |||
string cmps_tab = 20; | |||
int64 cmps_tab_offset = 21; | |||
map<string, AttrDef> attr = 5; // Set of extra parameter fields | |||
} | |||
// GeTensor definition | |||
message TensorDef | |||
{ | |||
TensorDescriptor desc = 1; // Tensor description | |||
bytes data = 2; // Tensor data | |||
} | |||
// Operator description | |||
message OpDef | |||
{ | |||
string name = 1; // name | |||
string type = 2; // type | |||
repeated string input = 5; // input original op name + outgoing index. op_name:index | |||
map<string, AttrDef> attr = 10; // Set of operator parameter fields | |||
bool has_out_attr = 20; | |||
int64 id = 21; | |||
int64 stream_id =22; | |||
repeated string input_name = 23; | |||
repeated string src_name = 24; | |||
repeated int64 src_index = 25; | |||
repeated string dst_name = 26; | |||
repeated int64 dst_index = 27; | |||
repeated int64 input_i = 28; | |||
repeated int64 output_i = 29; | |||
repeated int64 workspace = 30; | |||
repeated int64 workspace_bytes = 31; | |||
repeated bool is_input_const = 32; | |||
repeated TensorDescriptor input_desc = 33; | |||
repeated TensorDescriptor output_desc = 34; | |||
repeated string subgraph_name = 35; | |||
} | |||
// Graph definition | |||
message GraphDef | |||
{ | |||
string name = 1; // name | |||
repeated string input = 4; // Graph input | |||
repeated string output = 5; // Graph output | |||
repeated OpDef op = 6; // List of operators | |||
map<string, AttrDef> attr = 11; // Extended field | |||
} | |||
// model definition | |||
message ModelDef | |||
{ | |||
string name = 1; // name | |||
uint32 version = 2; // IR Proto verion | |||
string custom_version = 3; // User model version number, passed in by user | |||
repeated GraphDef graph = 7; // Graph definition,graph[0] represents the main diagram in modeldef | |||
map<string, AttrDef> attr = 11; // Extended field | |||
} | |||
@@ -1,152 +0,0 @@ | |||
/** | |||
* Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
syntax = "proto3"; | |||
package domi; | |||
message InsertNewOps { | |||
repeated AippOpParams aipp_op = 1; | |||
repeated MultiShapeOpParams multi_shape_op = 2; | |||
} | |||
message AippOpParams { | |||
enum InputFormat { | |||
UNDEFINED = 0; | |||
YUV420SP_U8 = 1; | |||
XRGB8888_U8 = 2; | |||
RGB888_U8 = 3; | |||
YUV400_U8 = 4; | |||
NC1HWC0DI_FP16 = 5; | |||
NC1HWC0DI_S8 = 6; | |||
ARGB8888_U8 = 7; | |||
YUYV_U8 = 8; | |||
YUV422SP_U8 = 9; | |||
AYUV444_U8 = 10; | |||
RAW10 = 11; | |||
RAW12 = 12; | |||
RAW16 = 13; | |||
RAW24 = 14; | |||
RGB16 = 15; | |||
RGB20 = 16; | |||
RGB24 = 17; | |||
RGB8_IR = 18; | |||
RGB16_IR = 19; | |||
RGB24_IR = 20; | |||
} | |||
enum AippMode { | |||
undefined = 0; | |||
static = 1; | |||
dynamic = 2; | |||
} | |||
// AIPP模式,区分静态AIPP和动态AIPP | |||
AippMode aipp_mode = 1; | |||
// related_input_rank参数为必填,类型为整型,配置范围>=0, <=输入Data算子的个数,默认值为0。 | |||
// 标识对模型的第几个输入做AIPP处理,例如模型有两个输入,需要对第2个输入做AIPP,则配置related_input_rank为1。 | |||
uint32 related_input_rank = 2; | |||
// input_edge_idx参数为可选,类型为整型,配置范围为>=0。 | |||
// 配置该参数的作用,在于对Data算子不同的输出做不同的AIPP处理,如果该参数没有配置,默认对related_input_rank指定的模型输入的所有输出边做AIPP。 | |||
// 配置值 <= Data算子输出边的个数。 | |||
repeated uint32 input_edge_idx = 3; | |||
// [Begin] 动态AIPP参数,配置静态AIPP时无效 | |||
uint32 max_src_image_size = 4; | |||
// 是否支持旋转。默认不支持,开启支持旋转时,会有额外的空间和性能损失 | |||
bool support_rotation = 5; | |||
// [End] 动态AIPP参数 | |||
// [Begin] 静态AIPP参数,配置动态AIPP时无效 | |||
InputFormat input_format = 51; | |||
bool csc_switch = 52; | |||
float cpadding_value = 53; | |||
bool rbuv_swap_switch = 54; | |||
bool ax_swap_switch = 55; | |||
bool single_line_mode = 56; | |||
int32 src_image_size_w = 57; | |||
int32 src_image_size_h = 58; | |||
bool crop = 59; | |||
int32 load_start_pos_w = 60; | |||
int32 load_start_pos_h = 61; | |||
int32 crop_size_w = 62; | |||
int32 crop_size_h = 63; | |||
bool resize = 64; | |||
int32 resize_output_w = 65; | |||
int32 resize_output_h = 66; | |||
bool padding = 67; | |||
int32 left_padding_size = 68; | |||
int32 right_padding_size = 69; | |||
int32 top_padding_size = 70; | |||
int32 bottom_padding_size = 71; | |||
int32 mean_chn_0 = 10; | |||
int32 mean_chn_1 = 11; | |||
int32 mean_chn_2 = 12; | |||
int32 mean_chn_3 = 19; | |||
float min_chn_0 = 13; | |||
float min_chn_1 = 14; | |||
float min_chn_2 = 15; | |||
float min_chn_3 = 20; | |||
repeated float var_reci_chn_0 = 16; | |||
repeated float var_reci_chn_1 = 17; | |||
repeated float var_reci_chn_2 = 18; | |||
repeated float var_reci_chn_3 = 21; | |||
repeated int32 matrix_r0c0 = 30; | |||
repeated int32 matrix_r0c1 = 31; | |||
repeated int32 matrix_r0c2 = 32; | |||
repeated int32 matrix_r1c0 = 33; | |||
repeated int32 matrix_r1c1 = 34; | |||
repeated int32 matrix_r1c2 = 35; | |||
repeated int32 matrix_r2c0 = 36; | |||
repeated int32 matrix_r2c1 = 37; | |||
repeated int32 matrix_r2c2 = 38; | |||
repeated int32 output_bias_0 = 39; | |||
repeated int32 output_bias_1 = 40; | |||
repeated int32 output_bias_2 = 41; | |||
repeated int32 input_bias_0 = 42; | |||
repeated int32 input_bias_1 = 43; | |||
repeated int32 input_bias_2 = 44; | |||
// [End] 静态AIPP参数 | |||
// The n number that is used for raw/rgbir data into f16 transformation. | |||
// The transformation equation is x/(2^n). If set to 0, no transform is performed. | |||
uint32 raw_rgbir_to_f16_n = 45; | |||
} | |||
message MultiShapeOpParams { | |||
enum MultiShapeMode { | |||
batch = 0; //动态batch | |||
resolution = 1; //动态分辨率,扩展用 | |||
} | |||
MultiShapeMode mode = 1; //算子模式 | |||
uint32 related_input_rank = 2; //新增算子插入到哪个输入 | |||
repeated uint32 batch_list = 11; //batch_list值,batch_list的个数是2到8之间 | |||
} |
@@ -1,401 +0,0 @@ | |||
/** | |||
* Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
syntax = "proto3"; | |||
package domi; | |||
enum TargetType | |||
{ | |||
MINI = 0; | |||
TINY = 1; | |||
LITE = 2; | |||
} | |||
// offline model | |||
message ModelDef { | |||
string name = 1; | |||
uint32 version = 2; | |||
uint64 memory_size = 10; | |||
uint32 stream_num = 11; | |||
uint32 event_num = 12; | |||
uint64 weight_size = 13; | |||
uint32 label_num = 15; | |||
repeated OpDef op = 20; | |||
TargetType target_type = 23; | |||
map<string, AttrDef> attr = 30; | |||
}; | |||
// operator define | |||
message OpDef { | |||
string name = 1; | |||
string type = 2; | |||
uint32 id = 3; | |||
uint32 stream_id = 4; | |||
repeated string input_name = 5; | |||
repeated string src_name = 8; | |||
repeated int32 src_index = 9; | |||
repeated int64 input = 10; | |||
repeated int64 output = 11; | |||
repeated TensorDescriptor input_desc = 12; | |||
repeated TensorDescriptor output_desc = 13; | |||
repeated WeightDef weights = 14; | |||
repeated string dst_name = 15; | |||
repeated int32 dst_index = 16; | |||
repeated int64 workspace = 20; | |||
repeated uint32 workspace_bytes = 21; | |||
repeated string weight_name = 22; | |||
repeated bool is_input_const = 23; | |||
map<string, AttrDef> attr = 30; | |||
QuantizeFactorParams quantize_factor = 31; | |||
oneof op_params { | |||
// start at 100 here | |||
SendOpParams sender_param = 100; | |||
RecvOpParams receiver_param = 200; | |||
ConvolutionOpParams convolution_param = 300; | |||
PoolingOpParams pooling_param = 400; | |||
EltwiseOpParams eltwise_param = 500; | |||
BatchNormOpParams batchnorm_param = 600; | |||
ScaleOpParams scale_param = 700; | |||
FullConnectionOpParams full_connection_param = 800; | |||
SoftmaxOpParams softmax_param = 900; | |||
ActivationOpParams activation_param = 1000; | |||
ReshapeOpParams reshape_param = 1100; | |||
} | |||
}; | |||
message SendOpParams { | |||
uint32 event_id = 1; | |||
}; | |||
message RecvOpParams { | |||
uint32 event_id = 1; | |||
}; | |||
enum QuantizeScaleType | |||
{ | |||
VECTOR_SCALE = 0; | |||
SCALAR_SCALE = 1; | |||
} | |||
enum QuantizeScaleMode | |||
{ | |||
NORMAL_MODE = 0; | |||
SQRT_MODE = 1; | |||
} | |||
enum QuantizeAlgorithm | |||
{ | |||
NON_OFFSET_ALGO = 0; | |||
HALF_OFFSET_ALGO = 1; | |||
ALL_OFFSET_ALGO = 2; | |||
} | |||
message QuantizeFactor | |||
{ | |||
QuantizeScaleMode scale_mode = 1; | |||
bytes scale_value = 2; | |||
int64 scale_offset = 3; | |||
bytes offset_data_value = 4; | |||
int64 offset_data_offset = 5; | |||
bytes offset_weight_value = 6; | |||
int64 offset_weight_offset = 7; | |||
bytes offset_pad_value = 8; | |||
int64 offset_pad_offset = 9; | |||
}; | |||
message QuantizeCalcFactor | |||
{ | |||
bytes offsetw = 1; | |||
int64 offsetw_offset = 2; | |||
bytes offsetd = 3; | |||
int64 offsetd_offset = 4; | |||
bytes scalereq = 5; | |||
int64 scaledreq_offset = 6; | |||
bytes offsetdnext = 7; | |||
int64 offsetdnext_offset = 8; | |||
} | |||
message QuantizeFactorParams | |||
{ | |||
QuantizeAlgorithm quantize_algo = 1; | |||
QuantizeScaleType scale_type = 2; | |||
QuantizeFactor quantize_param = 3; | |||
QuantizeFactor dequantize_param = 4; | |||
QuantizeFactor requantize_param = 5; | |||
QuantizeCalcFactor quantizecalc_param = 6; | |||
}; | |||
message ConvolutionOpParams { | |||
int32 mode = 1; | |||
int32 algo = 2; | |||
int32 pad_mode = 3; | |||
uint32 group = 4; | |||
uint32 num_output = 5; | |||
repeated uint32 pad = 10; | |||
repeated uint32 stride = 11; | |||
repeated uint32 dilation = 12; | |||
repeated uint32 kernel = 13; | |||
float alpha = 20; | |||
float beta = 21; | |||
WeightDef filter = 40; | |||
WeightDef bias = 41; | |||
bool relu_flag = 62; | |||
repeated uint32 adj = 70; | |||
repeated uint32 target_shape = 71; | |||
repeated uint32 before_pad = 72; | |||
}; | |||
message PoolingOpParams { | |||
int32 mode = 1; | |||
int32 nan_opt = 2; | |||
int32 pad_mode = 3; | |||
bool global_pooling = 4; | |||
repeated uint32 window = 10; | |||
repeated uint32 pad = 11; | |||
repeated uint32 stride = 12; | |||
bool ceil_mode = 13; | |||
int32 data_mode = 14; | |||
float alpha = 20; | |||
float beta = 21; | |||
repeated uint32 before_pad = 22; | |||
}; | |||
message EltwiseOpParams { | |||
int32 mode = 1; | |||
repeated float coeff = 2; | |||
float alpha = 3; | |||
float beta = 4; | |||
repeated WeightDef weight = 5; | |||
bool relu_flag = 6; | |||
}; | |||
message ActivationOpParams { | |||
int32 mode = 1; | |||
float coef = 2; | |||
float alpha = 3; | |||
float beta = 4; | |||
}; | |||
message BatchNormOpParams { | |||
int32 mode = 1; | |||
float alpha = 2; | |||
float beta = 3; | |||
double epsilon = 4;//optinal,[default = 1e-5] | |||
bool use_global_stats = 5; //optinal,by default true,testing mode | |||
float moving_average_fraction = 6; //optinal,[default = .999]; | |||
WeightDef estimated_mean = 7; | |||
WeightDef estimated_variance = 8; | |||
WeightDef scale = 9; | |||
WeightDef bias = 10; | |||
}; | |||
message ScaleOpParams { | |||
WeightDef scale = 1; | |||
WeightDef bias = 2; | |||
}; | |||
message ReshapeOpParams { | |||
float alpha = 1; | |||
float beta = 2; | |||
ShapeDef shape = 3; | |||
int32 axis = 4; | |||
int32 num_axes = 5; | |||
int32 format = 6; | |||
}; | |||
message SoftmaxOpParams { | |||
int32 algo = 1; | |||
int32 mode = 2; | |||
float alpha = 3; | |||
float beta = 4; | |||
}; | |||
message FullConnectionOpParams { | |||
WeightDef filter = 1; | |||
WeightDef bias = 2; | |||
uint32 num_output = 3; | |||
bool relu_flag = 12; | |||
}; | |||
message FlattenOpParams { | |||
float alpha = 1; | |||
float beta = 2; | |||
int32 start_axis = 3; | |||
int32 end_axis = 4; | |||
} | |||
message AddLimitedOpParams { | |||
float alpha = 1; | |||
float beta = 2; | |||
int32 axis = 3; | |||
bool broadcast = 4; | |||
repeated WeightDef weight = 10; | |||
}; | |||
message MulLimitedOpParams { | |||
float alpha = 1; | |||
float beta = 2; | |||
int32 axis = 3; | |||
bool broadcast = 4; | |||
repeated WeightDef weight = 10; | |||
}; | |||
message AddOpParams { | |||
float alpha = 1; | |||
float beta = 2; | |||
repeated WeightDef weight = 10; | |||
}; | |||
message MulOpParams { | |||
float alpha = 1; | |||
float beta = 2; | |||
repeated WeightDef weight = 10; | |||
}; | |||
message SubOpParams { | |||
float alpha = 1; | |||
float beta = 2; | |||
repeated WeightDef weight = 10; | |||
}; | |||
message BiasAddOpParams { | |||
float alpha = 1; | |||
float beta = 2; | |||
WeightDef bias = 10; | |||
}; | |||
message MatMulOpParams { | |||
float alpha = 1; | |||
float beta = 2; | |||
bool transposeX = 3; | |||
bool transposeW = 4; | |||
WeightDef filter = 10; | |||
WeightDef bias = 12; | |||
}; | |||
message RsqrtOpParams { | |||
float alpha = 1; | |||
float beta = 2; | |||
}; | |||
message WeightDef { | |||
int32 format = 1; | |||
int32 data_type = 2; | |||
ShapeDef shape = 3; | |||
bytes data = 4; | |||
int64 data_offset = 5; | |||
uint32 cmps_size = 6; | |||
bytes cmps_tab = 7; | |||
int64 cmps_tab_offset = 10; | |||
CompressInfo cmps_info = 8; | |||
AllOffsetQuantizeInfo alloffset_quantize_info = 11; | |||
} | |||
message ShapeDef { | |||
repeated int64 dim = 1; | |||
} | |||
enum DeviceType { | |||
NPU = 0; // In default, we will use NPU. | |||
CPU = 1; // CPU | |||
} | |||
message AllOffsetQuantizeInfo { | |||
float scale = 1; | |||
int32 offset = 2; | |||
} | |||
message TensorDescriptor { | |||
int32 format = 1; | |||
int32 data_type = 2; | |||
repeated int64 dim = 3; | |||
uint32 size = 4; | |||
bool reuse_input = 5; | |||
bool output_tensor = 7; | |||
DeviceType device_type = 8; | |||
bool input_tensor = 9; | |||
uint32 real_dim_cnt = 10; | |||
uint32 reuse_input_index = 11; | |||
AllOffsetQuantizeInfo alloffset_quantize_info = 12; | |||
} | |||
message CompressInfo { | |||
int32 blockRow = 1; // block row | |||
int32 blockCol = 2; // block col | |||
int32 fractalK = 3; // fractal K | |||
int32 fractalN = 4; // fractal N | |||
int32 lastFractalK = 5; // K of last fractal | |||
int32 lastFractalN = 6; // N of last fractal | |||
int32 cubeSize = 7; // cube's length | |||
int32 loadDir = 8; // data load directtiono 0:col load 1:row load | |||
} | |||
message AttrDef { | |||
message ListValue { | |||
repeated string s = 2; // "list(string)" | |||
repeated int64 i = 3 [packed = true]; // "list(int)" | |||
repeated float f = 4 [packed = true]; // "list(float)" | |||
repeated bool b = 5 [packed = true]; // "list(bool)" | |||
repeated uint32 u = 6 [packed = true]; // "list(uint)" | |||
repeated bytes bt = 7; | |||
} | |||
oneof value { | |||
string s = 2; // "string" | |||
int64 i = 3; // "int" | |||
float f = 4; // "float" | |||
bool b = 5; // "bool" | |||
uint32 u = 6; // "uint32" | |||
bytes bt = 7; | |||
ListValue list = 1; // any "list(...)" | |||
NamedAttrs func = 10; | |||
} | |||
} | |||
// A list of attr names and their values. The whole list is attached | |||
// with a string name. E.g., MatMul[T=float]. | |||
message NamedAttrs { | |||
string name = 1; | |||
map<string, AttrDef> attr = 2; | |||
} | |||
@@ -1,89 +0,0 @@ | |||
/** | |||
* Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
syntax = "proto3"; | |||
package aicpu.dump; | |||
message Shape { | |||
repeated uint64 dim = 1; | |||
} | |||
message Output { | |||
int32 data_type = 1; | |||
int32 format = 2; | |||
Shape shape = 3; | |||
uint64 address = 4; | |||
string original_name = 5; | |||
int32 original_output_index = 6; | |||
int32 original_output_data_type = 7; | |||
int32 original_output_format = 8; | |||
uint64 size = 9; | |||
} | |||
message Input { | |||
int32 data_type =1; | |||
int32 format = 2; | |||
Shape shape = 3; | |||
uint64 address = 4; | |||
uint64 size = 5; | |||
} | |||
enum BufferType { | |||
L1 = 0; | |||
} | |||
message OpBuffer { | |||
BufferType buffer_type = 1; | |||
uint64 address = 2; | |||
uint64 size = 3; | |||
} | |||
message Op { | |||
string op_name = 1; | |||
string op_type = 2; | |||
} | |||
message Task { | |||
uint32 task_id = 1; | |||
uint32 stream_id = 2; | |||
Op op = 3; | |||
repeated Output output = 4; | |||
bool end_graph = 5; | |||
repeated Input input = 6; | |||
repeated OpBuffer buffer = 7; | |||
} | |||
message OpMappingInfo { | |||
string dump_path = 1; | |||
oneof model_name_param { | |||
string model_name = 2; | |||
} | |||
oneof model_id_param { | |||
uint32 model_id = 3; | |||
} | |||
oneof step_id { | |||
uint64 step_id_addr = 4; | |||
} | |||
oneof iterations_per_loop { | |||
uint64 iterations_per_loop_addr = 5; | |||
} | |||
oneof loop_cond { | |||
uint64 loop_cond_addr = 6; | |||
} | |||
uint32 flag = 7; // 0x01 load, 0x00 unload | |||
repeated Task task = 8; | |||
string dump_step = 9; | |||
} |
@@ -1,23 +0,0 @@ | |||
/** | |||
* Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
syntax = "proto3"; | |||
package ge.optimizers; | |||
// Default: GE>FE>AICPU | |||
message Priority{ | |||
repeated string optimizer = 1; | |||
} |
@@ -1,170 +0,0 @@ | |||
/** | |||
* Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||
* you may not use this file except in compliance with the License. | |||
* You may obtain a copy of the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, | |||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
* See the License for the specific language governing permissions and | |||
* limitations under the License. | |||
*/ | |||
syntax = "proto3"; | |||
package domi; | |||
message ModelTaskDef { | |||
string version = 1; | |||
map<string, string> attr = 9; // Extended field | |||
repeated TaskDef task = 10; | |||
uint64 memory_size = 11; | |||
uint32 stream_num = 12; | |||
uint32 event_num = 13; | |||
uint64 weight_size = 14; | |||
repeated bytes op = 15; // input/output opdef in bytes | |||
uint64 base_addr = 16; // base addr | |||
uint64 weight_addr = 17; // weight addr | |||
uint32 batch_num = 18; | |||
} | |||
message TaskDef { | |||
uint32 id = 1; | |||
uint32 type = 2; | |||
uint32 stream_id = 10; | |||
uint32 event_id = 11; | |||
KernelDef kernel = 20; | |||
KernelExDef kernel_ex = 21; | |||
KernelHcclDef kernel_hccl = 25; | |||
EventExDef event_ex = 26; | |||
LogTimeStampDef log_timestamp = 28; | |||
uint32 label_id = 30; | |||
MemcpyAsyncDef memcpy_async = 31; | |||
StreamSwitchDef stream_switch = 32; | |||
StreamActiveDef stream_active = 33; | |||
bytes private_def = 34; | |||
uint64 ops_kernel_store_ptr = 35; // adjustments to other fields in the future | |||
StreamSwitchNDef stream_switch_n = 36; | |||
LabelSetDef label_set = 37; | |||
LabelGotoExDef label_goto_ex = 38; | |||
LabelSwitchByIndexDef label_switch_by_index = 39; | |||
} | |||
message KernelDef { | |||
KernelContext context = 1; | |||
string stub_func = 10; | |||
uint32 block_dim = 11; | |||
uint32 args_size = 12; | |||
bytes args = 13; | |||
bytes sm_desc = 14; | |||
bytes flowtable = 15; | |||
string so_name = 16; | |||
string kernel_name = 17; | |||
bytes kernel_ext_info = 18; | |||
uint32 kernel_ext_info_size = 19; | |||
} | |||
message KernelContext { | |||
uint32 kernel_type = 1; | |||
uint32 op_id = 2; // OP type in CCE | |||
uint32 kernel_func_id = 3; | |||
uint32 op_index = 4; // TE/Custom operator | |||
bool is_flowtable = 5; // Identify whether args is a flowtable structure | |||
bytes args_offset = 6; // args offset information | |||
uint32 args_count = 7; // args count | |||
repeated uint32 origin_op_index = 8; | |||
} | |||
message KernelExDef { | |||
uint32 flags = 1; | |||
uint32 op_index = 4; | |||
uint32 args_size = 12; | |||
bytes args = 13; | |||
bytes task_info = 14; // serialized nodeDef, funcDef, inputoutput | |||
uint32 task_info_size = 15; | |||
bytes kernel_ext_info = 16; | |||
uint32 kernel_ext_info_size = 17; | |||
} | |||
message KernelHcclDef { | |||
uint32 op_index = 8; | |||
string hccl_type = 9; | |||
} | |||
message EventExDef { | |||
uint32 op_index = 1; | |||
uint32 event_type = 2; | |||
} | |||
message LogTimeStampDef { | |||
uint64 logid = 1; | |||
bool notify = 2; | |||
uint32 flat = 3; | |||
} | |||
message MemcpyAsyncDef { | |||
uint64 dst = 1; | |||
uint64 dst_max = 2; | |||
uint64 src = 3; | |||
uint64 count = 4; | |||
uint32 kind = 5; | |||
uint32 op_index = 6; | |||
} | |||
message StreamSwitchDef { | |||
uint32 op_index = 1; | |||
uint32 true_stream_id = 2; | |||
int64 value = 3; | |||
uint64 value_ptr = 4; | |||
uint32 data_type = 5; | |||
} | |||
message StreamActiveDef { | |||
uint32 op_index = 1; | |||
uint32 active_stream_id = 2; | |||
} | |||
message StreamSwitchNDef { | |||
uint32 op_index = 1; | |||
uint32 size = 2; | |||
repeated int64 target_value = 3; | |||
repeated uint32 true_stream_id = 4; | |||
uint32 element_size = 5; | |||
uint32 data_type = 6; | |||
} | |||
message LabelSetDef { | |||
uint32 op_index = 1; | |||
uint32 label_id = 2; | |||
uint32 model_id = 3; | |||
} | |||
message LabelGotoExDef { | |||
uint32 op_index = 1; | |||
uint32 label_id = 2; | |||
uint32 model_id = 3; | |||
} | |||
message LabelSwitchByIndexDef { | |||
uint32 op_index = 1; | |||
uint32 label_max = 2; | |||
} |