Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
MIGraphX
Commits
433e75b0
Commit
433e75b0
authored
Dec 04, 2018
by
Khalique
Browse files
added add_bcast, implicit_bcast, unknown, softmax
parent
1181aa0c
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
143 additions
and
17 deletions
+143
-17
src/include/migraphx/onnx.hpp
src/include/migraphx/onnx.hpp
+18
-0
src/onnx/onnx.cpp
src/onnx/onnx.cpp
+1
-17
test/onnx/add_bcast_test.onnx
test/onnx/add_bcast_test.onnx
+22
-0
test/onnx/implicit_bcast_test.onnx
test/onnx/implicit_bcast_test.onnx
+20
-0
test/onnx/onnx_test.cpp
test/onnx/onnx_test.cpp
+51
-0
test/onnx/softmax_test.onnx
test/onnx/softmax_test.onnx
+11
-0
test/onnx/unknown_test.onnx
test/onnx/unknown_test.onnx
+20
-0
No files found.
src/include/migraphx/onnx.hpp
View file @
433e75b0
...
@@ -7,6 +7,24 @@
...
@@ -7,6 +7,24 @@
namespace
migraphx
{
namespace
migraphx
{
inline
namespace
MIGRAPHX_INLINE_NS
{
inline
namespace
MIGRAPHX_INLINE_NS
{
struct
unknown
{
std
::
string
op
;
std
::
string
name
()
const
{
return
"unknown:"
+
op
;
}
shape
compute_shape
(
std
::
vector
<
shape
>
input
)
const
{
if
(
input
.
empty
())
return
{};
else
return
input
.
front
();
}
friend
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
const
unknown
&
x
)
{
os
<<
x
.
name
();
return
os
;
}
};
/// Create a program from an onnx file
/// Create a program from an onnx file
program
parse_onnx
(
const
std
::
string
&
name
);
program
parse_onnx
(
const
std
::
string
&
name
);
...
...
src/onnx/onnx.cpp
View file @
433e75b0
...
@@ -15,26 +15,10 @@
...
@@ -15,26 +15,10 @@
#include <migraphx/ranges.hpp>
#include <migraphx/ranges.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/config.hpp>
#include <migraphx/config.hpp>
#include <migraphx/onnx.hpp>
namespace
migraphx
{
namespace
migraphx
{
inline
namespace
MIGRAPHX_INLINE_NS
{
inline
namespace
MIGRAPHX_INLINE_NS
{
struct
unknown
{
std
::
string
op
;
std
::
string
name
()
const
{
return
"unknown:"
+
op
;
}
shape
compute_shape
(
std
::
vector
<
shape
>
input
)
const
{
if
(
input
.
empty
())
return
{};
else
return
input
.
front
();
}
friend
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
const
unknown
&
x
)
{
os
<<
x
.
name
();
return
os
;
}
};
struct
onnx_parser
struct
onnx_parser
{
{
...
...
test/onnx/add_bcast_test.onnx
0 → 100644
View file @
433e75b0
add_bcast-example:
-
0
12"Add*
axis*
broadcasttest-add_bcastZ
0
Z
1
b
2
B
\ No newline at end of file
test/onnx/implicit_bcast_test.onnx
0 → 100644
View file @
433e75b0
implicit_bcast-example:q
0
12"Addtest-multi_bcastZ
0
Z
1
b
2
B
\ No newline at end of file
test/onnx/onnx_test.cpp
View file @
433e75b0
...
@@ -301,6 +301,54 @@ void atan_test()
...
@@ -301,6 +301,54 @@ void atan_test()
EXPECT
(
p
==
prog
);
EXPECT
(
p
==
prog
);
}
}
void
add_bcast_test
()
{
migraphx
::
program
p
;
auto
l0
=
p
.
add_parameter
(
"0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
2
,
3
,
4
,
5
}});
auto
l1
=
p
.
add_parameter
(
"1"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
3
,
4
}});
auto
l2
=
p
.
add_instruction
(
migraphx
::
op
::
broadcast
{
1
,
l0
->
get_shape
()},
l1
);
p
.
add_instruction
(
migraphx
::
op
::
add
{},
l0
,
l2
);
auto
prog
=
migraphx
::
parse_onnx
(
"add_bcast_test.onnx"
);
EXPECT
(
p
==
prog
);
}
void
implicit_bcast_test
()
{
migraphx
::
program
p
;
auto
l0
=
p
.
add_parameter
(
"0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
2
,
3
,
4
,
5
}});
auto
l1
=
p
.
add_parameter
(
"1"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
3
,
4
}});
auto
l2
=
p
.
add_instruction
(
migraphx
::
op
::
multibroadcast
{{
0
,
0
,
4
,
5
}},
l0
);
auto
l3
=
p
.
add_instruction
(
migraphx
::
op
::
multibroadcast
{{
0
,
0
,
4
,
5
}},
l1
);
p
.
add_instruction
(
migraphx
::
op
::
add
{},
l2
,
l3
);
auto
prog
=
migraphx
::
parse_onnx
(
"implicit_bcast_test.onnx"
);
EXPECT
(
p
==
prog
);
}
void
unknown_test
()
{
migraphx
::
program
p
;
auto
l0
=
p
.
add_parameter
(
"0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
2
,
3
,
4
,
5
}});
auto
l1
=
p
.
add_parameter
(
"1"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
3
,
4
}});
p
.
add_instruction
(
migraphx
::
unknown
{
"Unknown"
},
l0
,
l1
);
auto
prog
=
migraphx
::
parse_onnx
(
"unknown_test.onnx"
);
EXPECT
(
p
==
prog
);
}
void
softmax_test
()
{
migraphx
::
program
p
;
auto
l0
=
p
.
add_parameter
(
"0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
1
,
3
}});
p
.
add_instruction
(
migraphx
::
op
::
softmax
{},
l0
);
auto
prog
=
migraphx
::
parse_onnx
(
"softmax_test.onnx"
);
EXPECT
(
p
==
prog
);
}
int
main
()
int
main
()
{
{
pytorch_conv_bias_test
();
pytorch_conv_bias_test
();
...
@@ -325,4 +373,7 @@ int main()
...
@@ -325,4 +373,7 @@ int main()
asin_test
();
asin_test
();
acos_test
();
acos_test
();
atan_test
();
atan_test
();
add_bcast_test
();
implicit_bcast_test
();
unknown_test
();
}
}
test/onnx/softmax_test.onnx
0 → 100644
View file @
433e75b0
softmax-example:I
01"Softmaxtest-softmaxZ
0
b
1
B
\ No newline at end of file
test/onnx/unknown_test.onnx
0 → 100644
View file @
433e75b0
unknown-example:q
0
12"Unknowntest-unknownZ
0
Z
1
b
2
B
\ No newline at end of file
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