diff --git a/paddle/fluid/framework/new_executor/interpreter_base_impl.h b/paddle/fluid/framework/new_executor/interpreter_base_impl.h index 43d70883a4882fabb2fcb3bc0eb91e9d5014b8c9..934dd44771e7fa060c60675560c9325094dbd978 100644 --- a/paddle/fluid/framework/new_executor/interpreter_base_impl.h +++ b/paddle/fluid/framework/new_executor/interpreter_base_impl.h @@ -94,19 +94,8 @@ class InterpreterBaseImpl { virtual void SetOutputHooks(const std::vector& hookfuncs) = 0; - virtual const interpreter::DependencyBuilder& GetDependencyBuilder() - const = 0; - virtual std::shared_ptr> GetDependencyCount() const = 0; - virtual const interpreter::StreamAnalyzer& GetStreamAnalyzer() const = 0; - - virtual const interpreter::NewIrDependencyBuilder& GetNewIrDependencyBuilder() - const = 0; - - virtual const interpreter::NewIrStreamAnalyzer& GetNewIrStreamAnalyzer() - const = 0; - virtual bool IsSharedResultsBuild() const = 0; }; diff --git a/paddle/fluid/framework/new_executor/new_ir_interpreter.cc b/paddle/fluid/framework/new_executor/new_ir_interpreter.cc index ead957f7e87ecb0541c1dc87c16003772e6c1fed..e0b6d215cb9e90928a298a761ab0c1e7b680b62a 100644 --- a/paddle/fluid/framework/new_executor/new_ir_interpreter.cc +++ b/paddle/fluid/framework/new_executor/new_ir_interpreter.cc @@ -201,26 +201,20 @@ void NewIRInterpreter::ShareWorkQueueFrom(InterpreterBaseImpl* src) { } void NewIRInterpreter::ShareBuildResultsFrom(const InterpreterBaseImpl& src) { - if (is_shared_results_build_ || !src.IsSharedResultsBuild()) { + const NewIRInterpreter& impl = dynamic_cast(src); + if (is_shared_results_build_ || !impl.IsSharedResultsBuild()) { return; } // share op dependency - ir_dependency_builder_.ShareDependencyFrom(src.GetNewIrDependencyBuilder()); - dependecy_count_ = src.GetDependencyCount(); + ir_dependency_builder_.ShareDependencyFrom(impl.GetNewIrDependencyBuilder()); + dependecy_count_ = impl.GetDependencyCount(); // share event analysis - ir_stream_analyzer_.ShareEventInfoFrom(src.GetNewIrStreamAnalyzer()); + ir_stream_analyzer_.ShareEventInfoFrom(impl.GetNewIrStreamAnalyzer()); is_shared_results_build_ = true; - VLOG(8) << "Share Build Results from InterpreterCore(" << &src + VLOG(8) << "Share Build Results from InterpreterCore(" << &impl << ") to InterpreterCore(" << this << ")"; } -// op dependences -const interpreter::DependencyBuilder& NewIRInterpreter::GetDependencyBuilder() - const { - PADDLE_THROW(platform::errors::Unimplemented( - "GetDependencyBuilder is not implemented in NewIRInterpreter.")); -} - const interpreter::NewIrDependencyBuilder& NewIRInterpreter::GetNewIrDependencyBuilder() const { return ir_dependency_builder_; @@ -231,11 +225,6 @@ std::shared_ptr> NewIRInterpreter::GetDependencyCount() return dependecy_count_; } -const interpreter::StreamAnalyzer& NewIRInterpreter::GetStreamAnalyzer() const { - PADDLE_THROW(platform::errors::Unimplemented( - "GetStreamAnalyzer is not implemented in NewIRInterpreter.")); -} - const interpreter::NewIrStreamAnalyzer& NewIRInterpreter::GetNewIrStreamAnalyzer() const { return ir_stream_analyzer_; diff --git a/paddle/fluid/framework/new_executor/new_ir_interpreter.h b/paddle/fluid/framework/new_executor/new_ir_interpreter.h index a6b24a8200a8b911a7489fed7343a9732c4c8796..3669d8f8dd970b239d2332f8abf8a8c9825efc54 100644 --- a/paddle/fluid/framework/new_executor/new_ir_interpreter.h +++ b/paddle/fluid/framework/new_executor/new_ir_interpreter.h @@ -53,13 +53,8 @@ class NewIRInterpreter : public InterpreterBaseImpl { void ShareBuildResultsFrom(const InterpreterBaseImpl& src) override; - // op dependences - const interpreter::DependencyBuilder& GetDependencyBuilder() const override; - std::shared_ptr> GetDependencyCount() const override; - const interpreter::StreamAnalyzer& GetStreamAnalyzer() const override; - bool IsSharedResultsBuild() const override; void SetCopyProgram(std::shared_ptr prog) override; @@ -195,11 +190,9 @@ class NewIRInterpreter : public InterpreterBaseImpl { void SolvePersisableVarNames(); - const interpreter::NewIrDependencyBuilder& GetNewIrDependencyBuilder() - const override; + const interpreter::NewIrDependencyBuilder& GetNewIrDependencyBuilder() const; - const interpreter::NewIrStreamAnalyzer& GetNewIrStreamAnalyzer() - const override; + const interpreter::NewIrStreamAnalyzer& GetNewIrStreamAnalyzer() const; InstructionSchedulingPriorityLess ir_instruction_scheduling_priority_less; diff --git a/paddle/fluid/framework/new_executor/program_interpreter.cc b/paddle/fluid/framework/new_executor/program_interpreter.cc index ca5f7f9eb490e022f7a24216401c617ea798722c..64ffdbef6193bcd60584490d1c9f984352a17cad 100644 --- a/paddle/fluid/framework/new_executor/program_interpreter.cc +++ b/paddle/fluid/framework/new_executor/program_interpreter.cc @@ -287,16 +287,17 @@ void ProgramInterpreter::ShareWorkQueueFrom(InterpreterBaseImpl* src) { } void ProgramInterpreter::ShareBuildResultsFrom(const InterpreterBaseImpl& src) { - if (is_shared_results_build_ || !src.IsSharedResultsBuild()) { + const ProgramInterpreter& impl = dynamic_cast(src); + if (is_shared_results_build_ || !impl.IsSharedResultsBuild()) { return; } // share op dependency - dependency_builder_.ShareDependencyFrom(src.GetDependencyBuilder()); - dependecy_count_ = src.GetDependencyCount(); + dependency_builder_.ShareDependencyFrom(impl.GetDependencyBuilder()); + dependecy_count_ = impl.GetDependencyCount(); // share event analysis - stream_analyzer_.ShareEventInfoFrom(src.GetStreamAnalyzer()); + stream_analyzer_.ShareEventInfoFrom(impl.GetStreamAnalyzer()); is_shared_results_build_ = true; - VLOG(8) << "Share Build Results from InterpreterCore(" << &src + VLOG(8) << "Share Build Results from InterpreterCore(" << &impl << ") to InterpreterCore(" << this << ")"; } @@ -343,18 +344,6 @@ const interpreter::StreamAnalyzer& ProgramInterpreter::GetStreamAnalyzer() return stream_analyzer_; } -const interpreter::NewIrDependencyBuilder& -ProgramInterpreter::GetNewIrDependencyBuilder() const { - PADDLE_THROW(platform::errors::Unimplemented( - "GetDependencyBuilder is not implemented in ProgramInterpreter.")); -} - -const interpreter::NewIrStreamAnalyzer& -ProgramInterpreter::GetNewIrStreamAnalyzer() const { - PADDLE_THROW(platform::errors::Unimplemented( - "GetDependencyBuilder is not implemented in ProgramInterpreter.")); -} - bool ProgramInterpreter::IsSharedResultsBuild() const { return is_shared_results_build_; } diff --git a/paddle/fluid/framework/new_executor/program_interpreter.h b/paddle/fluid/framework/new_executor/program_interpreter.h index e21fe6e0a49bb0d1d84ae1f589fb335ced8cb5e3..b258106cba90f66231126aabb91ef2d92c1bc787 100644 --- a/paddle/fluid/framework/new_executor/program_interpreter.h +++ b/paddle/fluid/framework/new_executor/program_interpreter.h @@ -53,17 +53,11 @@ class ProgramInterpreter : public InterpreterBaseImpl { void ShareBuildResultsFrom(const InterpreterBaseImpl& src) override; // op dependences - const interpreter::DependencyBuilder& GetDependencyBuilder() const override; + const interpreter::DependencyBuilder& GetDependencyBuilder() const; std::shared_ptr> GetDependencyCount() const override; - const interpreter::StreamAnalyzer& GetStreamAnalyzer() const override; - - const interpreter::NewIrDependencyBuilder& GetNewIrDependencyBuilder() - const override; - - const interpreter::NewIrStreamAnalyzer& GetNewIrStreamAnalyzer() - const override; + const interpreter::StreamAnalyzer& GetStreamAnalyzer() const; bool IsSharedResultsBuild() const override;