You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

types.cc 31 kB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824
  1. /**
  2. * Copyright 2020 Huawei Technologies Co., Ltd
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #include "framework/common/types.h"
  17. #include "graph/types.h"
  18. namespace ge {
  19. // dump
  20. const std::string DUMP_MODEL = "model_name";
  21. const std::string DUMP_ALL_MODEL = "ALL_MODEL_NEED_DUMP_AND_IT_IS_NOT_A_MODEL_NAME";
  22. const std::string DUMP_STATUS = "status";
  23. const std::string DUMP_LAYER = "layer";
  24. const std::string DUMP_FILE_PATH = "path";
  25. const std::string DUMP_MODE = "dump_mode";
  26. // op debug mode
  27. const std::string OP_DEBUG_AICORE = "aicore_overflow";
  28. const std::string OP_DEBUG_ATOMIC = "atomic_overflow";
  29. const std::string OP_DEBUG_ALL = "all";
  30. const int DEFAULT_FORMAT = static_cast<const int>(ge::FORMAT_NCHW);
  31. // Supported public property names
  32. const std::string PROP_OME_START_TIME = "ome_start_time"; // start time
  33. const std::string PROP_OME_DUMP_PATH = "ome_dump_path"; // dump path
  34. const std::string PROP_OME_LOG_PATH = "ome_log_path"; // log path
  35. // Profile related constant
  36. const uint32_t CCE_PROFILE_ON = 0;
  37. const uint32_t CCE_PROFILE_OFF = 1;
  38. const std::string OME_PROFILE = "OME_PROFILE";
  39. const std::string CCE_PROFILE = "CCE_PROFILE";
  40. const std::string RTS_PROFILE = "RTS_PROFILE";
  41. const std::string PROFILER_JOBCTX = "profiler_jobctx";
  42. const std::string PROFILER_TARGET_PATH = "profiler_target_path";
  43. const std::string RTS_PROFILE_PATH = "RTS_PATH";
  44. const std::string PROFILE_STOP_KEY = "stop";
  45. const std::string PROFILE_STOP_VALUE = "enable";
  46. const std::map<std::string, std::string> PROFILE_COMPONENT_MAP{
  47. {"ome", OME_PROFILE},
  48. {"cce", CCE_PROFILE},
  49. {"runtime", RTS_PROFILE},
  50. };
  51. const std::string PROFILE_CONFIG = "config";
  52. const std::string PROFILE_MODEL_ID = "modelId";
  53. REGISTER_OPTYPE_DEFINE(DATA, "Data");
  54. REGISTER_OPTYPE_DEFINE(AIPPDATA, "AippData");
  55. REGISTER_OPTYPE_DEFINE(CONVOLUTION, "Convolution");
  56. REGISTER_OPTYPE_DEFINE(CORRELATION, "Correlation");
  57. REGISTER_OPTYPE_DEFINE(CORRELATIONV2, "Correlation_V2");
  58. REGISTER_OPTYPE_DEFINE(DECONVOLUTION, "Deconvolution");
  59. REGISTER_OPTYPE_DEFINE(POOLING, "Pooling");
  60. REGISTER_OPTYPE_DEFINE(ELTWISE, "Eltwise");
  61. REGISTER_OPTYPE_DEFINE(RELU, "ReLU");
  62. REGISTER_OPTYPE_DEFINE(RELU6, "ReLU6");
  63. REGISTER_OPTYPE_DEFINE(SIGMOID, "Sigmoid");
  64. REGISTER_OPTYPE_DEFINE(ABSVAL, "AbsVal");
  65. REGISTER_OPTYPE_DEFINE(TANH, "TanH");
  66. REGISTER_OPTYPE_DEFINE(PRELU, "PReLU");
  67. REGISTER_OPTYPE_DEFINE(BATCHNORM, "BatchNorm");
  68. REGISTER_OPTYPE_DEFINE(FUSIONBATCHNORM, "FusionBatchNorm");
  69. REGISTER_OPTYPE_DEFINE(SCALE, "Scale");
  70. REGISTER_OPTYPE_DEFINE(FULL_CONNECTION, "FullConnection");
  71. REGISTER_OPTYPE_DEFINE(SOFTMAX, "Softmax");
  72. REGISTER_OPTYPE_DEFINE(PLUS, "Plus");
  73. REGISTER_OPTYPE_DEFINE(ACTIVATION, "Activation");
  74. REGISTER_OPTYPE_DEFINE(FLATTEN, "Flatten");
  75. REGISTER_OPTYPE_DEFINE(ADD, "Add");
  76. REGISTER_OPTYPE_DEFINE(SUB, "Sub");
  77. REGISTER_OPTYPE_DEFINE(MUL, "Mul");
  78. REGISTER_OPTYPE_DEFINE(MATMUL, "MatMul");
  79. REGISTER_OPTYPE_DEFINE(RSQRT, "Rsqrt");
  80. REGISTER_OPTYPE_DEFINE(BIASADD, "BiasAdd");
  81. REGISTER_OPTYPE_DEFINE(RESHAPE, "Reshape");
  82. REGISTER_OPTYPE_DEFINE(REFORMAT, "ReFormat");
  83. REGISTER_OPTYPE_DEFINE(DEPCONVOLUTION, "ConvolutionDepthwise");
  84. REGISTER_OPTYPE_DEFINE(DROPOUT, "Dropout");
  85. REGISTER_OPTYPE_DEFINE(DROPOUTGENMASK, "DropOutGenMask");
  86. REGISTER_OPTYPE_DEFINE(DROPOUTDOMASK, "DropOutDoMask");
  87. REGISTER_OPTYPE_DEFINE(CONCAT, "Concat");
  88. REGISTER_OPTYPE_DEFINE(ROIPOOLING, "ROIPooling");
  89. REGISTER_OPTYPE_DEFINE(PROPOSAL, "Proposal");
  90. REGISTER_OPTYPE_DEFINE(FSRDETECTIONOUTPUT, "FSRDetectionOutput");
  91. REGISTER_OPTYPE_DEFINE(DETECTIONPOSTPROCESS, "Detectpostprocess");
  92. REGISTER_OPTYPE_DEFINE(LRN, "LRN");
  93. REGISTER_OPTYPE_DEFINE(TRANSDATA, "TransData");
  94. REGISTER_OPTYPE_DEFINE(PERMUTE, "Permute");
  95. REGISTER_OPTYPE_DEFINE(SSDNORMALIZE, "SSDNormalize");
  96. REGISTER_OPTYPE_DEFINE(SSDPRIORBOX, "SSDPriorBox");
  97. REGISTER_OPTYPE_DEFINE(NETOUTPUT, "NetOutput");
  98. REGISTER_OPTYPE_DEFINE(SSDDETECTIONOUTPUT, "SSDDetectionOutput");
  99. REGISTER_OPTYPE_DEFINE(REFINEDETDETECTIONOUTPUT, "RefinedetDetectionOutput");
  100. REGISTER_OPTYPE_DEFINE(CHANNELAXPY, "ChannelAxpy");
  101. REGISTER_OPTYPE_DEFINE(PSROIPOOLING, "PSROIPooling");
  102. REGISTER_OPTYPE_DEFINE(POWER, "Power");
  103. REGISTER_OPTYPE_DEFINE(POW, "Pow");
  104. REGISTER_OPTYPE_DEFINE(ROIALIGN, "ROIAlign");
  105. REGISTER_OPTYPE_DEFINE(PYTHON, "Python");
  106. REGISTER_OPTYPE_DEFINE(FREESPACEEXTRACT, "FreespaceExtract");
  107. REGISTER_OPTYPE_DEFINE(SPATIALTF, "SpatialTransform");
  108. REGISTER_OPTYPE_DEFINE(SHAPE, "Shape");
  109. REGISTER_OPTYPE_DEFINE(SHAPEN, "ShapeN");
  110. REGISTER_OPTYPE_DEFINE(ARGMAX, "ArgMax");
  111. REGISTER_OPTYPE_DEFINE(GATHERND, "GatherNd");
  112. REGISTER_OPTYPE_DEFINE(GATHER, "Gather");
  113. REGISTER_OPTYPE_DEFINE(REALDIV, "RealDiv");
  114. REGISTER_OPTYPE_DEFINE(PACK, "Pack");
  115. REGISTER_OPTYPE_DEFINE(SLICE, "Slice");
  116. REGISTER_OPTYPE_DEFINE(SLICED, "SliceD");
  117. REGISTER_OPTYPE_DEFINE(FLOORDIV, "FloorDiv");
  118. REGISTER_OPTYPE_DEFINE(SQUEEZE, "Squeeze");
  119. REGISTER_OPTYPE_DEFINE(UNSQUEEZE, "Unsqueeze");
  120. REGISTER_OPTYPE_DEFINE(STRIDEDSLICE, "StridedSlice");
  121. REGISTER_OPTYPE_DEFINE(RANGE, "Range");
  122. REGISTER_OPTYPE_DEFINE(RPNPROPOSALS, "RpnProposals");
  123. REGISTER_OPTYPE_DEFINE(DECODEBBOX, "DecodeBbox");
  124. REGISTER_OPTYPE_DEFINE(PAD, "Pad");
  125. REGISTER_OPTYPE_DEFINE(PADV2, "PadV2");
  126. REGISTER_OPTYPE_DEFINE(MIRRORPAD, "MirrorPad");
  127. REGISTER_OPTYPE_DEFINE(TILE, "Tile");
  128. REGISTER_OPTYPE_DEFINE(SIZE, "Size");
  129. REGISTER_OPTYPE_DEFINE(CLIPBOXES, "ClipBoxes");
  130. REGISTER_OPTYPE_DEFINE(FASTRCNNPREDICTIONS, "FastrcnnPredictions");
  131. REGISTER_OPTYPE_DEFINE(SPLIT, "Split");
  132. REGISTER_OPTYPE_DEFINE(SPLITV, "SplitV");
  133. REGISTER_OPTYPE_DEFINE(EXPANDDIMS, "ExpandDims");
  134. REGISTER_OPTYPE_DEFINE(EMPTY, "Empty");
  135. REGISTER_OPTYPE_DEFINE(MEAN, "Mean");
  136. REGISTER_OPTYPE_DEFINE(GREATER, "Greater");
  137. REGISTER_OPTYPE_DEFINE(SWITCH, "Switch");
  138. REGISTER_OPTYPE_DEFINE(SWITCHN, "SwitchN");
  139. REGISTER_OPTYPE_DEFINE(MERGE, "Merge");
  140. REGISTER_OPTYPE_DEFINE(SYMBOLICGRADIENT, "SymbolicGradient");
  141. REGISTER_OPTYPE_DEFINE(REMOTECALL, "RemoteCall");
  142. REGISTER_OPTYPE_DEFINE(_IF, "_If");
  143. REGISTER_OPTYPE_DEFINE(STATELESSIF, "StatelessIf");
  144. REGISTER_OPTYPE_DEFINE(IF, "If");
  145. REGISTER_OPTYPE_DEFINE(CASE, "Case");
  146. REGISTER_OPTYPE_DEFINE(_WHILE, "_While");
  147. REGISTER_OPTYPE_DEFINE(WHILE, "While");
  148. REGISTER_OPTYPE_DEFINE(STATELESSWHILE, "StatelessWhile");
  149. REGISTER_OPTYPE_DEFINE(FOR, "For");
  150. REGISTER_OPTYPE_DEFINE(PARTITIONEDCALL, "PartitionedCall");
  151. REGISTER_OPTYPE_DEFINE(STATEFULPARTITIONEDCALL, "StatefulPartitionedCall");
  152. REGISTER_OPTYPE_DEFINE(FAKEPARAM, "FakeParam");
  153. REGISTER_OPTYPE_DEFINE(TRANSPOSE, "Transpose");
  154. REGISTER_OPTYPE_DEFINE(TRANSPOSED, "TransposeD");
  155. REGISTER_OPTYPE_DEFINE(CAST, "Cast");
  156. REGISTER_OPTYPE_DEFINE(REGION, "Region");
  157. REGISTER_OPTYPE_DEFINE(YOLO, "Yolo");
  158. REGISTER_OPTYPE_DEFINE(YOLODETECTIONOUTPUT, "YoloDetectionOutput");
  159. REGISTER_OPTYPE_DEFINE(FILL, "Fill");
  160. REGISTER_OPTYPE_DEFINE(REVERSE, "Reverse");
  161. REGISTER_OPTYPE_DEFINE(UNPACK, "Unpack");
  162. REGISTER_OPTYPE_DEFINE(YOLO2REORG, "Yolo2Reorg");
  163. REGISTER_OPTYPE_DEFINE(REDUCESUM, "ReduceSum");
  164. REGISTER_OPTYPE_DEFINE(SUM, "Sum");
  165. REGISTER_OPTYPE_DEFINE(CONSTANT, "Const");
  166. REGISTER_OPTYPE_DEFINE(RESIZEBILINEAR, "ResizeBilinear");
  167. REGISTER_OPTYPE_DEFINE(RESIZEBILINEARGRAD, "ResizeBilinearGrad");
  168. REGISTER_OPTYPE_DEFINE(MAXIMUM, "Maximum");
  169. REGISTER_OPTYPE_DEFINE(FRAMEWORKOP, "FrameworkOp");
  170. REGISTER_OPTYPE_DEFINE(ARG, "_Arg");
  171. REGISTER_OPTYPE_DEFINE(FUSEDBATCHNORMGRAD, "FusedBatchNormGrad");
  172. REGISTER_OPTYPE_DEFINE(LSTM, "LSTM");
  173. REGISTER_OPTYPE_DEFINE(HIGHWAY, "HighWay");
  174. REGISTER_OPTYPE_DEFINE(RNN, "RNN");
  175. REGISTER_OPTYPE_DEFINE(ATTENTIONDECODER, "AttentionDecoder");
  176. REGISTER_OPTYPE_DEFINE(LOGICAL_NOT, "LogicalNot");
  177. REGISTER_OPTYPE_DEFINE(LOGICAL_AND, "LogicalAnd");
  178. REGISTER_OPTYPE_DEFINE(LOGICAL_OR, "LogicalOr");
  179. REGISTER_OPTYPE_DEFINE(EQUAL, "Equal");
  180. REGISTER_OPTYPE_DEFINE(NOTEQUAL, "NotEqual");
  181. REGISTER_OPTYPE_DEFINE(INTERP, "Interp");
  182. REGISTER_OPTYPE_DEFINE(SHUFFLECHANNEL, "ShuffleChannel");
  183. REGISTER_OPTYPE_DEFINE(AIPP, "Aipp");
  184. REGISTER_OPTYPE_DEFINE(MULTISHAPE, "MultiShape");
  185. REGISTER_OPTYPE_DEFINE(RECIPROCAL, "Reciprocal");
  186. REGISTER_OPTYPE_DEFINE(SELU, "Selu");
  187. REGISTER_OPTYPE_DEFINE(ELU, "Elu");
  188. REGISTER_OPTYPE_DEFINE(ACOSH, "Acosh");
  189. REGISTER_OPTYPE_DEFINE(ASINH, "Asinh");
  190. REGISTER_OPTYPE_DEFINE(MINIMUM, "Minimum");
  191. REGISTER_OPTYPE_DEFINE(CLIP, "Clip");
  192. REGISTER_OPTYPE_DEFINE(L2NORMALIZE, "L2Normalize");
  193. REGISTER_OPTYPE_DEFINE(CROPANDRESIZE, "CropAndResize");
  194. REGISTER_OPTYPE_DEFINE(UNUSEDCONST, "UnusedConst");
  195. REGISTER_OPTYPE_DEFINE(SPARSETODENSE, "SparseToDense");
  196. REGISTER_OPTYPE_DEFINE(NONMAXSUPPRESSION, "NonMaxSuppression");
  197. REGISTER_OPTYPE_DEFINE(TOPKV2, "TopKV2");
  198. REGISTER_OPTYPE_DEFINE(INVERTPERMUTATION, "InvertPermutation");
  199. REGISTER_OPTYPE_DEFINE(MULTINOMIAL, "Multinomial");
  200. REGISTER_OPTYPE_DEFINE(REVERSESEQUENCE, "ReverseSequence");
  201. REGISTER_OPTYPE_DEFINE(REDUCEPROD, "ReduceProd");
  202. REGISTER_OPTYPE_DEFINE(REDUCEMAX, "ReduceMax");
  203. REGISTER_OPTYPE_DEFINE(REDUCEMIN, "ReduceMin");
  204. REGISTER_OPTYPE_DEFINE(EXTRACTIMAGEPATCHES, "ExtractImagePatches");
  205. REGISTER_OPTYPE_DEFINE(SQRT, "Sqrt");
  206. REGISTER_OPTYPE_DEFINE(REDUCEALL, "ReduceAll");
  207. REGISTER_OPTYPE_DEFINE(RESIZENEARESTNEIGHBOR, "ResizeNearestNeighbor");
  208. REGISTER_OPTYPE_DEFINE(SPACETOBATCHND, "SpaceToBatchND");
  209. REGISTER_OPTYPE_DEFINE(BATCHTOSPACEND, "BatchToSpaceND");
  210. REGISTER_OPTYPE_DEFINE(ASSERT, "Assert");
  211. REGISTER_OPTYPE_DEFINE(GREATEREQUAL, "GreaterEqual");
  212. REGISTER_OPTYPE_DEFINE(FLOOR, "Floor");
  213. REGISTER_OPTYPE_DEFINE(RANDOMUNIFORM, "RandomUniform");
  214. REGISTER_OPTYPE_DEFINE(BATCHMATMUL, "BatchMatMul");
  215. REGISTER_OPTYPE_DEFINE(SPACETODEPTH, "SpaceToDepth");
  216. REGISTER_OPTYPE_DEFINE(DEPTHTOSPACE, "DepthToSpace");
  217. REGISTER_OPTYPE_DEFINE(RINT, "Rint");
  218. REGISTER_OPTYPE_DEFINE(ATAN, "Atan");
  219. REGISTER_OPTYPE_DEFINE(ATAN2, "Atan2");
  220. REGISTER_OPTYPE_DEFINE(ATANH, "Atanh");
  221. REGISTER_OPTYPE_DEFINE(ACOS, "Acos");
  222. REGISTER_OPTYPE_DEFINE(ASIN, "Asin");
  223. REGISTER_OPTYPE_DEFINE(NEG, "Neg");
  224. REGISTER_OPTYPE_DEFINE(LOG, "Log");
  225. REGISTER_OPTYPE_DEFINE(TAN, "Tan");
  226. REGISTER_OPTYPE_DEFINE(ROUND, "Round");
  227. REGISTER_OPTYPE_DEFINE(UPSAMPLE, "Upsample");
  228. REGISTER_OPTYPE_DEFINE(FLOORMOD, "FloorMod");
  229. REGISTER_OPTYPE_DEFINE(LESS, "Less");
  230. REGISTER_OPTYPE_DEFINE(LESSEQUAL, "LessEqual");
  231. REGISTER_OPTYPE_DEFINE(ONEHOT, "OneHot");
  232. REGISTER_OPTYPE_DEFINE(REFSWITCH, "RefSwitch");
  233. REGISTER_OPTYPE_DEFINE(REFMERGE, "RefMerge");
  234. REGISTER_OPTYPE_DEFINE(ENTER, "Enter");
  235. REGISTER_OPTYPE_DEFINE(REFENTER, "RefEnter");
  236. REGISTER_OPTYPE_DEFINE(LOOPCOND, "LoopCond");
  237. REGISTER_OPTYPE_DEFINE(NEXTITERATION, "NextIteration");
  238. REGISTER_OPTYPE_DEFINE(REFNEXTITERATION, "RefNextIteration");
  239. REGISTER_OPTYPE_DEFINE(EXIT, "Exit");
  240. REGISTER_OPTYPE_DEFINE(REFEXIT, "RefExit");
  241. REGISTER_OPTYPE_DEFINE(CONTROLTRIGGER, "ControlTrigger");
  242. REGISTER_OPTYPE_DEFINE(ZEROSLIKE, "ZerosLike");
  243. REGISTER_OPTYPE_DEFINE(EXP, "Exp");
  244. REGISTER_OPTYPE_DEFINE(WHERE, "Where");
  245. REGISTER_OPTYPE_DEFINE(FAKEQUANTWITHMINMAXVARS, "FakeQuantWithMinMaxVars");
  246. REGISTER_OPTYPE_DEFINE(SOFTPLUS, "Softplus");
  247. REGISTER_OPTYPE_DEFINE(SOFTSIGN, "Softsign");
  248. REGISTER_OPTYPE_DEFINE(COSH, "Cosh");
  249. REGISTER_OPTYPE_DEFINE(SINH, "Sinh");
  250. REGISTER_OPTYPE_DEFINE(SQUAREDDIFFERENCE, "SquaredDifference");
  251. REGISTER_OPTYPE_DEFINE(REQUIREDSPACETOBATCHPADDINGS, "RequiredSpaceToBatchPaddings"); // for retinanet scope fusion
  252. REGISTER_OPTYPE_DEFINE(SSDPOSTPROCESSOR, "SSDPostProcessor");
  253. REGISTER_OPTYPE_DEFINE(RETINANETBOXES, "RetinanetBoxes");
  254. REGISTER_OPTYPE_DEFINE(RETINAMULTIANCHORS, "RetinaMultiAnchor");
  255. REGISTER_OPTYPE_DEFINE(RETINANETCLIPPEDBOXES, "RetinanetClippedBoxes");
  256. REGISTER_OPTYPE_DEFINE(RETINANETFILTEREDDETECTIONS, "RetinanetFilteredDetections");
  257. REGISTER_OPTYPE_DEFINE(RETINANETPOSTPROCESSOR, "RetinanetPostProcessor");
  258. REGISTER_OPTYPE_DEFINE(RETINANETANCHORS, "RetinanetAnchors");
  259. REGISTER_OPTYPE_DEFINE(FASTERRCNNMAP, "FasterRCNNMap");
  260. REGISTER_OPTYPE_DEFINE(FASTERRCNNMAP1, "FasterRCNNMap1");
  261. REGISTER_OPTYPE_DEFINE(FASTERRCNNSECONDSTAGEPOSTPROCESSOR, "FasterRCNNSecondStagePostprocessor");
  262. REGISTER_OPTYPE_DEFINE(FASTERRCNNROIINTERPOOLING, "FasterRCNNROIInterPooling");
  263. REGISTER_OPTYPE_DEFINE(FASTERRCNNFIRSTSTAGEPOSTPROCESSOR, "FasterRCNNFirstStagePostprocessor");
  264. REGISTER_OPTYPE_DEFINE(FASTERRCNNGRIDANCHORGENERATOR, "FasterRCNNGridAnchorGenerator");
  265. REGISTER_OPTYPE_DEFINE(ROIINTERPOOLING, "ROIInterPooling");
  266. REGISTER_OPTYPE_DEFINE(FASTERRCNNCLIPTOWINDOW, "FasterRCNNClipToWindow");
  267. REGISTER_OPTYPE_DEFINE(EMBEDLOOKUP, "EmbedLookup");
  268. REGISTER_OPTYPE_DEFINE(HASHLOOKUP, "HashLookup");
  269. REGISTER_OPTYPE_DEFINE(LSH_PROJ, "LshProject");
  270. REGISTER_OPTYPE_DEFINE(SVDF, "SVDF");
  271. REGISTER_OPTYPE_DEFINE(SSDANCHORGENERATOR, "SSDAnchorGenerator");
  272. REGISTER_OPTYPE_DEFINE(IDENTITY, "Identity");
  273. REGISTER_OPTYPE_DEFINE(IDENTITYN, "IdentityN");
  274. REGISTER_OPTYPE_DEFINE(PLACEHOLDERWITHDEFAULT, "PlaceholderWithDefault");
  275. REGISTER_OPTYPE_DEFINE(SELECT, "Select");
  276. REGISTER_OPTYPE_DEFINE(GETSPAN, "GetSpan");
  277. REGISTER_OPTYPE_DEFINE(STOPGRADIENT, "StopGradient");
  278. REGISTER_OPTYPE_DEFINE(PREVENTGRADIENT, "PreventGradient");
  279. REGISTER_OPTYPE_DEFINE(GUARANTEECONST, "GuaranteeConst");
  280. REGISTER_OPTYPE_DEFINE(BROADCASTGRADIENTARGS, "BroadcastGradientArgs");
  281. REGISTER_OPTYPE_DEFINE(BROADCASTARGS, "BroadcastArgs");
  282. REGISTER_OPTYPE_DEFINE(CONFUSIONMATRIX, "ConfusionMatrix");
  283. REGISTER_OPTYPE_DEFINE(RANK, "Rank");
  284. REGISTER_OPTYPE_DEFINE(PLACEHOLDER, "PlaceHolder");
  285. REGISTER_OPTYPE_DEFINE(END, "End");
  286. REGISTER_OPTYPE_DEFINE(BASICLSTMCELL, "BasicLSTMCell");
  287. REGISTER_OPTYPE_DEFINE(GETNEXT, "GetNext");
  288. REGISTER_OPTYPE_DEFINE(INITDATA, "InitData");
  289. REGISTER_OPTYPE_DEFINE(REFIDENTITY, "RefIdentity");
  290. REGISTER_OPTYPE_DEFINE(BITCAST, "Bitcast");
  291. /***************Ann special operator*************************/
  292. REGISTER_OPTYPE_DEFINE(ANN_MEAN, "AnnMean");
  293. REGISTER_OPTYPE_DEFINE(ANN_CONVOLUTION, "AnnConvolution");
  294. REGISTER_OPTYPE_DEFINE(ANN_DEPCONVOLUTION, "AnnDepthConv");
  295. REGISTER_OPTYPE_DEFINE(ANN_FULLCONNECTION, "AnnFullConnection");
  296. REGISTER_OPTYPE_DEFINE(ANN_NETOUTPUT, "AnnNetOutput");
  297. REGISTER_OPTYPE_DEFINE(ANN_DATA, "AnnData");
  298. REGISTER_OPTYPE_DEFINE(ANN_RESHAPE, "AnnReshape");
  299. REGISTER_OPTYPE_DEFINE(ANN_ADD, "AnnAdd");
  300. REGISTER_OPTYPE_DEFINE(ANN_MUL, "AnnMul");
  301. REGISTER_OPTYPE_DEFINE(ANN_SUB, "AnnSub");
  302. REGISTER_OPTYPE_DEFINE(ANN_DIV, "AnnDiv");
  303. REGISTER_OPTYPE_DEFINE(ANN_DEQUANTIZE, "AnnDequant");
  304. REGISTER_OPTYPE_DEFINE(ANN_QUANTIZE, "AnnQuant");
  305. REGISTER_OPTYPE_DEFINE(ANN_PAD, "AnnPad");
  306. REGISTER_OPTYPE_DEFINE(ANN_RESIZE_BILINEAR, "AnnResizeBilinear");
  307. /***************************************************/
  308. /******************Training operator*************************/
  309. REGISTER_OPTYPE_DEFINE(GATHERV2, "GatherV2");
  310. REGISTER_OPTYPE_DEFINE(CONVGRADFILTER, "Conv2DBackpropFilter");
  311. REGISTER_OPTYPE_DEFINE(CONV2D, "Conv2D");
  312. REGISTER_OPTYPE_DEFINE(CONV2DBACKPROPINPUT, "Conv2DBackpropInput");
  313. REGISTER_OPTYPE_DEFINE(FUSEDBATCHNORM, "FusedBatchNorm");
  314. REGISTER_OPTYPE_DEFINE(BIASADDGRAD, "BiasAddGrad");
  315. REGISTER_OPTYPE_DEFINE(ACTIVATIONGRAD, "ReluGrad");
  316. REGISTER_OPTYPE_DEFINE(MAXPOOLWITHARGMAX, "MaxPoolWithArgmax");
  317. REGISTER_OPTYPE_DEFINE(MAXPOOLGRADWITHARGMAX, "MaxPoolGradWithArgmax");
  318. REGISTER_OPTYPE_DEFINE(SPARSESOFTMAXCROSSENTROPYWITHLOGITS, "SparseSoftmaxCrossEntropyWithLogits");
  319. REGISTER_OPTYPE_DEFINE(SNAPSHOT, "Snapshot");
  320. REGISTER_OPTYPE_DEFINE(VAR, "Var");
  321. REGISTER_OPTYPE_DEFINE(MEANGRAD, "MeanGrad");
  322. REGISTER_OPTYPE_DEFINE(TRANSLATE, "Translate");
  323. REGISTER_OPTYPE_DEFINE(ADDN, "AddN");
  324. REGISTER_OPTYPE_DEFINE(L2LOSS, "L2Loss");
  325. REGISTER_OPTYPE_DEFINE(MULTIPLY, "Multiply");
  326. REGISTER_OPTYPE_DEFINE(HUBERLOSSGRAD, "HuberLossGrad");
  327. REGISTER_OPTYPE_DEFINE(HUBERLOSS, "HuberLoss");
  328. REGISTER_OPTYPE_DEFINE(NEGATIVE, "Negative");
  329. REGISTER_OPTYPE_DEFINE(SSDCAST, "SSDCast");
  330. REGISTER_OPTYPE_DEFINE(SPARSESOFTMAXCROSSENTROPY, "SsdSparseSoftmaxCrossEntropy");
  331. REGISTER_OPTYPE_DEFINE(SPARSESOFTMAXCROSSENTROPYGRAD, "SsdSparseSoftmaxCrossEntropyGrad");
  332. REGISTER_OPTYPE_DEFINE(SSDSQUEEZEFUSION, "SsdSqueezeFusion");
  333. REGISTER_OPTYPE_DEFINE(CONCATFOUR2FIVE, "ConcatFour2Five");
  334. REGISTER_OPTYPE_DEFINE(CONCATFIVE2FOUR, "ConcatFive2Four");
  335. REGISTER_OPTYPE_DEFINE(SSDREALDIVTILEMUL, "SSDRealdivTileMul");
  336. REGISTER_OPTYPE_DEFINE(SSDSUMMULREALDIVMEAN, "SSDSumMulRealdivMean");
  337. REGISTER_OPTYPE_DEFINE(VARIABLEV2, "VariableV2");
  338. REGISTER_OPTYPE_DEFINE(VARHANDLEOP, "VarHandleOp");
  339. REGISTER_OPTYPE_DEFINE(TEMPORARYVARIABLE, "TemporaryVariable");
  340. REGISTER_OPTYPE_DEFINE(DESTROYTEMPORARYVARIABLE, "DestroyTemporaryVariable");
  341. REGISTER_OPTYPE_DEFINE(VARIABLE, "Variable");
  342. REGISTER_OPTYPE_DEFINE(ASSIGN, "Assign");
  343. REGISTER_OPTYPE_DEFINE(ASSIGNVARIABLEOP, "AssignVariableOp");
  344. REGISTER_OPTYPE_DEFINE(ASSIGNADD, "AssignAdd");
  345. REGISTER_OPTYPE_DEFINE(ASSIGNADDVARIABLEOP, "AssignAddVariableOp");
  346. REGISTER_OPTYPE_DEFINE(ASSIGNSUB, "AssignSub");
  347. REGISTER_OPTYPE_DEFINE(ASSIGNSUBVARIABLEOP, "AssignSubVariableOp");
  348. REGISTER_OPTYPE_DEFINE(APPLYMOMENTUM, "ApplyMomentum");
  349. REGISTER_OPTYPE_DEFINE(RESOURCEAPPLYMOMENTUM, "ResourceApplyMomentum");
  350. REGISTER_OPTYPE_DEFINE(SGD, "SGD");
  351. REGISTER_OPTYPE_DEFINE(NOOP, "NoOp");
  352. REGISTER_OPTYPE_DEFINE(READVARIABLEOP, "ReadVariableOp");
  353. REGISTER_OPTYPE_DEFINE(PARALLELCONCATSTART, "_ParallelConcatStart");
  354. REGISTER_OPTYPE_DEFINE(CONSTANTOP, "Constant");
  355. REGISTER_OPTYPE_DEFINE(DEPTHWISECONV2DBACKPROPFILTER, "DepthwiseConv2dNativeBackpropFilter");
  356. REGISTER_OPTYPE_DEFINE(DEPTHWISECONV2DBACKPORPINPUT, "DepthwiseConv2dNativeBackpropInput");
  357. REGISTER_OPTYPE_DEFINE(DEPTHWISECONV2DFORWARDNATIVE, "DepthwiseConv2dNative");
  358. REGISTER_OPTYPE_DEFINE(DROPOUTGRAD, "DropOutGrad");
  359. REGISTER_OPTYPE_DEFINE(APPLYRMSPROPMIXEDPRECISION, "apply_rms_prop_mixed_precision");
  360. REGISTER_OPTYPE_DEFINE(APPLYRMSPROP, "ApplyRMSProp");
  361. REGISTER_OPTYPE_DEFINE(RELU6GRAD, "Relu6Grad");
  362. REGISTER_OPTYPE_DEFINE(AVGPOOLGRAD, "AvgPoolGrad");
  363. REGISTER_OPTYPE_DEFINE(CONCATV2, "ConcatV2");
  364. REGISTER_OPTYPE_DEFINE(CONCATOFFSET, "ConcatOffset");
  365. REGISTER_OPTYPE_DEFINE(LAYERNORMGRAD, "LayerNormGrad");
  366. REGISTER_OPTYPE_DEFINE(LAYERNORM, "LayerNorm");
  367. REGISTER_OPTYPE_DEFINE(LARS, "Lars");
  368. REGISTER_OPTYPE_DEFINE(DYNAMICSTITCH, "DynamicStitch");
  369. /***************************************************/
  370. REGISTER_OPTYPE_DEFINE(SQUARE, "Square");
  371. REGISTER_OPTYPE_DEFINE(HCOMBROADCAST, "HcomBroadcast");
  372. REGISTER_OPTYPE_DEFINE(HCOMALLGATHER, "HcomAllGather");
  373. REGISTER_OPTYPE_DEFINE(HCOMALLREDUCE, "HcomAllReduce");
  374. REGISTER_OPTYPE_DEFINE(HCOMREDUCESCATTER, "HcomReduceScatter");
  375. REGISTER_OPTYPE_DEFINE(HCOMREDUCE, "HcomReduce");
  376. REGISTER_OPTYPE_DEFINE(HCOMSEND, "HcomSend");
  377. REGISTER_OPTYPE_DEFINE(HCOMRECEIVE, "HcomReceive");
  378. REGISTER_OPTYPE_DEFINE(HCOMREMOTEREAD, "HcomRemoteRead");
  379. REGISTER_OPTYPE_DEFINE(HCOMREMOTEREFREAD, "HcomRemoteRefRead");
  380. REGISTER_OPTYPE_DEFINE(HCOMREMOTEWRITE, "HcomRemoteWrite");
  381. REGISTER_OPTYPE_DEFINE(VARASSIGN, "VarAssign");
  382. REGISTER_OPTYPE_DEFINE(VARISINITIALIZEDOP, "VarIsInitializedOp");
  383. REGISTER_OPTYPE_DEFINE(LogTimeStamp, "LogTimeStamp");
  384. REGISTER_OPTYPE_DEFINE(ISVARIABLEINITIALIZED, "IsVariableInitialized");
  385. REGISTER_OPTYPE_DEFINE(STREAMSWITCH, "StreamSwitch");
  386. REGISTER_OPTYPE_DEFINE(STREAMSWITCHN, "StreamSwitchN");
  387. REGISTER_OPTYPE_DEFINE(STREAMACTIVE, "StreamActive");
  388. REGISTER_OPTYPE_DEFINE(MEMCPYASYNC, "MemcpyAsync");
  389. REGISTER_OPTYPE_DEFINE(MEMCPYADDRASYNC, "MemcpyAddrAsync");
  390. REGISTER_OPTYPE_DEFINE(STREAMMERGE, "StreamMerge");
  391. REGISTER_OPTYPE_DEFINE(ENDGRAPH, "EndGraph");
  392. REGISTER_OPTYPE_DEFINE(MODELEXIT, "ModelExit");
  393. REGISTER_OPTYPE_DEFINE(SEND, "Send");
  394. REGISTER_OPTYPE_DEFINE(RECV, "Recv");
  395. REGISTER_OPTYPE_DEFINE(ENDOFSEQUENCE, "EndOfSequence");
  396. REGISTER_OPTYPE_DEFINE(LABELSET, "LabelSet");
  397. REGISTER_OPTYPE_DEFINE(LABELGOTO, "LabelGoto");
  398. REGISTER_OPTYPE_DEFINE(LABELGOTOEX, "LabelGotoEx");
  399. REGISTER_OPTYPE_DEFINE(LABELSWITCH, "LabelSwitch");
  400. REGISTER_OPTYPE_DEFINE(LABELSWITCHBYINDEX, "LabelSwitchByIndex");
  401. REGISTER_OPTYPE_DEFINE(ATOMICADDRCLEAN, "AtomicAddrClean");
  402. REGISTER_OPTYPE_DEFINE(ABS_GRAD, "AbsGrad");
  403. REGISTER_OPTYPE_DEFINE(ACCUMULATE_N_V2, "AccumulateNV2");
  404. REGISTER_OPTYPE_DEFINE(ACOS_GRAD, "AcosGrad");
  405. REGISTER_OPTYPE_DEFINE(ACOSH_GRAD, "AcoshGrad");
  406. REGISTER_OPTYPE_DEFINE(ANY, "Any");
  407. REGISTER_OPTYPE_DEFINE(APPROXIMATE_EQUAL, "ApproximateEqual");
  408. REGISTER_OPTYPE_DEFINE(ASIN_GRAD, "AsinGrad");
  409. REGISTER_OPTYPE_DEFINE(ASINH_GRAD, "AsinhGrad");
  410. REGISTER_OPTYPE_DEFINE(ATAN_GRAD, "AtanGrad");
  411. REGISTER_OPTYPE_DEFINE(BROADCAST_TO, "BroadcastTo");
  412. REGISTER_OPTYPE_DEFINE(ELU_GRAD, "EluGrad");
  413. REGISTER_OPTYPE_DEFINE(ADD_V2, "AddV2");
  414. REGISTER_OPTYPE_DEFINE(DATAFORMATDIMMAP, "DataFormatDimMap");
  415. REGISTER_OPTYPE_DEFINE(DATAFORMATVECPERMUTE, "DataFormatVecPermute");
  416. REGISTER_OPTYPE_DEFINE(BESSELI0E, "BesselI0e");
  417. REGISTER_OPTYPE_DEFINE(BESSELI1E, "BesselI1e");
  418. REGISTER_OPTYPE_DEFINE(APPLYADADELTA, "ApplyAdadelta");
  419. REGISTER_OPTYPE_DEFINE(APPLYADAGRAD, "ApplyAdagrad");
  420. REGISTER_OPTYPE_DEFINE(APPLYADAGRADDA, "ApplyAdagradDA");
  421. REGISTER_OPTYPE_DEFINE(APPLYADAM, "ApplyAdam");
  422. REGISTER_OPTYPE_DEFINE(APPLYADAMAX, "ApplyAdaMax");
  423. REGISTER_OPTYPE_DEFINE(APPLYADDSIGN, "ApplyAddSign");
  424. REGISTER_OPTYPE_DEFINE(APPLYCENTEREDRMSPROP, "ApplyCenteredRMSProp");
  425. REGISTER_OPTYPE_DEFINE(APPLYFTRL, "ApplyFtrl");
  426. REGISTER_OPTYPE_DEFINE(APPLYFTRLV2, "ApplyFtrlV2");
  427. REGISTER_OPTYPE_DEFINE(APPLYGRADIENTDESCENT, "ApplyGradientDescent");
  428. REGISTER_OPTYPE_DEFINE(APPLYPOWERSIGN, "ApplyPowerSign");
  429. REGISTER_OPTYPE_DEFINE(APPLYPROXIMALADAGRAD, "ApplyProximalAdagrad");
  430. REGISTER_OPTYPE_DEFINE(APPLYPROXIMALGRADIENTDESCENT, "ApplyProximalGradientDescent");
  431. REGISTER_OPTYPE_DEFINE(DEQUANTIZE, "Dequantize");
  432. REGISTER_OPTYPE_DEFINE(FOCAL_LOSS, "FocalLoss");
  433. REGISTER_OPTYPE_DEFINE(FOCAL_LOSS_GRAD, "FocalLossGrad");
  434. REGISTER_OPTYPE_DEFINE(SMOOTHL1_LOSS, "SmoothL1Loss");
  435. REGISTER_OPTYPE_DEFINE(SMOOTHL1_LOSS_grad, "SmoothL1LossGrad");
  436. REGISTER_OPTYPE_DEFINE(REDUCEMEAN, "ReduceMean");
  437. REGISTER_OPTYPE_DEFINE(CONCAT_V2, "ConcatV2");
  438. REGISTER_OPTYPE_DEFINE(ONEHOT_V2, "OneHotV2");
  439. REGISTER_OPTYPE_DEFINE(SLICE_V2, "SliceV2");
  440. REGISTER_OPTYPE_DEFINE(TILE_V2, "TileV2");
  441. REGISTER_OPTYPE_DEFINE(SUM_V2, "SumV2");
  442. // Common type when the operator has the same name
  443. REGISTER_OPTYPE_DEFINE(DETECTIONOUTPUT, "DetectionOutput");
  444. // Custom operator
  445. REGISTER_OPTYPE_DEFINE(CUSTOMOP, "CustomOp");
  446. REGISTER_OPTYPE_DEFINE(CUSTOMOP_NCHW, "CustomOpNchw");
  447. REGISTER_OPTYPE_DEFINE(CUSTOMOP_NHWC, "CustomOpNhwc");
  448. REGISTER_OPTYPE_DEFINE(CUSTOMOP_NC1HWC0, "CustomOpNc1hwc0");
  449. // Depthwise 4d_2_6d,6d_2_4d
  450. REGISTER_OPTYPE_DEFINE(DEPTHWISEWEIGHT4D26D, "depthwise_weight_4d_2_6d");
  451. REGISTER_OPTYPE_DEFINE(DEPTHWISEWEIGHT6D24D, "depthwise_weight_6d_2_4d");
  452. REGISTER_OPTYPE_DEFINE(SQRTGRAD, "SqrtGrad");
  453. REGISTER_OPTYPE_DEFINE(SIGMOIDGRAD, "SigmoidGrad");
  454. REGISTER_OPTYPE_DEFINE(TRANSSHAPE, "TransShape");
  455. // Horovod operator
  456. REGISTER_OPTYPE_DEFINE(HVDCALLBACKALLREDUCE, "HorovodAllreduce");
  457. REGISTER_OPTYPE_DEFINE(HVDCALLBACKALLGATHER, "HorovodAllgather");
  458. REGISTER_OPTYPE_DEFINE(HVDCALLBACKBROADCAST, "HorovodBroadcast");
  459. REGISTER_OPTYPE_DEFINE(HVDWAIT, "HorovodWait");
  460. // aicpu op for online_infer dynamic_dims
  461. REGISTER_OPTYPE_DEFINE(GETDYNAMICDIMS, "GetDynamicDims");
  462. const std::string MODEL_ATTR_TASKS = "tasks";
  463. const std::string MODEL_ATTR_TASK_GEN_BASE_ADDR = "task_gen_base_addr";
  464. const std::string MODEL_ATTR_TASK_GEN_WEIGHT_ADDR = "task_gen_weight_addr";
  465. const std::string MODEL_ATTR_FUSION_MODEL_DEF = "fm";
  466. const int MODEL_MAX_SIZE = INT32_MAX; // Max size of 2 GB minus 1 byte.
  467. const uint64_t FILE_HEADER_MAX_SIZE = 3221225472; // Max size of 3 GB.
  468. #if !defined(__ANDROID__) && !defined(ANDROID)
  469. const uint64_t ALLOC_MEMORY_MAX_SIZE = 8589934592; // Max size of 8 GB.
  470. #else
  471. const uint64_t ALLOC_MEMORY_MAX_SIZE = 536870912; // Max size of 512M.
  472. #endif
  473. ///
  474. /// @brief Magic number of model file
  475. ///
  476. const uint32_t MODEL_FILE_MAGIC_NUM = 0x444F4D49; // magic number
  477. ///
  478. /// @brief Model head length
  479. ///
  480. const uint32_t MODEL_FILE_HEAD_LEN = 256;
  481. ///
  482. /// @ingroup domi_omg
  483. /// @brief Input node type
  484. ///
  485. const std::string INPUT_TYPE = "Input";
  486. const std::string DUMMY_DATA = "DummyData";
  487. ///
  488. /// @ingroup domi_omg
  489. /// @brief AIPP label, label AIPP conv operator
  490. ///
  491. const std::string AIPP_CONV_FLAG = "Aipp_Conv_Flag";
  492. ///
  493. /// @ingroup domi_omg
  494. /// @brief AIPP label, label aipp data operator
  495. ///
  496. const std::string AIPP_DATA_FLAG = "Aipp_Data_Flag";
  497. ///
  498. /// @ingroup domi_omg
  499. /// @brief Record the w dimension of model input corresponding to dynamic AIPP
  500. ///
  501. const std::string AIPP_RELATED_DATA_DIM_W = "aipp_related_data_dim_w";
  502. ///
  503. /// @ingroup domi_omg
  504. /// @brief Record the H dimension of model input corresponding to dynamic AIPP
  505. ///
  506. const std::string AIPP_RELATED_DATA_DIM_H = "aipp_related_data_dim_h";
  507. ///
  508. /// @ingroup domi_omg
  509. /// @brief The tag of the data operator. Mark this input to the dynamic AIPP operator
  510. ///
  511. const std::string INPUT_TO_DYNAMIC_AIPP = "input_to_dynamic_aipp";
  512. ///
  513. /// @ingroup domi_omg
  514. /// @brief DATA node type
  515. ///
  516. const std::string DATA_TYPE = "Data";
  517. ///
  518. /// @ingroup domi_omg
  519. /// @brief DATA node type
  520. ///
  521. const std::string AIPP_DATA_TYPE = "AippData";
  522. ///
  523. /// @ingroup domi_omg
  524. /// @brief Frame operator type
  525. ///
  526. const std::string FRAMEWORK_OP_TYPE = "FrameworkOp";
  527. ///
  528. /// @ingroup domi_omg
  529. /// @brief Data node type
  530. ///
  531. const std::string ANN_DATA_TYPE = "AnnData";
  532. const std::string ANN_NETOUTPUT_TYPE = "AnnNetOutput";
  533. const std::string ANN_DEPTHCONV_TYPE = "AnnDepthConv";
  534. const std::string ANN_CONV_TYPE = "AnnConvolution";
  535. const std::string ANN_FC_TYPE = "AnnFullConnection";
  536. ///
  537. /// @ingroup domi_omg
  538. /// @brief Convolution node type
  539. ///
  540. const std::string NODE_NAME_NET_OUTPUT = "Node_Output";
  541. const std::string NODE_NAME_END_GRAPH = "Node_EndGraph";
  542. const std::string NODE_NAME_OP_DEBUG = "Node_OpDebug";
  543. const std::string OP_TYPE_OP_DEBUG = "Opdebug";
  544. ///
  545. /// @ingroup domi_omg
  546. /// @brief Convolution node type
  547. ///
  548. const std::string OP_TYPE_CONVOLUTION = "Convolution";
  549. ///
  550. /// @ingroup domi_omg
  551. /// @brief Add convolution node name to AIPP
  552. ///
  553. const std::string AIPP_CONV_OP_NAME = "aipp_conv_op";
  554. ///
  555. /// @ingroup domi_omg
  556. /// @brief Operator configuration item separator
  557. ///
  558. const std::string OP_CONF_DELIMITER = ":";
  559. ///
  560. /// @ingroup domi_omg
  561. /// @brief attr value name
  562. ///
  563. const std::string ATTR_NAME_VALUE1 = "value1";
  564. ///
  565. /// @ingroup domi_omg
  566. /// @brief attr value name, 6d_2_4d C
  567. ///
  568. const std::string ATTR_NAME_INPUT_CVALUE = "input_cvalue";
  569. ///
  570. /// @ingroup domi_omg
  571. /// @brief alpha default value
  572. ///
  573. const float ALPHA_DEFAULT_VALUE = 1.0;
  574. ///
  575. /// @ingroup domi_omg
  576. /// @brief beta default value
  577. ///
  578. const float BETA_DEFAULT_VALUE = 0.0;
  579. ///
  580. /// @ingroup domi_omg
  581. /// @brief coef default value
  582. ///
  583. const float COEF_DEFAULT_VALUE = 0.0;
  584. ///
  585. /// @ingroup domi_omg
  586. /// @brief Relu6 coef value
  587. ///
  588. const float RELU6_COEF = 6.0;
  589. ///
  590. /// @ingroup domi_omg
  591. /// @brief stride default value
  592. ///
  593. const uint32_t STRIDE_DEFAULT_VALUE = 1;
  594. ///
  595. /// @ingroup domi_omg
  596. /// @brief pad default value
  597. ///
  598. const uint32_t PAD_DEFAULT_VALUE = 0;
  599. ///
  600. /// @ingroup domi_omg
  601. /// @brief dilation default value
  602. ///
  603. const int DILATION_DEFAULT_VALUE = 1;
  604. ///
  605. /// @ingroup domi_omg
  606. /// @brief kernel default value
  607. ///
  608. const uint32_t KERNEL_DEFAULT_VALUE = 0;
  609. ///
  610. /// @ingroup domi_omg
  611. /// @brief defaule convolution group size
  612. ///
  613. const uint32_t DEFAULT_CONV_GROUP = 1;
  614. ///
  615. /// @ingroup domi_omg
  616. /// @brief Default deconvolution adj
  617. ///
  618. const uint32_t DEFAULT_DECONV_ADJ = 0;
  619. ///
  620. /// @ingroup domi_omg
  621. /// @brief Represents value 1
  622. ///
  623. const uint32_t NUM_ONE = 1;
  624. ///
  625. /// @ingroup domi_omg
  626. /// @brief spatial dim size default value
  627. ///
  628. const int32_t SPATIAL_DIM_DEFAULT_SIZE = 2;
  629. ///
  630. /// @ingroup domi_omg
  631. /// @brief dim extended default value
  632. ///
  633. const int32_t DIM_DEFAULT_VALUE = 1;
  634. ///
  635. /// @ingroup domi_omg
  636. /// @brief The first weight list in opdef is filter
  637. ///
  638. const int32_t WEIGHT_FILTER_INDEX = 0;
  639. ///
  640. /// @ingroup domi_omg
  641. /// @brief The second weight list in opdef is bias
  642. ///
  643. const int32_t WEIGHT_BIAS_INDEX = 1;
  644. const int32_t TENSOR_ND_SUPPORT_SIZE = 8;
  645. ///
  646. /// @ingroup domi_omg
  647. /// @brief NCHW index default value
  648. ///
  649. const uint32_t NCHW_DIM_N = 0;
  650. const uint32_t NCHW_DIM_C = 1;
  651. const uint32_t NCHW_DIM_H = 2;
  652. const uint32_t NCHW_DIM_W = 3;
  653. ///
  654. /// @ingroup domi_omg
  655. /// @brief KCHW index default value
  656. ///
  657. const uint32_t KCHW_DIM_K = 0;
  658. const uint32_t KCHW_DIM_C = 1;
  659. const uint32_t KCHW_DIM_H = 2;
  660. const uint32_t KCHW_DIM_W = 3;
  661. ///
  662. /// @ingroup domi_omg
  663. /// @brief HWCK index default value
  664. ///
  665. const uint32_t HWCK_DIM_H = 0;
  666. const uint32_t HWCK_DIM_W = 1;
  667. const uint32_t HWCK_DIM_C = 2;
  668. const uint32_t HWCK_DIM_K = 3;
  669. ///
  670. /// @ingroup domi_omg
  671. /// @brief NHWC index default value
  672. ///
  673. const uint32_t NHWC_DIM_N = 0;
  674. const uint32_t NHWC_DIM_H = 1;
  675. const uint32_t NHWC_DIM_W = 2;
  676. const uint32_t NHWC_DIM_C = 3;
  677. ///
  678. /// @ingroup domi_omg
  679. /// @brief CHWN index default value
  680. ///
  681. const uint32_t CHWN_DIM_N = 3;
  682. const uint32_t CHWN_DIM_C = 0;
  683. const uint32_t CHWN_DIM_H = 1;
  684. const uint32_t CHWN_DIM_W = 2;
  685. ///
  686. /// @ingroup domi_omg
  687. /// @brief CHW index default value
  688. ///
  689. const uint32_t CHW_DIM_C = 0;
  690. const uint32_t CHW_DIM_H = 1;
  691. const uint32_t CHW_DIM_W = 2;
  692. ///
  693. /// @ingroup domi_omg
  694. /// @brief HWC index default value
  695. ///
  696. const uint32_t HWC_DIM_H = 0;
  697. const uint32_t HWC_DIM_W = 1;
  698. const uint32_t HWC_DIM_C = 2;
  699. ///
  700. /// @ingroup domi_omg
  701. /// @brief Pad index default value
  702. ///
  703. const uint32_t PAD_H_HEAD = 0;
  704. const uint32_t PAD_H_TAIL = 1;
  705. const uint32_t PAD_W_HEAD = 2;
  706. const uint32_t PAD_W_TAIL = 3;
  707. ///
  708. /// @ingroup domi_omg
  709. /// @brief window index default value
  710. ///
  711. const uint32_t WINDOW_H = 0;
  712. const uint32_t WINDOW_W = 1;
  713. ///
  714. /// @ingroup domi_omg
  715. /// @brief stride index default value
  716. ///
  717. const uint32_t STRIDE_H = 0;
  718. const uint32_t STRIDE_W = 1;
  719. ///
  720. /// @ingroup domi_omg
  721. /// @brief dilation index default value
  722. ///
  723. const uint32_t DILATION_H = 0;
  724. const uint32_t DILATION_W = 1;
  725. ///
  726. /// @ingroup domi_omg
  727. /// @brief the num of XRBG channel
  728. ///
  729. const uint32_t XRGB_CHN_NUM = 4;
  730. ///
  731. /// @ingroup domi_omg
  732. /// @brief global pooling default value
  733. ///
  734. const bool DEFAULT_GLOBAL_POOLING = false;
  735. const uint32_t MODEL_VERSION = 0x20000000; ///< Model version 2.0///
  736. // Eltwise's input size
  737. const int ELTWISE_MIN_INPUT_SIZE = 2;
  738. // flowctrl
  739. const std::string NODE_NAME_STREAM_SWITCH = "IteratorCtrl_StreamSwitch";
  740. const std::string NODE_NAME_STREAM_ACTIVE = "IteratorCtrl_StreamActive";
  741. const std::string NODE_NAME_FLOWCTRL_LOOP_PER_ITER = "npu_runconfig/iterations_per_loop";
  742. const std::string NODE_NAME_FLOWCTRL_LOOP_COND = "npu_runconfig/loop_cond";
  743. const std::string NODE_NAME_FLOWCTRL_LOOP_INCREMENT = "npu_runconfig/one";
  744. const std::string NODE_NAME_FLOWCTRL_LOOP_RESETVALUE = "npu_runconfig/zero";
  745. const std::string NODE_NAME_FLOWCTRL_LOOP_ASSIGNADD = "FlowCtrl_LoopCond_ASSIGNADD";
  746. const std::string NODE_NAME_FLOWCTRL_LOOP_ASSIGN = "FlowCtrl_LoopCond_ASSIGN";
  747. const std::string NODE_NAME_ATOMIC_ADDR_CLEAN = "atomic_addr_clean";
  748. const uint32_t TRUE_STREAM_ID = 0;
  749. const uint32_t STREAM_SWITCH_INPUT_NUM = 2;
  750. const std::string NODE_NAME_GLOBAL_STEP = "ge_global_step";
  751. const std::string NODE_NAME_GLOBAL_STEP_ASSIGNADD = "global_step_assignadd";
  752. } // namespace ge

图引擎模块(GE)是MindSpore的一个子模块,其代码由C++实现,位于前端模块ME和底层硬件之间,起到承接作用。图引擎模块以ME下发的图作为输入,然后进行一系列的深度图优化操作,最后输出一张可以在底层硬件上高效运行的图。GE针对昇腾AI处理器的硬件结构特点,做了特定的优化工作,以此来充分发挥出昇腾AI处理器的强大算力。在进行模型训练/推理时,GE会被自动调用而用户并不感知。GE主要由GE API和GE Core两部分组成,详细的架构图如下所示