MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / init_oprs_to_dump

Method init_oprs_to_dump

src/serialization/impl/serializer_oss_v2.cpp:112–148  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

110}
111
112void GraphDumperOSSV2::init_oprs_to_dump(const SymbolVarArray& endpoints) {
113 m_oprs_to_dump.clear();
114
115 // iterate oprs to init
116 auto on_opr = [&](cg::OperatorNodeBase* opr) {
117 if (should_remove_in_dump(opr)) {
118 mgb_assert(opr->input().size() == 1);
119 // Copy input ID to output
120 for (auto i : opr->output()) {
121 if (m_var_remove_in_dump.find(opr->input(0)) !=
122 m_var_remove_in_dump.end()) {
123 m_var_remove_in_dump[i] = m_var_remove_in_dump[opr->input(0)];
124 } else {
125 m_var_remove_in_dump[i] = opr->input(0);
126 }
127 }
128 } else {
129 auto registry = OprRegistryV2::versioned_find_by_typeinfo(
130 opr->dyn_typeinfo(), m_version);
131 if (!registry || !registry->dumper) {
132 mgb_throw(
133 cg::OperatorNodeExcExtraInfo::ExcMaker{opr}.make<MegBrainError>,
134 "serialization as FlatBuffers is not supported for "
135 "operator %s",
136 opr->dyn_typeinfo()->name);
137 }
138 mgb_assert(
139 registry->version <= m_version,
140 "The Operator version should less than model version");
141 m_oprs_to_dump.emplace_back(opr, registry);
142 }
143 };
144 cg::DepOprIter dep_opr_iter{on_opr};
145 for (auto i : endpoints) {
146 dep_opr_iter.add(i.node()->owner_opr());
147 }
148}
149
150flatbuffers::Offset<fbs::v2::Metadata> GraphDumperOSSV2::build_metadata(
151 const Metadata& metadata) {

Callers

nothing calls this directly

Calls 10

emplace_backMethod · 0.80
clearMethod · 0.45
sizeMethod · 0.45
inputMethod · 0.45
outputMethod · 0.45
findMethod · 0.45
endMethod · 0.45
addMethod · 0.45
owner_oprMethod · 0.45
nodeMethod · 0.45

Tested by

no test coverage detected