Browse Source

move conv transpose pass from common to unify mindir, for pynative

Signed-off-by: zhoufeng <zhoufeng54@huawei.com>
tags/v1.3.0
zhoufeng 4 years ago
parent
commit
0787efad03
9 changed files with 32 additions and 7 deletions
  1. +1
    -1
      mindspore/ccsrc/CMakeLists.txt
  2. +23
    -1
      mindspore/ccsrc/backend/optimizer/common/common_backend_optimization.cc
  3. +1
    -0
      mindspore/ccsrc/backend/optimizer/common/common_backend_optimization.h
  4. +1
    -0
      mindspore/ccsrc/backend/session/ascend_session.cc
  5. +1
    -1
      mindspore/ccsrc/backend/session/cpu_session.h
  6. +1
    -1
      mindspore/ccsrc/backend/session/gpu_session.h
  7. +2
    -0
      mindspore/ccsrc/backend/session/session_basic.cc
  8. +1
    -1
      mindspore/ccsrc/backend/session/session_basic.h
  9. +1
    -2
      mindspore/ccsrc/transform/express_ir/CMakeLists.txt

+ 1
- 1
mindspore/ccsrc/CMakeLists.txt View File

@@ -231,7 +231,7 @@ foreach(_comp ${SUB_COMP})
string(REPLACE "/" "_" sub ${_comp})
if(TARGET _mindspore_${sub}_obj)
list(APPEND SUB_OBJECTS_SRC $<TARGET_OBJECTS:_mindspore_${sub}_obj>)
add_dependencies(_mindspore_${sub}_obj proto_input)
add_dependencies(_mindspore_${sub}_obj proto_input mindspore_core)
endif()
endforeach()



+ 23
- 1
mindspore/ccsrc/backend/optimizer/common/common_backend_optimization.cc View File

@@ -44,7 +44,6 @@ void BackendCommonOptimization(const std::shared_ptr<session::KernelGraph> &kern
}
auto optimizer = std::make_shared<GraphOptimizer>();
auto common_pm = std::make_shared<PassManager>("common_pm");
common_pm->AddPass(std::make_shared<ConvTransposeToConvBackpropInputPass>());
common_pm->AddPass(std::make_shared<ConvertConstInputToAttr>());
common_pm->AddPass(std::make_shared<ConvertAttrToUnifyMindIR>());
common_pm->AddPass(std::make_shared<ConstToAttrStridedSliceGradPass>());
@@ -80,5 +79,28 @@ void CommonFinalOptimization(const std::shared_ptr<session::KernelGraph> &kernel
DumpIR(filename, kernel_graph);
}
}

void CommonUnifyMindIROptimization(const std::shared_ptr<session::KernelGraph> &kernel_graph) {
MS_EXCEPTION_IF_NULL(kernel_graph);
MS_LOG(INFO) << "start common unify mindir opt graph:" << kernel_graph->graph_id();
auto context_ptr = MsContext::GetInstance();
MS_EXCEPTION_IF_NULL(context_ptr);
bool save_graphs = context_ptr->get_param<bool>(MS_CTX_SAVE_GRAPHS_FLAG);
if (save_graphs) {
std::string file_name =
"hwopt_common_unify_mindir_before_graph_" + std::to_string(kernel_graph->graph_id()) + ".ir";
DumpIR(file_name, kernel_graph);
}
auto opt = std::make_shared<GraphOptimizer>();
auto pm = std::make_shared<PassManager>("common_unify_mindir_pm");
pm->AddPass(std::make_shared<ConvTransposeToConvBackpropInputPass>());
opt->AddPassManager(pm);
(void)opt->Optimize(kernel_graph);
kernel_graph->SetExecOrderByDefault();
if (save_graphs) {
std::string file_name = "hwopt_common_unify_mindir_after_graph_" + std::to_string(kernel_graph->graph_id()) + ".ir";
DumpIR(file_name, kernel_graph);
}
}
} // namespace opt
} // namespace mindspore

+ 1
- 0
mindspore/ccsrc/backend/optimizer/common/common_backend_optimization.h View File

@@ -21,6 +21,7 @@ namespace mindspore {
namespace opt {
void BackendCommonOptimization(const std::shared_ptr<session::KernelGraph> &kernel_graph);
void CommonFinalOptimization(const std::shared_ptr<session::KernelGraph> &kernel_graph);
void CommonUnifyMindIROptimization(const std::shared_ptr<session::KernelGraph> &kernel_graph);
} // namespace opt
} // namespace mindspore



