1 /** 2 * Copyright 2019-2023 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 17 #ifndef MINDSPORE_CORE_BASE_OTHER_OPS_H_ 18 #define MINDSPORE_CORE_BASE_OTHER_OPS_H_ 19 20 #include <memory> 21 #include "ir/anf.h" 22 #include "ir/primitive.h" 23 #include "ops/other_op_name.h" 24 #include "utils/hash_map.h" 25 26 namespace mindspore { 27 namespace prim { 28 GVAR_DEF(PrimitivePtr, kPrimInnerAbs, std::make_shared<Primitive>(kInnerAbsOpName)); 29 GVAR_DEF(PrimitivePtr, kPrimInnerRound, std::make_shared<Primitive>("inner_round")); 30 GVAR_DEF(PrimitivePtr, kPrimDynamicLossScale, std::make_shared<Primitive>("_DynamicLossScale")); 31 GVAR_DEF(PrimitivePtr, kPrimScaleGrad, std::make_shared<Primitive>("ScaleGrad")); 32 GVAR_DEF(PrimitivePtr, kPrimPopulationCount, std::make_shared<Primitive>("PopulationCount")); 33 GVAR_DEF(PrimitivePtr, kPrimOpaquePredicate, std::make_shared<Primitive>("OpaquePredicate")); 34 35 // spectral 36 GVAR_DEF(PrimitivePtr, kPrimBartlettWindow, std::make_shared<Primitive>(kBartlettWindowOpName)); 37 GVAR_DEF(PrimitivePtr, kPrimBlackmanWindow, std::make_shared<Primitive>("BlackmanWindow")); 38 GVAR_DEF(PrimitivePtr, kPrimHammingWindow, std::make_shared<Primitive>("HammingWindow")); 39 40 // Label 41 GVAR_DEF(PrimitivePtr, kPrimLabelGoto, std::make_shared<Primitive>("LabelGoto")); 42 GVAR_DEF(PrimitivePtr, kPrimLabelSwitch, std::make_shared<Primitive>("LabelSwitch")); 43 GVAR_DEF(PrimitivePtr, kPrimLabelSet, std::make_shared<Primitive>("LabelSet")); 44 45 // Comm ops 46 GVAR_DEF(PrimitivePtr, kPrimMirror, std::make_shared<Primitive>("_MirrorOperator")); 47 GVAR_DEF(PrimitivePtr, kPrimMirrorSilentCheck, std::make_shared<Primitive>("_MirrorSilentCheck")); 48 GVAR_DEF(PrimitivePtr, kPrimMirrorMiniStep, std::make_shared<Primitive>("_MirrorMiniStepOperator")); 49 GVAR_DEF(PrimitivePtr, kPrimMiniStepAllGather, std::make_shared<Primitive>("_MiniStepAllGather")); 50 GVAR_DEF(PrimitivePtr, kPrimMicroStepAllGather, std::make_shared<Primitive>("_MicroStepAllGather")); 51 GVAR_DEF(PrimitivePtr, kPrimVirtualDiv, std::make_shared<Primitive>("_VirtualDiv")); 52 GVAR_DEF(PrimitivePtr, kPrimVirtualAdd, std::make_shared<Primitive>("_VirtualAdd")); 53 GVAR_DEF(PrimitivePtr, kPrimVirtualDataset, std::make_shared<Primitive>("_VirtualDataset")); 54 GVAR_DEF(PrimitivePtr, kPrimVirtualOutput, std::make_shared<Primitive>("_VirtualOutput")); 55 GVAR_DEF(PrimitivePtr, kPrimAShardIdentity, std::make_shared<Primitive>("AShardIdentity")); 56 GVAR_DEF(PrimitivePtr, kPrimAllReduce, std::make_shared<Primitive>("AllReduce")); 57 GVAR_DEF(PrimitivePtr, kPrimReduce, std::make_shared<Primitive>("Reduce")); 58 GVAR_DEF(PrimitivePtr, kPrimCollectiveScatter, std::make_shared<Primitive>("CollectiveScatter")); 59 GVAR_DEF(PrimitivePtr, kPrimCollectiveGather, std::make_shared<Primitive>("CollectiveGather")); 60 GVAR_DEF(PrimitivePtr, kPrimNeighborExchange, std::make_shared<Primitive>("NeighborExchange")); 61 GVAR_DEF(PrimitivePtr, kPrimNeighborExchangeV2, std::make_shared<Primitive>("NeighborExchangeV2")); 62 GVAR_DEF(PrimitivePtr, kPrimNeighborExchangeV2Grad, std::make_shared<Primitive>("NeighborExchangeV2Grad")); 63 GVAR_DEF(PrimitivePtr, kPrimAlltoAll, std::make_shared<Primitive>("AlltoAll")); 64 GVAR_DEF(PrimitivePtr, kPrimAllToAll, std::make_shared<Primitive>("AllToAll")); 65 GVAR_DEF(PrimitivePtr, kPrimAllToAllv, std::make_shared<Primitive>("AllToAllv")); 66 GVAR_DEF(PrimitivePtr, kPrimAllGather, std::make_shared<Primitive>("AllGather")); 67 GVAR_DEF(PrimitivePtr, kPrimAllSwap, std::make_shared<Primitive>("_AllSwap")); 68 GVAR_DEF(PrimitivePtr, kPrimReduceScatter, std::make_shared<Primitive>("ReduceScatter")); 69 GVAR_DEF(PrimitivePtr, kPrimBarrier, std::make_shared<Primitive>("Barrier")); 70 GVAR_DEF(PrimitivePtr, kPrimBatchISendIRecv, std::make_shared<Primitive>("BatchISendIRecv")); 71 GVAR_DEF(PrimitivePtr, kPrimFusedPushWeight, std::make_shared<Primitive>("FusedPushWeight")); 72 GVAR_DEF(PrimitivePtr, kPrimFusedPullWeight, std::make_shared<Primitive>("FusedPullWeight")); 73 GVAR_DEF(PrimitivePtr, kPrimInitDataSetQueue, std::make_shared<Primitive>("InitDataSetQueue")); 74 GVAR_DEF(PrimitivePtr, kPrimQueueData, std::make_shared<Primitive>("QueueData")); 75 GVAR_DEF(PrimitivePtr, kPrimVirtualAssignAdd, std::make_shared<Primitive>("_VirtualAssignAdd")); 76 GVAR_DEF(PrimitivePtr, kPrimVirtualAccuGrad, std::make_shared<Primitive>("_VirtualAccuGrad")); 77 GVAR_DEF(PrimitivePtr, kPrimVirtualPipelineEnd, std::make_shared<Primitive>("_VirtualPipelineEnd")); 78 GVAR_DEF(PrimitivePtr, kPrimMirrorMicroStep, std::make_shared<Primitive>("_MirrorMicroStepOperator")); 79 GVAR_DEF(PrimitivePtr, kPrimVirtualConverterBegin, std::make_shared<Primitive>("_VirtualConverterBegin")); 80 GVAR_DEF(PrimitivePtr, kPrimVirtualConverterEnd, std::make_shared<Primitive>("_VirtualConverterEnd")); 81 GVAR_DEF(PrimitivePtr, kPrimAlltoAllV, std::make_shared<Primitive>("AlltoAllV")); 82 83 // Quant ops 84 GVAR_DEF(PrimitivePtr, kPrimBatchNormFold, std::make_shared<Primitive>("BatchNormFold")); 85 GVAR_DEF(PrimitivePtr, kPrimFakeQuantWithMinMaxVarsPerChannel, 86 std::make_shared<Primitive>("FakeQuantWithMinMaxVarsPerChannel")); 87 GVAR_DEF(PrimitivePtr, kPrimQuant, std::make_shared<Primitive>("Quant")); 88 GVAR_DEF(PrimitivePtr, kPrimDequant, std::make_shared<Primitive>("Dequant")); 89 90 // RL Ops 91 GVAR_DEF(PrimitivePtr, kPrimTensorArrayStack, std::make_shared<Primitive>("TensorArrayStack")); 92 GVAR_DEF(PrimitivePtr, kPrimTensorArray, std::make_shared<Primitive>("TensorArray")); 93 GVAR_DEF(PrimitivePtr, kPrimTensorArrayWrite, std::make_shared<Primitive>("TensorArrayWrite")); 94 GVAR_DEF(PrimitivePtr, kPrimTensorArrayGather, std::make_shared<Primitive>("TensorArrayGather")); 95 GVAR_DEF(PrimitivePtr, kPrimPartitionedCall, std::make_shared<Primitive>("PartitionedCall")); 96 GVAR_DEF(PrimitivePtr, kPrimDecodeImage, std::make_shared<Primitive>("DecodeImage")); 97 GVAR_DEF(PrimitivePtr, kPrimStridedSliceV2, std::make_shared<Primitive>("StridedSliceV2")); 98 GVAR_DEF(PrimitivePtr, kPrimStridedSliceV2Grad, std::make_shared<Primitive>("StridedSliceV2Grad")); 99 GVAR_DEF(PrimitivePtr, kPrimKMeansCentroids, std::make_shared<Primitive>("KMeansCentroids")); 100 GVAR_DEF(PrimitivePtr, kPrimReservoirReplayBufferCreate, std::make_shared<Primitive>("ReservoirReplayBufferCreate")); 101 GVAR_DEF(PrimitivePtr, kPrimReservoirReplayBufferPush, std::make_shared<Primitive>("ReservoirReplayBufferPush")); 102 GVAR_DEF(PrimitivePtr, kPrimReservoirReplayBufferSample, std::make_shared<Primitive>("ReservoirReplayBufferSample")); 103 GVAR_DEF(PrimitivePtr, kPrimReservoirReplayBufferDestroy, std::make_shared<Primitive>("ReservoirReplayBufferDestroy")); 104 GVAR_DEF(PrimitivePtr, kPrimOCRDetectionPreHandle, std::make_shared<Primitive>("OCRDetectionPreHandle")); 105 GVAR_DEF(PrimitivePtr, kPrimBufferAppend, std::make_shared<Primitive>("BufferAppend")); 106 107 // NPU 108 GVAR_DEF(PrimitivePtr, kPrimNPUGetFloatStatus, std::make_shared<Primitive>("NPUGetFloatStatus")); 109 GVAR_DEF(PrimitivePtr, kPrimNPUAllocFloatStatus, std::make_shared<Primitive>("NPUAllocFloatStatus")); 110 GVAR_DEF(PrimitivePtr, kPrimNPUClearFloatStatus, std::make_shared<Primitive>("NPUClearFloatStatus")); 111 GVAR_DEF(PrimitivePtr, kPrimAntiQuant, std::make_shared<Primitive>("AntiQuant")); 112 GVAR_DEF(PrimitivePtr, kPrimAscendAntiQuant, std::make_shared<Primitive>("AscendAntiQuant")); 113 114 // Fusion Inference OP 115 GVAR_DEF(PrimitivePtr, kPrimFFN, std::make_shared<Primitive>("FFN")); 116 117 // ToEnum OP 118 GVAR_DEF(PrimitivePtr, kPrimStringToEnum, std::make_shared<Primitive>("StringToEnum")); 119 } // namespace prim 120 } // namespace mindspore 121 122 #endif // MINDSPORE_CORE_BASE_OTHER_OPS_H_ 123