From 36a28143d80fb00462b8edca19438c58756714fb Mon Sep 17 00:00:00 2001 From: yangyongqiang Date: Fri, 12 Dec 2025 10:14:29 +0000 Subject: [PATCH] =?UTF-8?q?!3074=20=E5=BD=93=E5=88=86=E6=A1=A3=E5=BC=80?= =?UTF-8?q?=E5=85=B3=E6=B2=A1=E8=AE=BE=E7=BD=AE=E4=BD=86compile=5Fhybrid?= =?UTF-8?q?=5Fmode=E8=AE=BE=E7=BD=AE=E7=9A=84=E6=97=B6=E5=80=99=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E6=8A=A5=E9=94=99=20Merge=20pull=20request=20!3074=20?= =?UTF-8?q?from=20yangyongqiang/cq=5Fge=5Fdev?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tests/st/util/testcase/npu_attrs_test.cc | 15 +++++++++++++++ .../tests/ut/util/testcase/npu_attrs_test.cc | 15 +++++++++++++++ tf_adapter/util/npu_attrs.cc | 11 ++++++++++- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/tf_adapter/tests/st/util/testcase/npu_attrs_test.cc b/tf_adapter/tests/st/util/testcase/npu_attrs_test.cc index 8a46d0094..1a00a753b 100644 --- a/tf_adapter/tests/st/util/testcase/npu_attrs_test.cc +++ b/tf_adapter/tests/st/util/testcase/npu_attrs_test.cc @@ -601,6 +601,21 @@ TEST_F(NpuAttrTest, SetNpuOptimizerAttr_compile_hybrid_mode) { EXPECT_EQ(s.ok(), false); } +TEST_F(NpuAttrTest, SetNpuOptimizerAttr_compile_hybrid_mode_no_set_dynamic_option) { + GraphOptimizationPassOptions options; + SessionOptions session_options; + session_options.config.mutable_graph_options()->mutable_optimizer_options()->set_do_function_inlining(true); + auto *custom_config = + session_options.config.mutable_graph_options()->mutable_rewrite_options()->add_custom_optimizers(); + custom_config->set_name("NpuOptimizer"); + options.session_options = &session_options; + AttrValue compile_hybrid_mode_value = AttrValue(); + compile_hybrid_mode_value.set_i(1); + (*custom_config->mutable_parameter_map())["compile_hybrid_mode"] = compile_hybrid_mode_value; + Status s = NpuAttrs::SetNpuOptimizerAttr(options, reinterpret_cast(1)); + EXPECT_EQ(s.ok(), false); +} + TEST_F(NpuAttrTest, GetAllAttrOptions_oo_level) { AttrValueMap attr_map; diff --git a/tf_adapter/tests/ut/util/testcase/npu_attrs_test.cc b/tf_adapter/tests/ut/util/testcase/npu_attrs_test.cc index 6a4e614a6..980f3a1b4 100644 --- a/tf_adapter/tests/ut/util/testcase/npu_attrs_test.cc +++ b/tf_adapter/tests/ut/util/testcase/npu_attrs_test.cc @@ -740,6 +740,21 @@ TEST_F(NpuAttrTest, SetNpuOptimizerAttr_compile_hybrid_mode) { EXPECT_EQ(s.ok(), false); } +TEST_F(NpuAttrTest, SetNpuOptimizerAttr_compile_hybrid_mode_no_set_dynamic_option) { + GraphOptimizationPassOptions options; + SessionOptions session_options; + session_options.config.mutable_graph_options()->mutable_optimizer_options()->set_do_function_inlining(true); + auto *custom_config = + session_options.config.mutable_graph_options()->mutable_rewrite_options()->add_custom_optimizers(); + custom_config->set_name("NpuOptimizer"); + options.session_options = &session_options; + AttrValue compile_hybrid_mode_value = AttrValue(); + compile_hybrid_mode_value.set_i(1); + (*custom_config->mutable_parameter_map())["compile_hybrid_mode"] = compile_hybrid_mode_value; + Status s = NpuAttrs::SetNpuOptimizerAttr(options, reinterpret_cast(1)); + EXPECT_EQ(s.ok(), false); +} + TEST_F(NpuAttrTest, SetNpuOptimizerAttr_oo_level) { GraphOptimizationPassOptions options; SessionOptions session_options; diff --git a/tf_adapter/util/npu_attrs.cc b/tf_adapter/util/npu_attrs.cc index 67406594f..c07ae9009 100644 --- a/tf_adapter/util/npu_attrs.cc +++ b/tf_adapter/util/npu_attrs.cc @@ -2340,7 +2340,16 @@ Status NpuAttrs::SetNpuOptimizerAttr(const GraphOptimizationPassOptions &options } } else if (params.count("input_shape") == 0 && params.count("dynamic_dims") == 0 && params.count("dynamic_node_type") == 0) { - // the three parameters are not set normally. + if (params.count("compile_hybrid_mode") > 0) { + compile_hybrid_mode = std::to_string(params.at("compile_hybrid_mode").i()); + if (compile_hybrid_mode == "1") { + ADP_LOG(ERROR) + << "input_shape, dynamic_dims and dynamic_node_type should be set when compile_hybrid_mode is 1"; + LOG(ERROR) << "input_shape, dynamic_dims and dynamic_node_type should be set when compile_hybrid_mode is 1"; + return errors::Internal( + "input_shape, dynamic_dims and dynamic_node_type should be set when compile_hybrid_mode is 1"); + } + } } else { ADP_LOG(FATAL) << "input_shape, dynamic_dims and dynamic_node_type should use together."; LOG(FATAL) << "input_shape, dynamic_dims and dynamic_node_type should use together."; -- Gitee