本文共 932 字,大约阅读时间需要 3 分钟。
code:https://github.com/OAID/Tengine
version: 88b4b7a2 图片,代码都来自以上项目。
这是做推理的前处理,包括:tensor shape的计算, graph切分,graph优化,调度器prerun
infer_ir_graph_shape
会根据source/operator/prototype
中初始化的op->same_shape,看input tensor 和 output tensor 的尺寸是否相同。if (0!= op->same_shape) // 如果尺寸相同, 初始化为1,source/operator/prototype中初始化{ ir_tensor_t* input = get_ir_graph_tensor(graph, node->input_tensors[0]); ir_tensor_t* output = get_ir_graph_tensor(graph, node->output_tensors[0]); output->dim_num = input->dim_num; output->elem_num = input->elem_num; memcpy(output->dims, input->dims, sizeof(int32_t) * input->dim_num);}else{ if (0 != op->infer_shape(node)) { TLOG_ERR("Tengine FATAL: Infer node(id: %d, op: %s) shape failed.\n", node->index, get_op_name_from_type(node->op.type)); return -1; }}
cpu_split_graph
会对原有的graph进行切分转载地址:http://juhws.baihongyu.com/