From 81a4fbf076803c1fc693531f1d378086ed0c8cbf Mon Sep 17 00:00:00 2001 From: wilber Date: Tue, 13 Dec 2022 22:26:46 +0800 Subject: [PATCH 1/4] memory_optimize and mkdlnn problem --- paddle/fluid/inference/api/analysis_config.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/paddle/fluid/inference/api/analysis_config.cc b/paddle/fluid/inference/api/analysis_config.cc index 1224caf88e668..7ca2b64125d46 100644 --- a/paddle/fluid/inference/api/analysis_config.cc +++ b/paddle/fluid/inference/api/analysis_config.cc @@ -948,8 +948,18 @@ void AnalysisConfig::Update() { #endif } + // TODO(inference): When we enable memory_optimize and mkldnn, PaddleSeg model + // fail. if (enable_memory_optim_) { - pass_builder()->AppendAnalysisPass("memory_optimize_pass"); + if (use_mkldnn_) { + enable_memory_optim_ = false; + LOG_FIRST_N(WARNING, 1) + << "It is detected that mkldnn and memory_optimize_pass are enabled " + "at the same time, but they are not supported yet. Currently, " + "memory_optimize_pass is explicitly disabled" + } else { + pass_builder()->AppendAnalysisPass("memory_optimize_pass"); + } } if (use_lite_) { From 47e0c2bda39bc6f49a50998c2895f27a38accfa7 Mon Sep 17 00:00:00 2001 From: wilber Date: Tue, 13 Dec 2022 22:41:43 +0800 Subject: [PATCH 2/4] update --- paddle/fluid/inference/api/analysis_config.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/paddle/fluid/inference/api/analysis_config.cc b/paddle/fluid/inference/api/analysis_config.cc index 7ca2b64125d46..c39a262babbd8 100644 --- a/paddle/fluid/inference/api/analysis_config.cc +++ b/paddle/fluid/inference/api/analysis_config.cc @@ -951,6 +951,7 @@ void AnalysisConfig::Update() { // TODO(inference): When we enable memory_optimize and mkldnn, PaddleSeg model // fail. if (enable_memory_optim_) { +#ifdef PADDLE_WITH_MKLDNN if (use_mkldnn_) { enable_memory_optim_ = false; LOG_FIRST_N(WARNING, 1) @@ -960,6 +961,9 @@ void AnalysisConfig::Update() { } else { pass_builder()->AppendAnalysisPass("memory_optimize_pass"); } +#else + pass_builder()->AppendAnalysisPass("memory_optimize_pass"); +#endif } if (use_lite_) { From a841eb987f74ceadacd2f2831dbc4111739d7e8f Mon Sep 17 00:00:00 2001 From: wilber Date: Wed, 14 Dec 2022 10:12:00 +0800 Subject: [PATCH 3/4] update --- paddle/fluid/inference/api/analysis_config.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paddle/fluid/inference/api/analysis_config.cc b/paddle/fluid/inference/api/analysis_config.cc index c39a262babbd8..d3382ba4dcc70 100644 --- a/paddle/fluid/inference/api/analysis_config.cc +++ b/paddle/fluid/inference/api/analysis_config.cc @@ -957,7 +957,7 @@ void AnalysisConfig::Update() { LOG_FIRST_N(WARNING, 1) << "It is detected that mkldnn and memory_optimize_pass are enabled " "at the same time, but they are not supported yet. Currently, " - "memory_optimize_pass is explicitly disabled" + "memory_optimize_pass is explicitly disabled"; } else { pass_builder()->AppendAnalysisPass("memory_optimize_pass"); } From 804800faa7881f04c7297d124a222d5794c6e02f Mon Sep 17 00:00:00 2001 From: wilber Date: Wed, 14 Dec 2022 16:02:50 +0800 Subject: [PATCH 4/4] update --- .../tests/api/analyzer_capi_exp_pd_config_tester.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/paddle/fluid/inference/tests/api/analyzer_capi_exp_pd_config_tester.cc b/paddle/fluid/inference/tests/api/analyzer_capi_exp_pd_config_tester.cc index cbf0e615c4d4e..804ac21ea406c 100644 --- a/paddle/fluid/inference/tests/api/analyzer_capi_exp_pd_config_tester.cc +++ b/paddle/fluid/inference/tests/api/analyzer_capi_exp_pd_config_tester.cc @@ -55,6 +55,10 @@ TEST(PD_Config, interface) { bool ir_optim = PD_ConfigIrOptim(config); EXPECT_TRUE(ir_optim); + PD_ConfigEnableMemoryOptim(config, true); + bool memory_enabled = PD_ConfigMemoryOptimEnabled(config); + EXPECT_TRUE(memory_enabled); + #ifndef PADDLE_WITH_LITE PD_ConfigEnableLiteEngine( config, PD_PRECISION_FLOAT32, TRUE, 0, nullptr, 0, nullptr); @@ -95,10 +99,6 @@ TEST(PD_Config, interface) { EXPECT_FALSE(onnxruntime_disabled); PD_ConfigEnableORTOptimization(config); - PD_ConfigEnableMemoryOptim(config, true); - bool memory_enabled = PD_ConfigMemoryOptimEnabled(config); - EXPECT_TRUE(memory_enabled); - PD_ConfigEnableProfile(config); bool profile_enabled = PD_ConfigProfileEnabled(config); EXPECT_TRUE(profile_enabled);