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

Method _write_oprs

tools/gen_header_for_bin_reduce.py:119–155  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

117 return name[:pos]
118
119 def _write_oprs(self):
120 defs = ["}", "namespace opr {"]
121 already_declare = set()
122 already_instance = set()
123 for i in self._oprs:
124 i = self.strip_opr_name_with_version(i)
125 if i in already_declare:
126 continue
127 else:
128 already_declare.add(i)
129
130 defs.append("class {};".format(i))
131 defs.append("}")
132 defs.append("namespace serialization {")
133 defs.append(
134 """
135 template<class Opr, class Callee>
136 struct OprRegistryCaller {
137 }; """
138 )
139 for i in sorted(self._oprs):
140 i = self.strip_opr_name_with_version(i)
141 if i in already_instance:
142 continue
143 else:
144 already_instance.add(i)
145
146 defs.append(
147 """
148 template<class Callee>
149 struct OprRegistryCaller<opr::{}, Callee>: public
150 OprRegistryCallerDefaultImpl<Callee> {{
151 }}; """.format(
152 i
153 )
154 )
155 self._write_def("MGB_OPR_REGISTRY_CALLER_SPECIALIZE", defs)
156
157 def _write_elemwise_modes(self):
158 with tempfile.NamedTemporaryFile() as ftmp:

Callers 1

generateMethod · 0.95

Calls 5

_write_defMethod · 0.95
addMethod · 0.45
appendMethod · 0.45
formatMethod · 0.45

Tested by

no test coverage detected