From dbf6abbc9b5d8e87a0c0493b750303f17ad35a15 Mon Sep 17 00:00:00 2001 From: huangguijun Date: Mon, 17 Mar 2025 20:13:26 +0800 Subject: [PATCH] check varialbe_use_1g_huge_page value --- .../tests/st/util/testcase/npu_attrs_test.cc | 16 ++++++++++++++++ .../tests/ut/util/testcase/npu_attrs_test.cc | 16 ++++++++++++++++ tf_adapter/util/npu_attrs.cc | 2 ++ 3 files changed, 34 insertions(+) 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 408580c90..032af0610 100644 --- a/tf_adapter/tests/st/util/testcase/npu_attrs_test.cc +++ b/tf_adapter/tests/st/util/testcase/npu_attrs_test.cc @@ -150,6 +150,22 @@ TEST_F(NpuAttrTest, CheckPrecisionModeV2) { EXPECT_EQ(s.ok(), false); } +TEST_F(NpuAttrTest, CheckVariableUse1gHugePageInvalid) { + 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 precision_mode_v2 = AttrValue(); + precision_mode_v2.set_i(3); + (*custom_config->mutable_parameter_map())["variable_use_1g_huge_page"] = precision_mode_v2; + Status s = NpuAttrs::SetNpuOptimizerAttr(options, reinterpret_cast(1)); + EXPECT_EQ(s.ok(), false); +} + TEST_F(NpuAttrTest, CheckModifyMixList_Failed) { GraphOptimizationPassOptions options; SessionOptions session_options; 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 58494d316..0f4001651 100644 --- a/tf_adapter/tests/ut/util/testcase/npu_attrs_test.cc +++ b/tf_adapter/tests/ut/util/testcase/npu_attrs_test.cc @@ -241,6 +241,22 @@ TEST_F(NpuAttrTest, CheckPrecisionModeV2) { EXPECT_EQ(s.ok(), false); } +TEST_F(NpuAttrTest, CheckVariableUse1gHugePageInvalid) { + 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 precision_mode_v2 = AttrValue(); + precision_mode_v2.set_i(3); + (*custom_config->mutable_parameter_map())["variable_use_1g_huge_page"] = precision_mode_v2; + Status s = NpuAttrs::SetNpuOptimizerAttr(options, reinterpret_cast(1)); + EXPECT_EQ(s.ok(), false); +} + TEST_F(NpuAttrTest, CheckPrecisionModeV2_Failed_WhenAssignedBoth) { GraphOptimizationPassOptions options; SessionOptions session_options; diff --git a/tf_adapter/util/npu_attrs.cc b/tf_adapter/util/npu_attrs.cc index 8e580ab6e..f1e23afb0 100644 --- a/tf_adapter/util/npu_attrs.cc +++ b/tf_adapter/util/npu_attrs.cc @@ -2383,6 +2383,8 @@ Status NpuAttrs::SetNpuOptimizerAttr(const GraphOptimizationPassOptions &options } if (params.count("variable_use_1g_huge_page") > 0) { variable_use_1g_huge_page = std::to_string(params.at("variable_use_1g_huge_page").i()); + const static std::vector kAllowList = {0, 1, 2}; + NPU_REQUIRES_OK(CheckValueAllowed(params.at("variable_use_1g_huge_page").i(), kAllowList)); } if (params.count("memory_optimization_policy") > 0) { memory_optimization_policy = params.at("memory_optimization_policy").s(); -- Gitee