Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
N
ngraph
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ngraph
Commits
d1d27d9e
Unverified
Commit
d1d27d9e
authored
5 years ago
by
Scott Cyphers
Committed by
GitHub
5 years ago
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into silee2/pragma
parents
66b6f186
f50e12a1
master
v0.29.0-rc.0
v0.28.0-rc.1
v0.28.0-rc.0
v0.27.1-rc.3
v0.27.1-rc.2
v0.27.1-rc.1
v0.27.1-rc.0
v0.27.0-rc.1
v0.27.0-rc.0
v0.26.1-rc.0
v0.26.0
v0.26.0-rc.8
v0.26.0-rc.7
v0.26.0-rc.6
v0.26.0-rc.5
v0.26.0-rc.4
v0.26.0-rc.3
v0.26.0-rc.2
v0.26.0-rc.0
v0.25.1-rc.11
v0.25.1-rc.10
v0.25.1-rc.9
v0.25.1-rc.8
v0.25.1-rc.7
v0.25.1-rc.6
v0.25.1-rc.5
v0.25.1-rc.4
v0.25.1-rc.3
v0.25.1-rc.2
v0.25.1-rc.1
v0.25.1-rc.0
v0.25.0
v0.25.0-rc.3
v0.25.0-rc.2
v0.25.0-rc.1
v0.25.0-rc.0
No related merge requests found
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
33 additions
and
2 deletions
+33
-2
constant_folding.cpp
src/ngraph/pass/constant_folding.cpp
+0
-0
constant_folding.hpp
src/ngraph/pass/constant_folding.hpp
+4
-0
constant_folding.cpp
test/constant_folding.cpp
+29
-2
No files found.
src/ngraph/pass/constant_folding.cpp
View file @
d1d27d9e
This diff is collapsed.
Click to expand it.
src/ngraph/pass/constant_folding.hpp
View file @
d1d27d9e
...
...
@@ -34,6 +34,7 @@ public:
{
RESHAPE
,
BROADCAST
,
DYN_BROADCAST
,
PAD
,
DEQUANTIZE
,
UNARY
,
...
...
@@ -60,6 +61,7 @@ public:
m_cfmap
=
cfmap
;
construct_constant_reshape
();
construct_constant_broadcast
();
construct_constant_dyn_broadcast
();
construct_constant_pad
();
construct_constant_unary
();
construct_constant_binary
();
...
...
@@ -93,6 +95,7 @@ public:
{
case
CFTransformations
:
:
RESHAPE
:
construct_constant_reshape
();
break
;
case
CFTransformations
:
:
BROADCAST
:
construct_constant_broadcast
();
break
;
case
CFTransformations
:
:
DYN_BROADCAST
:
construct_constant_dyn_broadcast
();
break
;
case
CFTransformations
:
:
PAD
:
construct_constant_pad
();
break
;
case
CFTransformations
:
:
UNARY
:
construct_constant_unary
();
break
;
case
CFTransformations
:
:
BINARY
:
construct_constant_binary
();
break
;
...
...
@@ -122,6 +125,7 @@ public:
private
:
void
construct_constant_reshape
();
void
construct_constant_broadcast
();
void
construct_constant_dyn_broadcast
();
void
construct_constant_pad
();
void
construct_constant_unary
();
void
construct_constant_binary
();
...
...
This diff is collapsed.
Click to expand it.
test/constant_folding.cpp
View file @
d1d27d9e
...
...
@@ -97,8 +97,35 @@ TEST(constant_folding, constant_broadcast)
ASSERT_TRUE
(
new_const
);
auto
values_out
=
new_const
->
get_vector
<
int
>
();
vector
<
int
>
values_permute
{
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
};
ASSERT_EQ
(
values_permute
,
values_out
);
vector
<
int
>
values_expected
{
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
};
ASSERT_EQ
(
values_expected
,
values_out
);
}
TEST
(
constant_folding
,
constant_dyn_broadcast
)
{
vector
<
int32_t
>
values_in
{
0
,
1
};
auto
constant_in
=
make_shared
<
op
::
Constant
>
(
element
::
i32
,
Shape
{
2
},
values_in
);
vector
<
int64_t
>
shape_in
{
2
,
4
};
auto
constant_shape
=
make_shared
<
op
::
Constant
>
(
element
::
i64
,
Shape
{
2
},
shape_in
);
vector
<
int64_t
>
axes_in
{
1
};
auto
constant_axes
=
make_shared
<
op
::
Constant
>
(
element
::
i64
,
Shape
{
1
},
axes_in
);
auto
dyn_broadcast
=
make_shared
<
op
::
DynBroadcast
>
(
constant_in
,
constant_shape
,
constant_axes
);
auto
f
=
make_shared
<
Function
>
(
dyn_broadcast
,
ParameterVector
{});
pass
::
Manager
pass_manager
;
pass_manager
.
register_pass
<
pass
::
ConstantFolding
>
();
pass_manager
.
run_passes
(
f
);
ASSERT_EQ
(
count_ops_of_type
<
op
::
DynBroadcast
>
(
f
),
0
);
ASSERT_EQ
(
count_ops_of_type
<
op
::
Constant
>
(
f
),
1
);
auto
new_const
=
std
::
dynamic_pointer_cast
<
op
::
Constant
>
(
f
->
get_results
().
at
(
0
)
->
get_argument
(
0
));
ASSERT_TRUE
(
new_const
);
auto
values_out
=
new_const
->
get_vector
<
int32_t
>
();
vector
<
int32_t
>
values_expected
{
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
};
ASSERT_EQ
(
values_expected
,
values_out
);
}
TEST
(
constant_folding
,
constant_pad_exterior
)
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment