Browse Source

!1294 add submodule id for init.cc

Merge pull request !1294 from fary86/add_submodule_id_for_init
tags/v0.3.0-alpha
mindspore-ci-bot Gitee 5 years ago
parent
commit
0d9ff84c98
4 changed files with 26 additions and 23 deletions
  1. +1
    -0
      mindspore/ccsrc/CMakeLists.txt
  2. +23
    -0
      mindspore/ccsrc/ir/meta_func_graph.cc
  3. +1
    -22
      mindspore/ccsrc/ir/meta_func_graph.h
  4. +1
    -1
      mindspore/ccsrc/utils/convert_utils.cc

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

@@ -172,6 +172,7 @@ endif()

# set c_expression building
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")

MESSAGE(STATUS "operation system is ${CMAKE_SYSTEM}")


+ 23
- 0
mindspore/ccsrc/ir/meta_func_graph.cc View File

@@ -32,4 +32,27 @@ abstract::AbstractBasePtr MetaFuncGraph::MakeAbstractClosure(const AnfNodePtr &a
}
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

+ 1
- 22
mindspore/ccsrc/ir/meta_func_graph.h View File

@@ -58,28 +58,7 @@ class MetaFuncGraph : public FuncGraphBase {
const std::vector<Signature> &signatures() const { return signatures_; }
void set_signatures(const std::vector<Signature> &signatures) { signatures_ = signatures; }
// 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.
virtual FuncGraphPtr GenerateFromTypes(const TypePtrList &) {


+ 1
- 1
mindspore/ccsrc/utils/convert_utils.cc View File

@@ -172,7 +172,7 @@ py::object AnyToPyData(const Any &value) {

py::object BaseRefToPyData(const BaseRef &value) {
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)) {
ret = BuiltinsToPyData(value);
} else if (utils::isa<ValuePtr>(value)) {


Loading…
Cancel
Save