+ 1
- 0
mindspore/ccsrc/backend/session/ascend_session.cc View File

@@ -338,6 +338,7 @@ bool TensorNeedSync(const AnfNodePtr &parameter, const tensor::TensorPtr &tensor
void AscendSession::Init(uint32_t device_id) { InitExecutor(kAscendDevice, device_id); }

void AscendSession::UnifyMindIR(const KernelGraphPtr &graph) {
SessionBasic::UnifyMindIR(graph);
auto context_ptr = MsContext::GetInstance();
MS_EXCEPTION_IF_NULL(context_ptr);
bool save_graphs = context_ptr->get_param<bool>(MS_CTX_SAVE_GRAPHS_FLAG);


+ 1
- 1
mindspore/ccsrc/backend/session/cpu_session.h View File

@@ -32,7 +32,7 @@ class CPUSession : public SessionBasic {
void Init(uint32_t device_id) override;

protected:
void UnifyMindIR(const KernelGraphPtr &graph) override { return; }
void UnifyMindIR(const KernelGraphPtr &graph) override { SessionBasic::UnifyMindIR(graph); }
void CreateOutputTensors(const GraphId &graph_id, const std::vector<tensor::TensorPtr> &input_tensors, VectorRef *,
std::map<tensor::TensorPtr, session::KernelWithIndex> *tensor_to_node) override;
GraphId CompileGraphImpl(const AnfNodePtrList &lst, const AnfNodePtrList &outputs) override;


+ 1
- 1
mindspore/ccsrc/backend/session/gpu_session.h View File

@@ -37,7 +37,7 @@ class GPUSession : public SessionBasic {
void SyncStream() override;

protected:
void UnifyMindIR(const KernelGraphPtr &graph) override { return; }
void UnifyMindIR(const KernelGraphPtr &graph) override { SessionBasic::UnifyMindIR(graph); }
GraphId CompileGraphImpl(const AnfNodePtrList &lst, const AnfNodePtrList &outputs) override;
GraphId CompileGraphImpl(NotNull<FuncGraphPtr> func_graph) override;
void PreExecuteGraph(const std::shared_ptr<KernelGraph> &kernel_graph, const std::vector<tensor::TensorPtr> &inputs,


+ 2
- 0
mindspore/ccsrc/backend/session/session_basic.cc View File

@@ -2426,6 +2426,8 @@ void SessionBasic::DumpGraph(const std::shared_ptr<KernelGraph> &kernel_graph) {
#endif
}

void SessionBasic::UnifyMindIR(const KernelGraphPtr &graph) { opt::CommonUnifyMindIROptimization(graph); }

#if (ENABLE_CPU && !_WIN32)
void SessionBasic::InitPsWorker(const KernelGraphPtr &kernel_graph) {
if (!ps::PSContext::instance()->is_worker()) {


+ 1
- 1
mindspore/ccsrc/backend/session/session_basic.h View File

@@ -195,7 +195,7 @@ class SessionBasic : public std::enable_shared_from_this<SessionBasic> {
std::map<tensor::TensorPtr, session::KernelWithIndex> *tensor_to_node);
virtual void UpdateOutputTensors(const VectorRef *outputs,
const std::map<tensor::TensorPtr, session::KernelWithIndex> &tensor_to_node);
virtual void UnifyMindIR(const KernelGraphPtr &graph) {}
virtual void UnifyMindIR(const KernelGraphPtr &graph);
virtual void FinalOptimize(const KernelGraphPtr &graph) const;
virtual GraphId CompileGraphImpl(const AnfNodePtrList &lst, const AnfNodePtrList &outputs) { return 0; }
virtual GraphId CompileGraphImpl(NotNull<FuncGraphPtr> func_graph) { return kInvalidGraphId; }


+ 1
- 2
mindspore/ccsrc/transform/express_ir/CMakeLists.txt View File

@@ -1,5 +1,4 @@
file(GLOB_RECURSE _EXPORTER_IR_SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cc")
set_property(SOURCE ${_EXPORTER_IR_SRC_FILES} PROPERTY COMPILE_DEFINITIONS
SUBMODULE_ID=mindspore::SubModuleId::SM_EXPRESS)
add_library(_mindspore_transform_express_ir_obj OBJECT ${_EXPORTER_IR_SRC_FILES})
add_dependencies(_mindspore_transform_express_ir_obj mindspore_core)
add_library(_mindspore_transform_express_ir_obj OBJECT ${_EXPORTER_IR_SRC_FILES})

Loading…
Cancel
Save