ONE - On-device Neural Engine
Toggle main menu visibility
Main Page
Related Pages
Topics
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
w
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
i
k
l
m
n
o
p
q
r
s
t
u
Enumerator
a
b
c
d
e
f
g
i
k
l
m
n
o
p
r
s
u
v
w
y
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Enumerations
a
c
d
e
f
g
i
k
l
m
o
p
r
s
t
w
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Related Symbols
a
b
c
d
e
f
g
h
i
m
n
o
p
r
s
t
u
v
w
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
Variables
_
b
c
d
f
g
i
k
m
n
o
p
s
t
v
Typedefs
a
d
f
g
i
l
m
n
o
s
t
u
v
Enumerations
f
g
n
o
p
r
Enumerator
a
k
n
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Examples
▼
ONE - On-device Neural Engine
How to Add a New Operation
How to Build Compiler
How to Build Package
How to Build Runtime with GBS for Tizen/RPi4
How to Build Using Prebuilt Docker Image
How to Build Runtime
How to Contribute
How to Cross-build Runtime for AARCH64
How to Cross-build Runtime for Android
How to Cross-build Runtime for ARM
How To Introduce a New Operation Into Compiler
How To Introduce a New Operation Into Runtime
How to Make an Application with Runtime
How to Remote Debugging with Visual Studio Code
How to Run Package
How to Use API
How to Use NNAPI Binding
How to Use NNFW API
How to Use NNFW PYTHON API
How to Use Specific Backend during Inference
Background
Overall Architecture
Roadmap
Supported Operations
Workgroup
API
Backend API
Compute
Controlflow Operations
Core
Executors
Heterogeneous Execution
On-Device Compilation
Supported Operations and backend
Training
Training a simple CNN model on MNIST using ONERT
Training MobileNetV2 on ImageNet Dataset using ONERT
Transfer Learning
►
Topics
►
Namespaces
►
Data Structures
▼
Files
►
File List
►
Globals
►
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
CircleMul.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2021 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
#include "
luci/Service/CircleShapeInference.h
"
18
19
#include "
CircleCloneNode.h
"
20
#include "
CircleShapeInferenceHelper.h
"
21
22
namespace
luci
23
{
24
25
luci::CircleNode
*
CloneNodeLet<CN::KLMN>::visit
(
const
luci::CircleMul
*node)
26
{
27
if
(node->
fusedActivationFunction
() ==
luci::FusedActFunc::UNDEFINED
)
28
return
nullptr
;
29
30
auto
*cloned = _graph->nodes()->create<
luci::CircleMul
>();
31
cloned->
fusedActivationFunction
(node->
fusedActivationFunction
());
32
return
cloned;
33
}
25
luci::CircleNode
*
CloneNodeLet<CN::KLMN>::visit
(
const
luci::CircleMul
*node) {
…
}
34
35
namespace
sinf
36
{
37
38
loco::TensorShape
Algorithm::visit
(
const
luci::CircleMul
*node)
39
{
40
const
auto
x = loco::must_cast<luci::CircleNode *>(node->
x
());
41
const
auto
y = loco::must_cast<luci::CircleNode *>(node->
y
());
42
43
const
auto
x_shape =
circle_shape
(x);
44
const
auto
y_shape =
circle_shape
(y);
45
46
return
broadcast_shape
(x_shape, y_shape);
47
}
38
loco::TensorShape
Algorithm::visit
(
const
luci::CircleMul
*node) {
…
}
48
49
}
// namespace sinf
50
}
// namespace luci
CircleCloneNode.h
CircleShapeInference.h
CircleShapeInferenceHelper.h
loco::TensorShape
Definition
TensorShape.h:29
luci::CircleMul
MUL in Circle.
Definition
CircleMul.h:34
luci::CircleMul::y
loco::Node * y(void) const
Definition
CircleMul.h:39
luci::CircleMul::x
loco::Node * x(void) const
Definition
CircleMul.h:36
luci::CircleNodeMixin< CircleNodeTrait::FusedActFunc >::fusedActivationFunction
FusedActFunc fusedActivationFunction() const
Definition
CircleNodeMixins.h:45
luci::CloneNodeLet
Definition
CircleCloneNode.h:39
luci::sinf::Algorithm::visit
loco::TensorShape visit(const luci::CircleNode *node) final
Default fallback.
Definition
CircleShapeInference.h:42
luci::sinf::broadcast_shape
loco::TensorShape broadcast_shape(const loco::TensorShape &x, const loco::TensorShape &y)
Definition
CircleShapeInferenceHelper.cpp:152
luci::sinf::circle_shape
loco::TensorShape circle_shape(const luci::CircleNode *node)
Definition
CircleShapeInferenceHelper.cpp:143
luci
Definition
DepthwiseConv2D.h:24
luci::FusedActFunc::UNDEFINED
@ UNDEFINED
luci::CircleNode
Definition
CircleNodeDecl.h:40
compiler
luci
service
src
Nodes
CircleMul.cpp
Generated by
1.9.8