ONE - On-device Neural Engine
Loading...
Searching...
No Matches
CircleNodes.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved
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 __LUCI_IR_CIRCLENODES_H__
18#define __LUCI_IR_CIRCLENODES_H__
19
20#include "Nodes/CircleAbs.h"
21#include "Nodes/CircleAdd.h"
22#include "Nodes/CircleAddN.h"
23#include "Nodes/CircleArgMax.h"
24#include "Nodes/CircleArgMin.h"
25#include "Nodes/CircleAveragePool2D.h"
26#include "Nodes/CircleBatchMatMul.h"
27#include "Nodes/CircleBatchToSpaceND.h"
28#include "Nodes/CircleBidirectionalSequenceLSTM.h"
29#include "Nodes/CircleBroadcastTo.h"
30#include "Nodes/CircleCast.h"
31#include "Nodes/CircleCeil.h"
32#include "Nodes/CircleConcatenation.h"
33#include "Nodes/CircleConv2D.h"
34#include "Nodes/CircleCos.h"
35#include "Nodes/CircleCumSum.h"
36#include "Nodes/CircleCustom.h"
37#include "Nodes/CircleDensify.h"
38#include "Nodes/CircleDepthToSpace.h"
39#include "Nodes/CircleDepthwiseConv2D.h"
40#include "Nodes/CircleDequantize.h"
41#include "Nodes/CircleDiv.h"
42#include "Nodes/CircleElu.h"
43#include "Nodes/CircleEqual.h"
44#include "Nodes/CircleExp.h"
45#include "Nodes/CircleExpandDims.h"
46#include "Nodes/CircleFakeQuant.h"
47#include "Nodes/CircleFill.h"
48#include "Nodes/CircleFloor.h"
49#include "Nodes/CircleFloorDiv.h"
50#include "Nodes/CircleFloorMod.h"
51#include "Nodes/CircleFullyConnected.h"
52#include "Nodes/CircleGather.h"
53#include "Nodes/CircleGatherNd.h"
54#include "Nodes/CircleGelu.h"
55#include "Nodes/CircleGreater.h"
56#include "Nodes/CircleGreaterEqual.h"
57#include "Nodes/CircleHardSwish.h"
58#include "Nodes/CircleIf.h"
59#include "Nodes/CircleL2Normalize.h"
60#include "Nodes/CircleL2Pool2D.h"
61#include "Nodes/CircleLeakyRelu.h"
62#include "Nodes/CircleLess.h"
63#include "Nodes/CircleLessEqual.h"
64#include "Nodes/CircleLocalResponseNormalization.h"
65#include "Nodes/CircleLog.h"
66#include "Nodes/CircleLogicalAnd.h"
67#include "Nodes/CircleLogicalNot.h"
68#include "Nodes/CircleLogicalOr.h"
69#include "Nodes/CircleLogistic.h"
70#include "Nodes/CircleLogSoftmax.h"
71#include "Nodes/CircleMatrixDiag.h"
72#include "Nodes/CircleMatrixSetDiag.h"
73#include "Nodes/CircleMaximum.h"
74#include "Nodes/CircleMaxPool2D.h"
75#include "Nodes/CircleMean.h"
76#include "Nodes/CircleMinimum.h"
77#include "Nodes/CircleMirrorPad.h"
78#include "Nodes/CircleMul.h"
79#include "Nodes/CircleNeg.h"
80#include "Nodes/CircleNonMaxSuppressionV4.h"
81#include "Nodes/CircleNonMaxSuppressionV5.h"
82#include "Nodes/CircleNotEqual.h"
83#include "Nodes/CircleOneHot.h"
84#include "Nodes/CirclePack.h"
85#include "Nodes/CirclePad.h"
86#include "Nodes/CirclePadV2.h"
87#include "Nodes/CirclePow.h"
88#include "Nodes/CircleQuantize.h"
89#include "Nodes/CirclePRelu.h"
90#include "Nodes/CircleRange.h"
91#include "Nodes/CircleRank.h"
92#include "Nodes/CircleReduceAny.h"
93#include "Nodes/CircleReduceMax.h"
94#include "Nodes/CircleReduceMin.h"
95#include "Nodes/CircleReduceProd.h"
96#include "Nodes/CircleRelu.h"
97#include "Nodes/CircleRelu0To1.h"
98#include "Nodes/CircleRelu6.h"
99#include "Nodes/CircleReluN1To1.h"
100#include "Nodes/CircleReshape.h"
101#include "Nodes/CircleResizeBilinear.h"
102#include "Nodes/CircleResizeNearestNeighbor.h"
103#include "Nodes/CircleReverseSequence.h"
104#include "Nodes/CircleReverseV2.h"
105#include "Nodes/CircleRound.h"
106#include "Nodes/CircleRsqrt.h"
107#include "Nodes/CircleScatterNd.h"
108#include "Nodes/CircleSegmentSum.h"
109#include "Nodes/CircleSelect.h"
110#include "Nodes/CircleSelectV2.h"
111#include "Nodes/CircleShape.h"
112#include "Nodes/CircleSin.h"
113#include "Nodes/CircleSlice.h"
114#include "Nodes/CircleSoftmax.h"
115#include "Nodes/CircleSpaceToBatchND.h"
116#include "Nodes/CircleSpaceToDepth.h"
117#include "Nodes/CircleSparseToDense.h"
118#include "Nodes/CircleSplit.h"
119#include "Nodes/CircleSplitV.h"
120#include "Nodes/CircleSqrt.h"
121#include "Nodes/CircleSquare.h"
122#include "Nodes/CircleSquaredDifference.h"
123#include "Nodes/CircleSqueeze.h"
124#include "Nodes/CircleStridedSlice.h"
125#include "Nodes/CircleSub.h"
126#include "Nodes/CircleSum.h"
127#include "Nodes/CircleSVDF.h"
128#include "Nodes/CircleTanh.h"
129#include "Nodes/CircleTile.h"
130#include "Nodes/CircleTopKV2.h"
131#include "Nodes/CircleTranspose.h"
132#include "Nodes/CircleTransposeConv.h"
133#include "Nodes/CircleUnidirectionalSequenceLSTM.h"
134#include "Nodes/CircleUnique.h"
135#include "Nodes/CircleUnpack.h"
136#include "Nodes/CircleWhere.h"
137#include "Nodes/CircleWhile.h"
138#include "Nodes/CircleZerosLike.h"
139// Circle only
140#include "Nodes/CircleBCQFullyConnected.h"
141#include "Nodes/CircleBCQGather.h"
142#include "Nodes/CircleGRU.h"
143#include "Nodes/CircleInstanceNorm.h"
144#include "Nodes/CircleRmsNorm.h"
145#include "Nodes/CircleRoPE.h"
146// Virtual nodes
147#include "Nodes/CircleConst.h"
148#include "Nodes/CircleInput.h"
149#include "Nodes/CircleOutput.h"
150#include "Nodes/CircleVariable.h"
151// Multi-output virtual nodes
154#include "Nodes/CircleIfOut.h"
157#include "Nodes/CircleSplitOut.h"
162#include "Nodes/CircleWhileOut.h"
163
164#include <loco/IR/Graph.h>
165
166namespace luci
167{
168
170void link(loco::GraphOutput *, CircleOutput *);
171
173void link(loco::GraphInput *, CircleInput *);
174
176CircleOutput *output_node(loco::Graph *g, const loco::GraphOutputIndex &index);
177
179CircleInput *input_node(loco::Graph *g, const loco::GraphInputIndex &index);
180
181} // namespace luci
182
183#endif // __LUCI_IR_CIRCLENODES_H__
A neural network graph.
Definition Graph.h:161
Graph-level Input Metadata.
Definition Graph.h:107
Graph-level Output Metadata.
Definition Graph.h:135
uint32_t GraphInputIndex
uint32_t GraphOutputIndex
CircleOutput * output_node(loco::Graph *g, const loco::GraphOutputIndex &index)
Find a CircleOutput node with a given output index.
CircleInput * input_node(loco::Graph *g, const loco::GraphInputIndex &index)
Find a Pull node with a given input index.
void link(loco::GraphOutput *, CircleOutput *)
Link GraphOutput with CircleOutput node.