/* Copyright (C) 2018. Huawei Technologies Co., Ltd. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the Apache License Version 2.0.You may not use this file except in compliance with the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * Apache License for more details at * http://www.apache.org/licenses/LICENSE-2.0 */ syntax = "proto3"; package domi; message ModelTaskDef { string version = 1; map 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; KernelDefWithHandle kernel_with_handle = 40; } 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 KernelDefWithHandle { KernelContext context = 1; uint64 handle = 10; string dev_func = 11; uint32 block_dim = 12; uint32 args_size = 13; bytes args = 14; bytes sm_desc = 15; string original_kernel_key = 16; string node_info = 17; } 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; }