1 #pragma once 2 3 #include <c10/macros/Macros.h> 4 5 #include <ATen/core/aten_interned_strings.h> 6 #include <ATen/core/symbol.h> 7 8 namespace c10 { 9 10 #define FORALL_NS_SYMBOLS(_) \ 11 _(namespaces, prim) \ 12 _(namespaces, prims) \ 13 _(namespaces, nvprims) \ 14 _(namespaces, aten) \ 15 _(namespaces, cuda) \ 16 _(namespaces, onnx) \ 17 _(namespaces, attr) \ 18 _(namespaces, scope) \ 19 _(namespaces, user) \ 20 _(namespaces, _caffe2) \ 21 _(namespaces, dimname) \ 22 _(namespaces, namespaces) \ 23 _(prim, Assign) \ 24 _(prim, BroadcastingChunk) \ 25 _(prim, BroadcastSizes) \ 26 _(prim, ReductionSizes) \ 27 _(prim, Constant) \ 28 _(prim, ChunkSizes) \ 29 _(prim, ConstantMKLDNNTensor) \ 30 _(prim, BroadcastMKLDNNTensors) \ 31 _(prim, MKLDNNGroup) \ 32 _(prim, MKLDNNHardSwish) \ 33 _(prim, MKLDNNHardSigmoid) \ 34 _(prim, MKLDNNHardTanh) \ 35 _(prim, MKLDNNClamp) \ 36 _(prim, StaticRuntimeCopyOuts) \ 37 _(prim, Drop) \ 38 _(prim, Eval) \ 39 _(prim, Expand) /* onnx */ \ 40 _(prim, FusionGroup) \ 41 _(prim, CudaFusionGroup) \ 42 _(prim, CudaFusionGuard) \ 43 _(prim, oneDNNFusionGroup) \ 44 _(prim, oneDNNFusionGuard) \ 45 _(prim, FunctionalGraph) \ 46 _(prim, add_optional) \ 47 _(prim, view_copy) \ 48 _(prim, permute_copy) \ 49 _(prim, reshape_copy) \ 50 _(prim, squeeze_copy) \ 51 _(prim, t_copy) \ 52 _(prim, transpose_copy) \ 53 _(prim, unsqueeze_copy) \ 54 _(prim, flatten_copy) \ 55 _(prim, expand_copy) \ 56 _(prim, expand_as_copy) \ 57 _(prim, DifferentiableGraph) \ 58 _(prim, TensorExprGroup) \ 59 _(prim, TensorExprDynamicGroup) \ 60 _(prim, StaticSubgraph) \ 61 _(prim, If) \ 62 _(prim, Jump) /* debug */ \ 63 _(prim, JumpNZ) /* debug */ \ 64 _(prim, JumpZ) /* debug */ \ 65 _(prim, Load) \ 66 _(prim, Loop) \ 67 _(prim, Param) \ 68 _(prim, PackPadded) /* onnx */ \ 69 _(prim, PadPacked) /* onnx */ \ 70 _(prim, Placeholder) /* debug */ \ 71 _(prim, Print) \ 72 _(prim, EmptyListLiteral) \ 73 _(prim, LegacyTypedConstructor) \ 74 _(prim, PythonOp) \ 75 _(prim, IgnoredPythonOp) \ 76 _(prim, Reverse) \ 77 _(prim, Return) \ 78 _(prim, ReturnStmt) \ 79 _(prim, BreakStmt) \ 80 _(prim, ContinueStmt) \ 81 _(prim, ComprehensionScope) \ 82 _(prim, Store) \ 83 _(prim, AutogradZero) \ 84 _(prim, AutogradAnyNonZero) \ 85 _(prim, AutogradAllNonZero) \ 86 _(prim, AutogradAllZero) \ 87 _(prim, Starred) \ 88 _(prim, TupleConstruct) \ 89 _(prim, TupleUnpack) \ 90 _(prim, TupleIndex) \ 91 _(prim, TupleSlice) \ 92 _(prim, ListConstruct) \ 93 _(prim, ListUnpack) \ 94 _(prim, DictConstruct) \ 95 _(prim, ModuleContainerIndex) \ 96 _(prim, EnumName) \ 97 _(prim, EnumValue) \ 98 _(prim, StringIndex) \ 99 _(prim, NumToTensor) \ 100 _(prim, Uninitialized) \ 101 _(prim, VarConcat) \ 102 _(prim, VarStack) \ 103 _(prim, With) \ 104 _(prim, Enter) \ 105 _(prim, Exit) \ 106 _(prim, IfThenElse) \ 107 _(aten, Bool) \ 108 _(aten, Int) \ 109 _(aten, FloatImplicit) \ 110 _(aten, ComplexImplicit) \ 111 _(aten, IntImplicit) \ 112 _(aten, ScalarImplicit) \ 113 _(aten, Float) \ 114 _(aten, Complex) \ 115 _(aten, str) \ 116 _(aten, Delete) \ 117 _(prim, device) \ 118 _(prim, dtype) \ 119 _(prim, layout) \ 120 _(prim, id) \ 121 _(prim, requires_grad) \ 122 _(prim, MakeTestTensor) /* test */ \ 123 _(prim, AutogradAdd) \ 124 _(prim, GradOf) \ 125 _(aten, grad) \ 126 _(aten, backward) \ 127 _(prim, Guard) \ 128 _(prim, BailOut) \ 129 _(prim, TypeCheck) \ 130 _(prim, RequiresGradCheck) \ 131 _(prim, FallbackGraph) \ 132 _(prim, FusedConcat) \ 133 _(prim, ConstantChunk) \ 134 _(prim, MMTreeReduce) \ 135 _(prim, MMBatchSide) \ 136 _(prim, list) \ 137 _(prim, dict) \ 138 _(prim, min) \ 139 _(prim, max) \ 140 _(prim, abs) \ 141 _(aten, divmod) \ 142 _(prim, zip) \ 143 _(prim, enumerate) \ 144 _(prim, range) \ 145 _(prim, rangelist) \ 146 _(prim, isinstance) \ 147 _(prim, tolist) \ 148 _(prim, unchecked_cast) \ 149 _(aten, _grad_sum_to_size) \ 150 _(aten, _size_if_not_equal) \ 151 _(aten, _ncf_unsqueeze) \ 152 _(aten, warn) \ 153 _(aten, sorted) \ 154 _(aten, floordiv) \ 155 _(aten, __range_length) \ 156 _(aten, __derive_index) \ 157 _(aten, __round_to_zero_floordiv) \ 158 _(aten, is_scripting) \ 159 _(aten, _unwrap_optional) \ 160 _(prim, fork) \ 161 _(prim, awaitable) \ 162 _(prim, forkClosure) \ 163 _(prim, awaitableClosure) \ 164 _(prim, awaitable_nowait) \ 165 _(prim, awaitable_wait) \ 166 _(prim, RaiseException) \ 167 _(prim, Closure) \ 168 _(prim, CreateObject) \ 169 _(prim, SetAttr) \ 170 _(prim, GetAttr) \ 171 _(prim, HasAttr) \ 172 _(prim, profile) \ 173 _(prim, profile_ivalue) \ 174 _(prim, AddStatValue) \ 175 _(prim, TimePoint) \ 176 _(prim, CallFunction) \ 177 _(prim, CallMethod) \ 178 _(prim, LoopContinuation) \ 179 _(prim, annotate) \ 180 _(prim, TracedModuleForward) \ 181 _(prim, TracedFork) \ 182 _(prim, TracedAttr) \ 183 _(prim, rpc_async) \ 184 _(prim, rpc_sync) \ 185 _(prim, rpc_remote) \ 186 _(prim, is_cuda) \ 187 _(aten, append) \ 188 _(aten, as_tensor) \ 189 _(aten, adaptive_avg_pool2d_backward) \ 190 _(aten, dim) \ 191 _(aten, format) \ 192 _(aten, percentFormat) \ 193 _(aten, __not__) \ 194 _(aten, __is__) \ 195 _(aten, __isnot__) \ 196 _(aten, _ger) \ 197 _(aten, __getitem__) \ 198 _(aten, _set_item) \ 199 _(aten, manual_seed) \ 200 _(aten, device) \ 201 _(aten, hash) \ 202 _(aten, len) \ 203 _(aten, list) \ 204 _(aten, dict) \ 205 _(aten, wait) \ 206 _(aten, save) \ 207 _(aten, keys) \ 208 _(aten, ord) \ 209 _(aten, chr) \ 210 _(aten, hex) \ 211 _(aten, oct) \ 212 _(aten, clear) \ 213 _(aten, setdefault) \ 214 _(aten, bin) \ 215 _(aten, pop) \ 216 _(aten, insert) \ 217 _(aten, tensor) \ 218 _(prim, unchecked_unwrap_optional) \ 219 _(aten, __contains__) \ 220 _(prim, BailoutTemplate) \ 221 _(prim, grad) \ 222 _(cuda, _set_device) \ 223 _(cuda, set_stream) \ 224 _(cuda, _current_device) \ 225 _(cuda, synchronize) \ 226 _(aten, has_torch_function) \ 227 _(aten, is_autocast_enabled) \ 228 _(aten, is_autocast_cpu_enabled) \ 229 _(aten, is_autocast_xla_enabled) \ 230 _(aten, get_autocast_dtype) \ 231 _(aten, is_autocast_mps_enabled) \ 232 FORALL_ATEN_BASE_SYMBOLS(_) \ 233 _(onnx, Add) \ 234 _(onnx, Concat) \ 235 _(onnx, Constant) \ 236 _(onnx, ConstantFill) \ 237 _(onnx, Div) \ 238 _(onnx, GRU) \ 239 _(onnx, Gather) \ 240 _(onnx, Gemm) \ 241 _(onnx, LSTM) \ 242 _(onnx, MatMul) \ 243 _(onnx, Min) \ 244 _(onnx, Max) \ 245 _(onnx, Mul) \ 246 _(onnx, Pow) \ 247 _(onnx, RNN) \ 248 _(onnx, Shape) \ 249 _(onnx, Size) \ 250 _(onnx, Slice) \ 251 _(onnx, Softmax) \ 252 _(onnx, Squeeze) \ 253 _(onnx, Sub) \ 254 _(onnx, Transpose) \ 255 _(onnx, Unsqueeze) \ 256 _(onnx, Loop) \ 257 _(onnx, If) \ 258 _(onnx, Reshape) \ 259 _(onnx, Expand) \ 260 _(onnx, Equal) \ 261 _(onnx, Greater) \ 262 _(onnx, GreaterOrEqual) \ 263 _(onnx, Less) \ 264 _(onnx, LessOrEqual) \ 265 _(onnx, Not) \ 266 _(aten, ATen) \ 267 _(onnx, Split) \ 268 _(onnx, ConstantOfShape) \ 269 _(onnx, Cast) \ 270 _(onnx, Mod) \ 271 _(onnx, Sqrt) \ 272 _(onnx, SplitToSequence) \ 273 _(onnx, SequenceAt) \ 274 _(onnx, SequenceConstruct) \ 275 _(onnx, SequenceEmpty) \ 276 _(onnx, SequenceInsert) \ 277 _(onnx, SequenceErase) \ 278 _(onnx, ConcatFromSequence) \ 279 _(onnx, Identity) \ 280 _(onnx, SoftmaxCrossEntropyLoss) \ 281 _(onnx, NegativeLogLikelihoodLoss) \ 282 _(onnx, LogSoftmax) \ 283 _(onnx, ReduceL1) \ 284 _(onnx, ReduceL2) \ 285 _(onnx, Conv) \ 286 _(onnx, BatchNormalization) \ 287 _(onnx, ReduceMean) \ 288 _(onnx, ReduceProd) \ 289 _(onnx, Relu) \ 290 _(onnx, Neg) \ 291 _(onnx, NonZero) \ 292 _(onnx, Range) \ 293 _(onnx, Tile) \ 294 _(onnx, Where) \ 295 _(onnx, Optional) \ 296 _(onnx, OptionalGetElement) \ 297 _(onnx, OptionalHasElement) \ 298 FORALL_ATTR_BASE_SYMBOLS(_) \ 299 _(attr, Subgraph) \ 300 _(attr, ReverseSubgraph) \ 301 _(attr, f_real_outputs) \ 302 _(attr, df_input_vjps) \ 303 _(attr, df_input_captured_inputs) \ 304 _(attr, df_input_captured_outputs) \ 305 _(attr, df_output_vjps) \ 306 _(attr, axes) \ 307 _(attr, symbolic_shape_inputs) \ 308 _(attr, allow_stack_outputs) \ 309 _(attr, striding_inputs_desc) \ 310 _(attr, striding_outputs_desc) \ 311 _(attr, broadcast) \ 312 _(attr, direction) \ 313 _(attr, ends) \ 314 _(attr, inplace) \ 315 _(attr, input_as_shape) \ 316 _(attr, is_zero) \ 317 _(attr, num_none) \ 318 _(attr, num_present) \ 319 _(attr, perm) \ 320 _(attr, starts) \ 321 _(attr, profiled_type) \ 322 _(attr, transA) \ 323 _(attr, transB) \ 324 _(attr, name) \ 325 _(attr, module) \ 326 _(attr, beg) \ 327 _(attr, idx) \ 328 _(attr, split) \ 329 _(attr, slot) \ 330 _(attr, kinds) \ 331 _(attr, types) \ 332 _(attr, scope) \ 333 _(attr, keepdims) \ 334 _(attr, cache_id) \ 335 _(attr, new_axis) \ 336 _(attr, warn_id) \ 337 _(attr, output_layouts) \ 338 _(attr, allowzero) \ 339 _(attr, seen_none) \ 340 _(attr, overload_name) \ 341 _(attr, node_stack_idx) 342 343 enum class _keys : unique_t { 344 #define DEFINE_KEY(ns, s) ns##_##s, 345 FORALL_NS_SYMBOLS(DEFINE_KEY) 346 #undef DEFINE_KEY 347 num_symbols 348 }; 349 350 #define DEFINE_SYMBOL(ns, s) \ 351 namespace ns { constexpr Symbol s(static_cast<unique_t>(_keys::ns##_##s)); } 352 FORALL_NS_SYMBOLS(DEFINE_SYMBOL) 353 #undef DEFINE_SYMBOL 354 355 } // namespace c10 356