From af82e2f67dfe5ad458a282cd1a49df464ab77cd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=90=E8=B1=AA=E6=9D=B0?= Date: Wed, 12 Nov 2025 15:39:42 +0800 Subject: [PATCH] optimize --- CMakeLists.txt | 1 + tf_adapter/kernels/geop_npu.cc | 28 +++++++++++++--------------- tf_adapter/kernels/geop_npu.h | 5 ++--- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d16549026..9729fc53d 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,7 @@ if (ENABLE_OPEN_SRC) include_directories(${ASCEND_OPENSDK_DIR}/include) include_directories(${ASCEND_OPENSDK_DIR}/include/aoe) include_directories(${ASCEND_OPENSDK_DIR}/include/slog) + include_directories(${ASCEND_OPENSDK_DIR}/include/slog/toolchain) include_directories(${ASCEND_OPENSDK_DIR}/include/runtime) include_directories(${ASCEND_OPENSDK_DIR}/include/ascendcl/external) include_directories(${ASCEND_OPENSDK_DIR}/include/msprof) diff --git a/tf_adapter/kernels/geop_npu.cc b/tf_adapter/kernels/geop_npu.cc index e278857ac..82c27e49f 100644 --- a/tf_adapter/kernels/geop_npu.cc +++ b/tf_adapter/kernels/geop_npu.cc @@ -1262,8 +1262,7 @@ Status GeOp::SetGraphOptions(OpKernelContext *ctx) { Status GeOp::CompileGraph(OpKernelContext *ctx, const std::vector &input_vec, const std::vector &inputs, - const uint32_t &graph_id, - const std::vector &input_shapes) { + const uint32_t &graph_id) { auto ret = ParserGraph(ctx, input_vec); if (!ret.ok()) { return ret; @@ -1362,7 +1361,7 @@ Status GeOp::CompileAndRunGraph(OpKernelContext *ctx, } if (graph_handler_.status != CompileDone) { - auto ret = CompileGraph(ctx, input_vec, inputs, cache_graph_id, input_shapes); + auto ret = CompileGraph(ctx, input_vec, inputs, cache_graph_id); ADP_LOG(INFO) << "Set graph_status to CompileDone"; if (!ret.ok()) { graph_handler_.status = Init; @@ -2238,7 +2237,7 @@ std::string GeOp::BuildSubGraph(FunctionLibraryDefinition *flib_def, const std:: return sub_graph_def->SerializeAsString(); } -void GeOp::AnalyzeInputDesc(void *tensor_ptr, ge::Tensor &input, ge::DataType type, +void GeOp::AnalyzeInputDesc(bool need_collect_shapes, void *tensor_ptr, ge::Tensor &input, ge::DataType type, std::vector &input_shapes) const { ADP_LOG(INFO) << "[GEOP] Start analyze input tensor."; NpuGetNextOutputInfo *output_info = static_cast(tensor_ptr); @@ -2247,8 +2246,9 @@ void GeOp::AnalyzeInputDesc(void *tensor_ptr, ge::Tensor &input, ge::DataType ty tmp_dims.push_back(dim); } TensorShape input_shape(tmp_dims); - input_shapes.push_back(input_shape.DebugString()); - + if (need_collect_shapes) { + input_shapes.push_back(input_shape.DebugString()); + } ge::Shape ge_shape(output_info->dims_); ge::TensorDesc ge_tensor_desc(ge_shape); ge_tensor_desc.SetOriginShape(ge_shape); @@ -2411,11 +2411,13 @@ Status GeOp::BuildInputTensorInfo(OpKernelContext *const ctx, std::vector &input_shapes, std::vector &inputs) { // ctx is not nullptr int num_inputs = ctx->num_inputs(); - std::string cur_input_shapes; // populate inputs std::shared_ptr model_parser = domi::ModelParserFactory::Instance()->CreateModelParser(domi::FrameworkType::TENSORFLOW); REQUIRES_NOT_NULL(model_parser); + inputs.reserve(num_inputs); + input_vec.reserve(num_inputs); + const bool need_collect_shapes = (!IsDynamicConfig() && IsLazyCompile()); for (int i = 0; i < num_inputs; i++) { Tensor tensor(ctx->input(i)); bool is_equal = false; @@ -2424,8 +2426,6 @@ Status GeOp::BuildInputTensorInfo(OpKernelContext *const ctx, std::vectorop_kernel().name() - << ", Input tensor " << i << " shape: " << tensor.shape().DebugString(); DataType data_type = tensor.dtype(); auto tensor_ptr = static_cast(const_cast(tensor.tensor_data().data())); auto tensor_size = tensor.tensor_data().size(); @@ -2439,10 +2439,9 @@ Status GeOp::BuildInputTensorInfo(OpKernelContext *const ctx, std::vector dims; - std::string input_shape = tensor.shape().DebugString(); for (uint32_t dim : tensor.shape().dim_sizes()) { dims.push_back(static_cast(dim)); } @@ -2451,8 +2450,6 @@ Status GeOp::BuildInputTensorInfo(OpKernelContext *const ctx, std::vector