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

Function init_graph_rt

imperative/python/src/graph_rt.cpp:120–735  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

118const std::unique_ptr<mgb::OprFootprint> _imperative_sm_opr_footprint_ptr{
119 std::make_unique<mgb::OprFootprint>()};
120void init_graph_rt(py::module m) {
121 def_rendezvous<DeviceTensorND>(m, "DeviceTensorNDRendezvous");
122
123 def_rendezvous<HostNDWithEvent>(m, "HostTensorNDRendezvous");
124
125 def_rendezvous<TensorAttr>(m, "TensorAttrRendezvous");
126
127 Py_Varnode =
128 py::class_<cg::VarNode, GraphNodePtr<cg::VarNode>>(m, "VarNode")
129 .def_property_readonly(
130 "owner", [](cg::VarNode* v) { return v->owner_opr(); })
131 .def_property_readonly(
132 "graph", [](cg::VarNode* v) { return v->owner_graph(); })
133 .def_property(
134 "name", py::overload_cast<>(&VarNode::name, py::const_),
135 py::overload_cast<std::string>(&VarNode::name))
136 .def_property_readonly(
137 "dtype", [](cg::VarNode* v) { return v->dtype(); })
138 .def_property_readonly(
139 "comp_node", [](cg::VarNode* v) { return v->comp_node(); })
140 .def_property_readonly(
141 "shape",
142 [](cg::VarNode* v) -> const TensorShape* {
143 auto&& mgr = v->owner_graph()->static_infer_manager();
144 return mgr.infer_shape_fallible(v);
145 })
146 .def_property_readonly(
147 "value",
148 [](cg::VarNode* v) -> py::object {
149 auto&& mgr = v->owner_graph()->static_infer_manager();
150 auto&& type = mgr.get_infer_type(v);
151 using InferType = cg::static_infer::InferType;
152 if (!(type.value &
153 (InferType::CONST | InferType::RT_STATIC))) {
154 return py::none();
155 }
156 auto* val = mgr.infer_value_fallible(v);
157 if (!val) {
158 return py::none();
159 }
160 return py::cast(*val).attr("numpy")();
161 })
162 .def_property_readonly(
163 "id", [](cg::VarNode* v) { return (v->id()); })
164 .def("__repr__", [](cg::VarNode* v) { return "Var:" + v->name(); });
165
166 py::class_<cg::OperatorNodeBase, GraphNodePtr<cg::OperatorNodeBase>>(
167 m, "OperatorNode")
168 .def_property_readonly(
169 "graph",
170 [](cg::OperatorNodeBase* opr) { return opr->owner_graph(); })
171 .def_property(
172 "name",
173 py::overload_cast<>(&cg::OperatorNodeBase::name, py::const_),
174 py::overload_cast<std::string>(&cg::OperatorNodeBase::name))
175 .def_property_readonly(
176 "inputs",
177 [](cg::OperatorNodeBase* opr) { return to_tuple(opr->input()); })

Callers 1

PYBIND11_MODULEFunction · 0.85

Calls 15

castFunction · 0.85
to_tupleFunction · 0.85
sortFunction · 0.85
rel_importFunction · 0.85
np2tensorFunction · 0.85
input_callbackFunction · 0.85
output_callbackFunction · 0.85
attrMethod · 0.80
calc_footprintMethod · 0.80
emplace_backMethod · 0.80
_get_resultMethod · 0.80

Tested by

no test coverage detected