Merge pull request !1294 from fary86/add_submodule_id_for_inittags/v0.3.0-alpha
| @@ -172,6 +172,7 @@ endif() | |||||
| # set c_expression building | # set c_expression building | ||||
| set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) | set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) | ||||
| set_property(SOURCE "pipeline/init.cc" PROPERTY COMPILE_DEFINITIONS SUBMODULE_ID=mindspore::SubModuleId::SM_PIPELINE) | |||||
| pybind11_add_module(_c_expression "pipeline/init.cc") | pybind11_add_module(_c_expression "pipeline/init.cc") | ||||
| MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}") | MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}") | ||||
| @@ -32,4 +32,27 @@ abstract::AbstractBasePtr MetaFuncGraph::MakeAbstractClosure(const AnfNodePtr &a | |||||
| } | } | ||||
| return meta_func_graph_fn; | return meta_func_graph_fn; | ||||
| } | } | ||||
| FuncGraphPtr MetaFuncGraph::GenerateFuncGraph(const abstract::AbstractBasePtrList &args_spec_list) { | |||||
| TypePtrList types; | |||||
| (void)std::transform(args_spec_list.begin(), args_spec_list.end(), std::back_inserter(types), | |||||
| [](const AbstractBasePtr &arg) -> TypePtr { | |||||
| MS_EXCEPTION_IF_NULL(arg); | |||||
| return arg->BuildType(); | |||||
| }); | |||||
| // filter unsafe characters in log print since name_ is from outside | |||||
| auto iter = cache_.find(types); | |||||
| if (iter == cache_.end()) { | |||||
| FuncGraphPtr fg = GenerateFromTypes(types); | |||||
| MS_EXCEPTION_IF_NULL(fg); | |||||
| MS_LOG(INFO) << "MetaFuncgraph: cache miss for types: " << mindspore::ToString(args_spec_list) | |||||
| << ", g: " << fg->ToString(); | |||||
| cache_[types] = fg; | |||||
| return fg; | |||||
| } else { | |||||
| MS_LOG(DEBUG) << "MetaFuncgraph: cache hit for types: " << mindspore::ToString(args_spec_list) | |||||
| << ", g: " << iter->second->ToString(); | |||||
| return iter->second; | |||||
| } | |||||
| } | |||||
| } // namespace mindspore | } // namespace mindspore | ||||
| @@ -58,28 +58,7 @@ class MetaFuncGraph : public FuncGraphBase { | |||||
| const std::vector<Signature> &signatures() const { return signatures_; } | const std::vector<Signature> &signatures() const { return signatures_; } | ||||
| void set_signatures(const std::vector<Signature> &signatures) { signatures_ = signatures; } | void set_signatures(const std::vector<Signature> &signatures) { signatures_ = signatures; } | ||||
| // Generate a Graph for the given abstract arguments. | // Generate a Graph for the given abstract arguments. | ||||
| virtual FuncGraphPtr GenerateFuncGraph(const abstract::AbstractBasePtrList &args_spec_list) { | |||||
| TypePtrList types; | |||||
| (void)std::transform(args_spec_list.begin(), args_spec_list.end(), std::back_inserter(types), | |||||
| [](const AbstractBasePtr &arg) -> TypePtr { | |||||
| MS_EXCEPTION_IF_NULL(arg); | |||||
| return arg->BuildType(); | |||||
| }); | |||||
| // filter unsafe characters in log print since name_ is from outside | |||||
| auto iter = cache_.find(types); | |||||
| if (iter == cache_.end()) { | |||||
| FuncGraphPtr fg = GenerateFromTypes(types); | |||||
| MS_EXCEPTION_IF_NULL(fg); | |||||
| MS_LOG(INFO) << "MetaFuncgraph: cache miss for types: " << mindspore::ToString(args_spec_list) | |||||
| << ", g: " << fg->ToString(); | |||||
| cache_[types] = fg; | |||||
| return fg; | |||||
| } else { | |||||
| MS_LOG(DEBUG) << "MetaFuncgraph: cache hit for types: " << mindspore::ToString(args_spec_list) | |||||
| << ", g: " << iter->second->ToString(); | |||||
| return iter->second; | |||||
| } | |||||
| } | |||||
| virtual FuncGraphPtr GenerateFuncGraph(const abstract::AbstractBasePtrList &args_spec_list); | |||||
| // Generate a Graph for this type signature. | // Generate a Graph for this type signature. | ||||
| virtual FuncGraphPtr GenerateFromTypes(const TypePtrList &) { | virtual FuncGraphPtr GenerateFromTypes(const TypePtrList &) { | ||||
| @@ -172,7 +172,7 @@ py::object AnyToPyData(const Any &value) { | |||||
| py::object BaseRefToPyData(const BaseRef &value) { | py::object BaseRefToPyData(const BaseRef &value) { | ||||
| py::object ret; | py::object ret; | ||||
| MS_LOG(DEBUG) << "BaseRefToPyData " << common::SafeCStr(value.ToString()); | |||||
| MS_LOG(DEBUG) << "BaseRefToPyData " << value.ToString(); | |||||
| if (utils::isa<int>(value) || utils::isa<float>(value) || utils::isa<double>(value) || utils::isa<bool>(value)) { | if (utils::isa<int>(value) || utils::isa<float>(value) || utils::isa<double>(value) || utils::isa<bool>(value)) { | ||||
| ret = BuiltinsToPyData(value); | ret = BuiltinsToPyData(value); | ||||
| } else if (utils::isa<ValuePtr>(value)) { | } else if (utils::isa<ValuePtr>(value)) { | ||||