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

Method build_single_opr

src/serialization/impl/serializer_oss.cpp:168–267  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

166}
167
168flatbuffers::Offset<fbs::Operator> GraphDumperOSS::build_single_opr(
169 cg::OperatorNodeBase* opr, const OprRegistry* registry) {
170 m_cur_opr = opr;
171 ++m_cur_rst.nr_opr;
172
173 using namespace flatbuffers;
174 Offset<Vector<Offset<fbs::CompNode>>> comp_node;
175 auto& config = opr->config();
176 if (config.has_comp_node_set()) {
177 std::vector<flatbuffers::Offset<fbs::CompNode>> cns;
178 for (const auto& cn : config.comp_node()) {
179 cns.emplace_back(fbs::CreateCompNode(
180 m_builder, m_builder.CreateSharedString(cn.to_string_logical())));
181 }
182 comp_node = m_builder.CreateVector(cns);
183 }
184
185 Offset<Vector<uint32_t>> inputs;
186 if (opr->input().size()) {
187 std::vector<uint32_t> v;
188 v.reserve(opr->input().size());
189 for (auto inp : opr->input()) {
190 v.emplace_back(m_var2id.at(inp));
191 }
192 inputs = m_builder.CreateVector(v);
193 }
194
195 Offset<String> operator_name;
196 if (m_config.keep_op_name) {
197 operator_name = m_builder.CreateSharedString(opr->name());
198 }
199
200 Offset<Vector<Offset<String>>> output_names;
201 if (m_config.keep_var_name >= 2 ||
202 (m_config.keep_var_name == 1 &&
203 contains_any_in_set(opr->output(), m_output_vars))) {
204 std::vector<std::string> onames;
205 for (auto i : opr->output()) {
206 if (!i->contain_flag(VarNode::Flag::VOLATILE_CONTENT)) {
207 onames.emplace_back(i->name());
208 }
209 }
210 output_names = m_builder.CreateVectorOfStrings(onames);
211 }
212
213 auto output_dtype = build_dtype(config.output_dtype());
214
215 m_cur_opr_tensor.clear();
216 m_blobs.clear();
217 m_cur_opr_param.clear();
218 m_cur_opr_param_type.clear();
219 registry->dumper(*this, *opr);
220
221 Offset<Vector<Offset<fbs::Tensor>>> tensors;
222 if (m_cur_opr_tensor.size())
223 tensors = m_builder.CreateVector(m_cur_opr_tensor);
224
225 Offset<Vector<Offset<fbs::Blob>>> blobs;

Callers

nothing calls this directly

Calls 15

contains_any_in_setFunction · 0.85
build_dtypeFunction · 0.85
has_comp_node_setMethod · 0.80
emplace_backMethod · 0.80
to_string_logicalMethod · 0.80
output_dtypeMethod · 0.80
add_inputsMethod · 0.80
add_comp_nodeMethod · 0.80
comp_nodeMethod · 0.45
sizeMethod · 0.45
inputMethod · 0.45
reserveMethod · 0.45

Tested by

no test coverage detected