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
78c3f579
Commit
78c3f579
authored
May 16, 2021
by
Shucai Xiao
Browse files
enable a gpu unit test
parent
c310bc5c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
38 additions
and
39 deletions
+38
-39
test/verify/test_conv_bn_add.cpp
test/verify/test_conv_bn_add.cpp
+38
-39
No files found.
test/verify/test_conv_bn_add.cpp
View file @
78c3f579
...
@@ -2,44 +2,43 @@
...
@@ -2,44 +2,43 @@
#include "verify_program.hpp"
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/
op/common
.hpp>
#include <migraphx/
make_op
.hpp>
// struct test_conv_bn_add : verify_program<test_conv_bn_add>
struct
test_conv_bn_add
:
verify_program
<
test_conv_bn_add
>
// {
{
// static migraphx::instruction_ref add_bn(migraphx::program& p,
static
migraphx
::
instruction_ref
add_bn
(
migraphx
::
module_ref
mm
,
// migraphx::instruction_ref x,
migraphx
::
instruction_ref
x
,
// std::size_t channels,
std
::
size_t
channels
,
// std::size_t seed = 1)
std
::
size_t
seed
=
1
)
// {
{
// migraphx::shape vars{migraphx::shape::float_type, {channels}};
migraphx
::
shape
vars
{
migraphx
::
shape
::
float_type
,
{
channels
}};
// auto scale = mm->add_literal(migraphx::abs(migraphx::generate_literal(vars, 1 +
auto
scale
=
mm
->
add_literal
(
migraphx
::
abs
(
migraphx
::
generate_literal
(
vars
,
1
+
seed
)));
// seed))); auto bias = mm->add_literal(migraphx::abs(migraphx::generate_literal(vars, 2
auto
bias
=
mm
->
add_literal
(
migraphx
::
abs
(
migraphx
::
generate_literal
(
vars
,
2
+
seed
)));
// + seed))); auto mean = mm->add_literal(migraphx::abs(migraphx::generate_literal(vars,
auto
mean
=
mm
->
add_literal
(
migraphx
::
abs
(
migraphx
::
generate_literal
(
vars
,
3
+
seed
)));
// 3 + seed))); auto variance =
auto
variance
=
mm
->
add_literal
(
migraphx
::
abs
(
migraphx
::
generate_literal
(
vars
,
4
+
seed
)));
// mm->add_literal(migraphx::abs(migraphx::generate_literal(vars, 4 + seed))); return
return
mm
->
add_instruction
(
migraphx
::
make_op
(
"batch_norm_inference"
),
x
,
scale
,
bias
,
mean
,
variance
);
// mm->add_instruction(
}
// migraphx::op::batch_norm_inference{}, x, scale, bias, mean, variance);
// }
// migraphx::program create_program() const
migraphx
::
program
create_program
()
const
// {
{
// migraphx::program p;
migraphx
::
program
p
;
// std::size_t ichannels = 64;
std
::
size_t
ichannels
=
64
;
// std::size_t ochannels = 256;
std
::
size_t
ochannels
=
256
;
// auto x = mm->add_parameter("x", {migraphx::shape::float_type, {1, ichannels, 56,
auto
*
mm
=
p
.
get_main_module
();
// 56}}); auto w = mm->add_literal(migraphx::generate_literal(
auto
x
=
mm
->
add_parameter
(
"x"
,
{
migraphx
::
shape
::
float_type
,
{
1
,
ichannels
,
56
,
56
}});
// {migraphx::shape::float_type, {ochannels, ichannels, 1, 1}}, 1));
auto
w
=
mm
->
add_literal
(
migraphx
::
generate_literal
({
migraphx
::
shape
::
float_type
,
{
ochannels
,
ichannels
,
1
,
1
}},
1
));
// auto y = mm->add_parameter("y", {migraphx::shape::float_type, {1, ichannels, 56,
auto
y
=
mm
->
add_parameter
(
"y"
,
{
migraphx
::
shape
::
float_type
,
{
1
,
ichannels
,
56
,
56
}});
// 56}}); auto v = mm->add_literal(migraphx::generate_literal(
auto
v
=
mm
->
add_literal
(
migraphx
::
generate_literal
({
migraphx
::
shape
::
float_type
,
{
ochannels
,
ichannels
,
1
,
1
}},
2
));
// {migraphx::shape::float_type, {ochannels, ichannels, 1, 1}}, 2));
auto
relu1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"relu"
),
x
);
// auto relu1 = mm->add_instruction(migraphx::op::relu{}, x);
auto
conv1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"convolution"
),
relu1
,
w
);
// auto conv1 = mm->add_instruction(migraphx::op::convolution{}, relu1, w);
auto
bn1
=
add_bn
(
mm
,
conv1
,
ochannels
,
1
);
// auto bn1 = add_bn(p, conv1, ochannels, 1);
auto
relu2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"relu"
),
y
);
// auto relu2 = mm->add_instruction(migraphx::op::relu{}, y);
auto
conv2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"convolution"
),
relu2
,
v
);
// auto conv2 = mm->add_instruction(migraphx::op::convolution{}, relu2, v);
auto
bn2
=
add_bn
(
mm
,
conv2
,
ochannels
,
1
);
// auto bn2 = add_bn(p, conv2, ochannels, 1);
auto
sum
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
bn1
,
bn2
);
// auto sum = mm->add_instruction(migraphx::op::add{}, bn1, bn2);
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"relu"
),
sum
);
// mm->add_instruction(migraphx::op::relu{}, sum);
mm
->
add_return
({
r
});
// return p;
// }
return
p
;
// };
}
};
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