From 780041ae65c495c806b2de63b4d4cf8507b9fbcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=A3=8A?= Date: Tue, 26 Jan 2021 16:54:40 +0800 Subject: [PATCH] set weight compress for original operators --- ge/CMakeLists.txt | 6 ++ ge/ge_inference.mk | 3 + ge/ge_runner.mk | 3 + .../attr_options/attr_options.h} | 13 ++-- .../attr_options}/keep_dtype_option.cc | 36 ++++------- ge/ir_build/attr_options/utils.cc | 36 +++++++++++ .../attr_options/weight_compress_option.cc | 64 +++++++++++++++++++ ge/ir_build/ge_ir_build.cc | 50 +++++++++++++++ ge/offline/CMakeLists.txt | 1 - ge/offline/main.cc | 24 +++++-- ge/offline/module.mk | 3 - ge/session/omg.cc | 42 ------------ inc/external/ge/ge_ir_build.h | 29 +++++++-- tests/ut/ge/CMakeLists.txt | 3 + 14 files changed, 225 insertions(+), 88 deletions(-) rename ge/{offline/keep_dtype_option.h => ir_build/attr_options/attr_options.h} (65%) rename ge/{offline => ir_build/attr_options}/keep_dtype_option.cc (72%) create mode 100644 ge/ir_build/attr_options/utils.cc create mode 100644 ge/ir_build/attr_options/weight_compress_option.cc diff --git a/ge/CMakeLists.txt b/ge/CMakeLists.txt index 3ae51590..8673c067 100755 --- a/ge/CMakeLists.txt +++ b/ge/CMakeLists.txt @@ -388,6 +388,9 @@ set(TRAIN_SRC_LIST "client/ge_api.cc" "analyzer/analyzer.cc" "ir_build/ge_ir_build.cc" + "ir_build/attr_options/utils.cc" + "ir_build/attr_options/keep_dtype_option.cc" + "ir_build/attr_options/weight_compress_option.cc" "ir_build/atc_ir_common.cc" "graph/build/memory/memory_assigner.cc" "graph/build/memory/graph_mem_assigner.cc" @@ -641,6 +644,9 @@ set(INFER_SRC_LIST "graph/load/model_manager/task_info/super_kernel/super_kernel.cc" "hybrid/hybrid_davinci_model_stub.cc" "ir_build/ge_ir_build.cc" + "ir_build/attr_options/utils.cc" + "ir_build/attr_options/keep_dtype_option.cc" + "ir_build/attr_options/weight_compress_option.cc" "ir_build/atc_ir_common.cc" "graph/preprocess/insert_op/ge_aipp_op.cc" "graph/preprocess/insert_op/util_insert_aipp_op.cc" diff --git a/ge/ge_inference.mk b/ge/ge_inference.mk index 132141fc..6576aa57 100755 --- a/ge/ge_inference.mk +++ b/ge/ge_inference.mk @@ -70,6 +70,9 @@ GRAPH_MANAGER_LOCAL_SRC_FILES := \ BUILER_SRC_FILES := \ ir_build/ge_ir_build.cc \ + ir_build/attr_options/utils.cc \ + ir_build/attr_options/keep_dtype_option.cc \ + ir_build/attr_options/weight_compress_option.cc \ ir_build/atc_ir_common.cc \ ANALYZER_SRC_FILES:= \ diff --git a/ge/ge_runner.mk b/ge/ge_runner.mk index de27ff31..d6becb62 100644 --- a/ge/ge_runner.mk +++ b/ge/ge_runner.mk @@ -312,6 +312,9 @@ LIBGE_LOCAL_SRC_FILES := \ executor/ge_executor.cc \ analyzer/analyzer.cc \ ir_build/ge_ir_build.cc \ + ir_build/attr_options/utils.cc \ + ir_build/attr_options/keep_dtype_option.cc \ + ir_build/attr_options/weight_compress_option.cc \ ir_build/atc_ir_common.cc \ LIBCLIENT_LOCAL_SRC_FILES := \ diff --git a/ge/offline/keep_dtype_option.h b/ge/ir_build/attr_options/attr_options.h similarity index 65% rename from ge/offline/keep_dtype_option.h rename to ge/ir_build/attr_options/attr_options.h index 2df2ed8c..7c0f4f4f 100644 --- a/ge/offline/keep_dtype_option.h +++ b/ge/ir_build/attr_options/attr_options.h @@ -13,14 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#ifndef KEEP_DTYPE_OPTION_H_ -#define KEEP_DTYPE_OPTION_H_ +#ifndef ATTR_OPTIONS_H_ +#define ATTR_OPTIONS_H_ #include #include "graph/compute_graph.h" -#include "framework/common/ge_inner_error_codes.h" +#include "graph/ge_error_codes.h" namespace ge { -Status DealKeepDtypeOption(const ComputeGraphPtr &graph, const std::string &keep_dtype); +bool IsOriginalOpFind(OpDescPtr &op_desc, const std::string &op_name); + +graphStatus KeepDtypeFunc(ComputeGraphPtr &graph, const std::string &cfg_path); +graphStatus WeightCompressFunc(ComputeGraphPtr &graph, const std::string &cfg_path); } // namespace -#endif // KEEP_DTYPE_OPTION_H_ \ No newline at end of file +#endif // ATTR_OPTIONS_H_ \ No newline at end of file diff --git a/ge/offline/keep_dtype_option.cc b/ge/ir_build/attr_options/keep_dtype_option.cc similarity index 72% rename from ge/offline/keep_dtype_option.cc rename to ge/ir_build/attr_options/keep_dtype_option.cc index 5624f21c..26954b82 100644 --- a/ge/offline/keep_dtype_option.cc +++ b/ge/ir_build/attr_options/keep_dtype_option.cc @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#include "keep_dtype_option.h" +#include "attr_options.h" #include #include #include @@ -26,20 +26,6 @@ namespace ge { namespace { const size_t kMaxOpsNum = 10; } // namespace -bool IsOriginalOpFind(OpDescPtr &op_desc, const std::string &op_name) { - std::vector original_op_names; - if (!AttrUtils::GetListStr(op_desc, ATTR_NAME_DATA_DUMP_ORIGIN_OP_NAMES, original_op_names)) { - return false; - } - - for (auto &origin_name : original_op_names) { - if (origin_name == op_name) { - return true; - } - } - - return false; -} void KeepDtypeReportError(const std::vector &invalid_list) { std::stringstream err_msg; @@ -67,20 +53,20 @@ void KeepDtypeReportError(const std::vector &invalid_list) { GELOGE(FAILED, "%s", err_msg.str().c_str()); } -Status DealKeepDtypeOption(const ComputeGraphPtr &graph, const std::string &keep_dtype) { +graphStatus KeepDtypeFunc(ComputeGraphPtr &graph, const std::string &cfg_path) { GE_CHECK_NOTNULL(graph); - if (keep_dtype.empty()) { - return SUCCESS; + if (cfg_path.empty()) { + return GRAPH_SUCCESS; } - std::string real_path = RealPath(keep_dtype.c_str()); + std::string real_path = RealPath(cfg_path.c_str()); if (real_path.empty()) { - GELOGE(PARAM_INVALID, "Can not get real path for %s.", keep_dtype.c_str()); - return PARAM_INVALID; + GELOGE(GRAPH_PARAM_INVALID, "Can not get real path for %s.", cfg_path.c_str()); + return GRAPH_PARAM_INVALID; } std::ifstream ifs(real_path); if (!ifs.is_open()) { - GELOGE(FAILED, "Open file %s failed", keep_dtype.c_str()); - return FAILED; + GELOGE(GRAPH_FAILED, "Open file %s failed", cfg_path.c_str()); + return GRAPH_FAILED; } std::string op_name; @@ -108,9 +94,9 @@ Status DealKeepDtypeOption(const ComputeGraphPtr &graph, const std::string &keep if (!invalid_list.empty()) { KeepDtypeReportError(invalid_list); - return PARAM_INVALID; + return GRAPH_PARAM_INVALID; } - return SUCCESS; + return GRAPH_SUCCESS; } } // namespace ge diff --git a/ge/ir_build/attr_options/utils.cc b/ge/ir_build/attr_options/utils.cc new file mode 100644 index 00000000..f0b559ec --- /dev/null +++ b/ge/ir_build/attr_options/utils.cc @@ -0,0 +1,36 @@ +/** + * Copyright 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. + */ +#include "attr_options.h" +#include +#include "graph/debug/ge_attr_define.h" +#include "common/util/error_manager/error_manager.h" + +namespace ge { +bool IsOriginalOpFind(OpDescPtr &op_desc, const std::string &op_name) { + std::vector original_op_names; + if (!AttrUtils::GetListStr(op_desc, ATTR_NAME_DATA_DUMP_ORIGIN_OP_NAMES, original_op_names)) { + return false; + } + + for (auto &origin_name : original_op_names) { + if (origin_name == op_name) { + return true; + } + } + + return false; +} +} // namespace ge \ No newline at end of file diff --git a/ge/ir_build/attr_options/weight_compress_option.cc b/ge/ir_build/attr_options/weight_compress_option.cc new file mode 100644 index 00000000..06528af2 --- /dev/null +++ b/ge/ir_build/attr_options/weight_compress_option.cc @@ -0,0 +1,64 @@ +/** + * Copyright 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. + */ +#include "attr_options.h" +#include +#include +#include +#include +#include "graph/debug/ge_attr_define.h" +#include "framework/common/util.h" +#include "common/util/error_manager/error_manager.h" + +namespace ge { +graphStatus WeightCompressFunc(ComputeGraphPtr &graph, const string &cfg_path) { + GE_CHECK_NOTNULL(graph); + if (cfg_path.empty()) { + return GRAPH_SUCCESS; + } + std::string real_path = RealPath(cfg_path.c_str()); + if (real_path.empty()) { + GELOGE(GRAPH_PARAM_INVALID, "Can not get real path for %s.", cfg_path.c_str()); + return GRAPH_PARAM_INVALID; + } + std::ifstream ifs(real_path); + if (!ifs.is_open()) { + GELOGE(GRAPH_FAILED, "Open file %s failed", cfg_path.c_str()); + return GRAPH_FAILED; + } + + std::string compress_nodes; + ifs >> compress_nodes; + ifs.close(); + GELOGI("Compress weight of nodes: %s", compress_nodes.c_str()); + + vector compress_node_vec = StringUtils::Split(compress_nodes, ';'); + for (size_t i = 0; i < compress_node_vec.size(); ++i) { + for (auto &node_ptr : graph->GetDirectNode()) { + GE_CHECK_NOTNULL(node_ptr); + auto op_desc = node_ptr->GetOpDesc(); + GE_CHECK_NOTNULL(op_desc); + + if ((op_desc->GetName() == compress_node_vec[i]) || IsOriginalOpFind(op_desc, compress_node_vec[i])) { + if (!ge::AttrUtils::SetBool(op_desc, ge::ATTR_NAME_COMPRESS_WEIGHT, true)) { + GELOGE(GRAPH_FAILED, "node %s SetBool failed.", compress_node_vec[i].c_str()); + return GRAPH_FAILED; + } + } + } + } + return GRAPH_SUCCESS; +} +} // namespace ge diff --git a/ge/ir_build/ge_ir_build.cc b/ge/ir_build/ge_ir_build.cc index 9197d52f..d7daaede 100644 --- a/ge/ir_build/ge_ir_build.cc +++ b/ge/ir_build/ge_ir_build.cc @@ -39,6 +39,7 @@ #include "inc/pass_manager.h" #include "graph/passes/net_output_pass.h" #include "graph/passes/data_pass.h" +#include "ir_build/attr_options/attr_options.h" using std::string; using namespace std; @@ -52,8 +53,28 @@ const std::string IR_OPTION_LOG_LEVEL_DEFAULT = "default"; const std::string IR_OPTION_BUFFER_OPTIMIZE_DEFAULT = "l2_optimize"; const std::string IR_OPTION_DISABLE_REUSE_MEMORY_DEFAULT = "0"; const std::string IR_OPTION_ENABLE_COMPRESS_WEIGHT_DEFAULT = "false"; +const std::string KEEP_DTYPE_OPTION = "keep_dtype"; const std::string kInputShape = "input_shape"; const std::string kInputFormat = "input_format"; + +/** + * @name SetOpAttrFun + * @brief set attribute for operators in the configuration file + * @param graph [IN/OUT] compute graph + * @param cfg_path [IN] the config file path + * @return graphStatus + */ +typedef graphStatus (*SetOpAttrFun)(ComputeGraphPtr &graph, const std::string &cfg_path); + +const std::map kAttrTypeFuncMap = { + {ATTR_TYPE_KEEP_DTYPE, KeepDtypeFunc}, + {ATTR_TYPE_WEIGHT_COMPRESS, WeightCompressFunc} +}; + +const std::map kAttrTypeToStringMap = { + {ATTR_TYPE_KEEP_DTYPE, KEEP_DTYPE_OPTION}, + {ATTR_TYPE_WEIGHT_COMPRESS, ge::ir_option::COMPRESS_WEIGHT_CONF} +}; } // namespace static graphStatus CheckGlobalOptions(std::map &global_options) { @@ -703,4 +724,33 @@ graphStatus aclgrphGenerateForOp(const AscendString &op_type, const vectorsecond; + } else { + ErrorManager::GetInstance().ATCReportErrMessage("E19012", {"function", "reason"}, + {"AttrTypeToSerialString", "attr_type[" + std::to_string(attr_type) + "] is not support"}); + GELOGE(GRAPH_FAILED, "AttrTypeToSerialString: attr_type not support %u", attr_type); + return "UNDEFINED"; + } +} + +graphStatus aclgrphSetOpAttr(Graph &graph, aclgrphAttrType attr_type, const char *cfg_path) { + auto compute_graph = GraphUtils::GetComputeGraph(graph); + GE_CHECK_NOTNULL(compute_graph); + if (cfg_path == nullptr) { + return GRAPH_SUCCESS; + } + + auto iter = kAttrTypeFuncMap.find(attr_type); + if (iter == kAttrTypeFuncMap.end()) { + GELOGE(GRAPH_FAILED, "attr type: %s is not support", AttrTypeToSerialString(attr_type).c_str()); + return GRAPH_FAILED; + } + + std::string path = cfg_path; + return iter->second(compute_graph, path); +} + } // namespace ge diff --git a/ge/offline/CMakeLists.txt b/ge/offline/CMakeLists.txt index 0079576a..87589859 100644 --- a/ge/offline/CMakeLists.txt +++ b/ge/offline/CMakeLists.txt @@ -10,7 +10,6 @@ protobuf_generate(ge PROTO_SRCS PROTO_HDRS ${PROTO_LIST}) set(SRC_LIST "main.cc" "single_op_parser.cc" - "keep_dtype_option.cc" "../session/omg.cc" "../ir_build/atc_ir_common.cc" ) diff --git a/ge/offline/main.cc b/ge/offline/main.cc index 363f9cda..26993dbf 100755 --- a/ge/offline/main.cc +++ b/ge/offline/main.cc @@ -43,7 +43,7 @@ #include "parser/common/register_tbe.h" #include "register/op_registry.h" #include "single_op_parser.h" -#include "keep_dtype_option.h" +#include "external/ge/ge_ir_build.h" using domi::BuildMode; using domi::OpRegistrationData; @@ -913,6 +913,22 @@ static Status ConvertModelToJson(int fwk_type, const string &model_file, const s return ret; } +static Status SetAttrOptions(ge::Graph &graph) { + if (!FLAGS_keep_dtype.empty()) { + if (ge::aclgrphSetOpAttr(graph, ge::ATTR_TYPE_KEEP_DTYPE, FLAGS_keep_dtype.c_str()) != ge::GRAPH_SUCCESS) { + return ge::FAILED; + } + } + if (!FLAGS_compress_weight_conf.empty()) { + if (ge::aclgrphSetOpAttr(graph, ge::ATTR_TYPE_WEIGHT_COMPRESS, FLAGS_compress_weight_conf.c_str()) + != ge::GRAPH_SUCCESS) { + return ge::FAILED; + } + } + + return ge::SUCCESS; +} + domi::Status GenerateModel(std::map &options, std::string output) { ge::GeGenerator ge_generator; ge::Status geRet = ge::SUCCESS; @@ -969,7 +985,6 @@ domi::Status GenerateModel(std::map &options, std::string output atc_params.insert(std::pair("input_fp16_nodes", FLAGS_input_fp16_nodes)); atc_params.insert(std::pair("is_input_adjust_hw_layout", FLAGS_is_input_adjust_hw_layout)); atc_params.insert(std::pair("is_output_adjust_hw_layout", FLAGS_is_output_adjust_hw_layout)); - atc_params.insert(std::pair("compress_weight_conf", FLAGS_compress_weight_conf)); atc_params.insert(std::pair(string(ge::OUTPUT_DATATYPE), FLAGS_output_type)); atc_params.insert(std::pair("output", output)); @@ -1003,11 +1018,10 @@ domi::Status GenerateModel(std::map &options, std::string output } } - Status ret = ge::DealKeepDtypeOption(ge::GraphUtils::GetComputeGraph(graph), FLAGS_keep_dtype); - if (ret != SUCCESS) { + if (SetAttrOptions(graph) != ge::SUCCESS) { (void)ge_generator.Finalize(); (void)ge::GELib::GetInstance()->Finalize(); - return ret; + return domi::FAILED; } geRet = ge_generator.GenerateOfflineModel(graph, output, inputs); diff --git a/ge/offline/module.mk b/ge/offline/module.mk index 8aabb975..5c7a919c 100755 --- a/ge/offline/module.mk +++ b/ge/offline/module.mk @@ -10,7 +10,6 @@ LOCAL_CFLAGS += -DPROTOBUF_INLINE_NOT_IN_HEADERS=0 -DCOMPILE_OMG_PACKAGE -O2 -Dg LOCAL_SRC_FILES := \ main.cc \ - keep_dtype_option.cc \ single_op_parser.cc \ ../session/omg.cc \ ../ir_build/atc_ir_common.cc \ @@ -64,7 +63,6 @@ LOCAL_CFLAGS += -DPROTOBUF_INLINE_NOT_IN_HEADERS=0 -DCOMPILE_OMG_PACKAGE -O2 -Dg LOCAL_SRC_FILES := \ main.cc \ - keep_dtype_option.cc \ single_op_parser.cc \ ../session/omg.cc \ ../ir_build/atc_ir_common.cc \ @@ -118,7 +116,6 @@ LOCAL_CFLAGS += -DPROTOBUF_INLINE_NOT_IN_HEADERS=0 -DCOMPILE_OMG_PACKAGE -O2 -Dg LOCAL_SRC_FILES := \ main.cc \ - keep_dtype_option.cc \ single_op_parser.cc \ ../session/omg.cc \ ../ir_build/atc_ir_common.cc \ diff --git a/ge/session/omg.cc b/ge/session/omg.cc index 368b4bec..bbc674ec 100755 --- a/ge/session/omg.cc +++ b/ge/session/omg.cc @@ -193,44 +193,6 @@ static Status CheckInputFp16Nodes(const ComputeGraphPtr &graph, const string &in return SUCCESS; } -static Status SetWeightCompressNodes(const ComputeGraphPtr &graph, const string &compress_weight_conf) { - GE_CHECK_NOTNULL(graph); - if (compress_weight_conf.empty()) { - return SUCCESS; - } - std::string real_path = RealPath(compress_weight_conf.c_str()); - if (real_path.empty()) { - GELOGE(PARAM_INVALID, "Can not get real path for %s.", compress_weight_conf.c_str()); - return PARAM_INVALID; - } - std::ifstream ifs(real_path); - if (!ifs.is_open()) { - GELOGE(domi::FAILED, "Open file %s failed", compress_weight_conf.c_str()); - return domi::FAILED; - } - - std::string compress_nodes; - ifs >> compress_nodes; - ifs.close(); - GELOGI("Compress weight of nodes: %s", compress_nodes.c_str()); - - vector compress_node_vec = StringUtils::Split(compress_nodes, ';'); - for (size_t i = 0; i < compress_node_vec.size(); ++i) { - ge::NodePtr node = graph->FindNode(compress_node_vec[i]); - if (node == nullptr) { - GELOGW("node %s is not in graph", compress_node_vec[i].c_str()); - continue; - } - auto op_desc = node->GetOpDesc(); - GE_CHECK_NOTNULL(op_desc); - if (!ge::AttrUtils::SetBool(op_desc, ge::ATTR_NAME_COMPRESS_WEIGHT, true)) { - GELOGE(domi::FAILED, "node %s SetBool failed.", compress_node_vec[i].c_str()); - return domi::FAILED; - } - } - return SUCCESS; -} - static Status ParseOutputFp16NodesFormat(const string &is_output_fp16) { if (is_output_fp16.empty()) { return SUCCESS; @@ -800,10 +762,6 @@ FMK_FUNC_HOST_VISIBILITY Status ParseGraph(ge::Graph &graph, const std::map &, - ModelBufferData &)) -GE_FUNC_VISIBILITY graphStatus aclgrphBuildModel(const ge::Graph &graph, const std::map &build_options, - ModelBufferData &model); +ATTRIBUTED_DEPRECATED(GE_FUNC_VISIBILITY graphStatus aclgrphBuildModel(const ge::Graph &, + const std::map &, + ModelBufferData &)) +GE_FUNC_VISIBILITY graphStatus aclgrphBuildModel(const ge::Graph &graph, + const std::map &build_options, + ModelBufferData &model); -GE_FUNC_VISIBILITY graphStatus aclgrphBuildModel(const ge::Graph &graph, const std::map &build_options, - ModelBufferData &model); +GE_FUNC_VISIBILITY graphStatus aclgrphBuildModel(const ge::Graph &graph, + const std::map &build_options, + ModelBufferData &model); /** * @ingroup AscendCL @@ -138,7 +143,17 @@ GE_FUNC_VISIBILITY graphStatus aclgrphDumpGraph(const ge::Graph &graph, const ch * @retval OtherValues Failure */ GE_FUNC_VISIBILITY graphStatus aclgrphGenerateForOp(const AscendString &op_type, const std::vector &inputs, - const std::vector &outputs, Graph &graph); + const std::vector &outputs, Graph &graph); + +/** + * @name aclgrphSetOpAttr + * @brief set attribute for operators in the configuration file + * @param graph [IN/OUT] compute graph + * @param attr_type [In] attribute type + * @param cfg_path [IN] the config file path + * @return graphStatus + */ +GE_FUNC_VISIBILITY graphStatus aclgrphSetOpAttr(Graph &graph, aclgrphAttrType attr_type, const char *cfg_path); }; // namespace ge #endif // INC_EXTERNAL_GE_IR_BUILD_H_ diff --git a/tests/ut/ge/CMakeLists.txt b/tests/ut/ge/CMakeLists.txt index 697725c6..ac53aca5 100755 --- a/tests/ut/ge/CMakeLists.txt +++ b/tests/ut/ge/CMakeLists.txt @@ -274,6 +274,9 @@ set(COMMON_SRC_FILES "${GE_CODE_DIR}/ge/graph/partition/graph_partition.cc" "${GE_CODE_DIR}/ge/common/helper/model_cache_helper.cc" "${GE_CODE_DIR}/ge/ir_build/ge_ir_build.cc" + "${GE_CODE_DIR}/ge/ir_build/attr_options/utils.cc" + "${GE_CODE_DIR}/ge/ir_build/attr_options/keep_dtype_option.cc" + "${GE_CODE_DIR}/ge/ir_build/attr_options/weight_compress_option.cc" "${GE_CODE_DIR}/ge/graph/build/label_allocator.cc" "${GE_CODE_DIR}/ge/graph/passes/memcpy_addr_async_pass.cc" "${GE_CODE_DIR}/ge/graph/partition/stage_partition.cc"