From fcb676059dfac41349a0898daf6ccaaa8016c222 Mon Sep 17 00:00:00 2001 From: zhangbo9674 <82555433+zhangbo9674@users.noreply.github.com> Date: Fri, 8 Sep 2023 18:20:06 +0800 Subject: [PATCH] [IR] Add control flag for ir inplace pass (#57090) * add control flag * add log --- paddle/fluid/framework/executor_cache.cc | 19 +++++++++++++------ paddle/fluid/ir/transforms/inplace_pass.cc | 2 ++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/paddle/fluid/framework/executor_cache.cc b/paddle/fluid/framework/executor_cache.cc index 7a97e67be90..f5c4c745cfd 100644 --- a/paddle/fluid/framework/executor_cache.cc +++ b/paddle/fluid/framework/executor_cache.cc @@ -23,6 +23,9 @@ #include "paddle/ir/core/value.h" #include "paddle/ir/pass/pass.h" #include "paddle/ir/pass/pass_manager.h" +#include "paddle/phi/core/flags.h" + +PHI_DECLARE_bool(new_ir_apply_inplace_pass); namespace paddle { namespace framework { @@ -444,9 +447,11 @@ std::unique_ptr<::ir::Program> ConstructFowardIrProgram( auto ir_res = paddle::dialect::PdOpLowerToKernelPass(program.get()); - ::ir::PassManager pm(::ir::IrContext::Instance(), 3); - pm.AddPass(::ir::CreateInplacePass()); - pm.Run(ir_res.get()); + if (FLAGS_new_ir_apply_inplace_pass) { + ::ir::PassManager pm(::ir::IrContext::Instance(), 3); + pm.AddPass(::ir::CreateInplacePass()); + pm.Run(ir_res.get()); + } return ir_res; } @@ -521,9 +526,11 @@ std::unique_ptr<::ir::Program> ConstructBackwardIrProgram( auto res = paddle::dialect::PdOpLowerToKernelPass(program.get()); - ::ir::PassManager pm(::ir::IrContext::Instance(), 3); - pm.AddPass(::ir::CreateInplacePass()); - pm.Run(res.get()); + if (FLAGS_new_ir_apply_inplace_pass) { + ::ir::PassManager pm(::ir::IrContext::Instance(), 3); + pm.AddPass(::ir::CreateInplacePass()); + pm.Run(res.get()); + } return res; } diff --git a/paddle/fluid/ir/transforms/inplace_pass.cc b/paddle/fluid/ir/transforms/inplace_pass.cc index c445da11420..222abc83448 100644 --- a/paddle/fluid/ir/transforms/inplace_pass.cc +++ b/paddle/fluid/ir/transforms/inplace_pass.cc @@ -330,6 +330,8 @@ class InplacePass : public ir::Pass { "is_inplace", ir::BoolAttribute::get(ir::IrContext::Instance(), true)); } + LOG_FIRST_N(INFO, 1) + << "Apply inplace pass on lowering ::ir::Program to Kernel Dialect."; } bool CanApplyOn(ir::Operation* op) const override { -- GitLab