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
7dc6e3ae
Commit
7dc6e3ae
authored
Sep 17, 2021
by
Khalique Ahmed
Browse files
Merge branch 'develop' of
https://github.com/ROCmSoftwarePlatform/AMDMIGraphX
into mi100_opts
parents
f94d77fc
a275f590
Changes
318
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
92 additions
and
41 deletions
+92
-41
test/verify/test_conv_bias_clipped_relu.cpp
test/verify/test_conv_bias_clipped_relu.cpp
+3
-3
test/verify/test_div2.cpp
test/verify/test_div2.cpp
+1
-1
test/verify/test_equal_brcst.cpp
test/verify/test_equal_brcst.cpp
+3
-3
test/verify/test_gelu.cpp
test/verify/test_gelu.cpp
+3
-3
test/verify/test_gemm_transposea.cpp
test/verify/test_gemm_transposea.cpp
+1
-1
test/verify/test_gemm_transposea_ex.cpp
test/verify/test_gemm_transposea_ex.cpp
+2
-1
test/verify/test_gemm_transposeab.cpp
test/verify/test_gemm_transposeab.cpp
+2
-2
test/verify/test_gemm_transposeb.cpp
test/verify/test_gemm_transposeb.cpp
+1
-1
test/verify/test_gemm_transposeb_ex.cpp
test/verify/test_gemm_transposeb_ex.cpp
+2
-1
test/verify/test_greater_brcst.cpp
test/verify/test_greater_brcst.cpp
+3
-3
test/verify/test_layernorm.cpp
test/verify/test_layernorm.cpp
+6
-6
test/verify/test_less_brcst.cpp
test/verify/test_less_brcst.cpp
+3
-3
test/verify/test_logsoftmax1.cpp
test/verify/test_logsoftmax1.cpp
+3
-2
test/verify/test_loop.cpp
test/verify/test_loop.cpp
+45
-0
test/verify/test_mul_add.cpp
test/verify/test_mul_add.cpp
+2
-2
test/verify/test_pad_transposed.cpp
test/verify/test_pad_transposed.cpp
+2
-1
test/verify/test_rsqrt.cpp
test/verify/test_rsqrt.cpp
+2
-2
test/verify/test_step_broadcast_transpose.cpp
test/verify/test_step_broadcast_transpose.cpp
+4
-3
test/verify/test_step_transpose.cpp
test/verify/test_step_transpose.cpp
+3
-2
test/verify/test_sub2.cpp
test/verify/test_sub2.cpp
+1
-1
No files found.
test/verify/test_conv_bias_clipped_relu.cpp
View file @
7dc6e3ae
...
...
@@ -22,15 +22,15 @@ struct test_conv_bias_clipped_relu : verify_program<test_conv_bias_clipped_relu>
auto
bias
=
mm
->
add_literal
(
l0
);
auto
conv
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"convolution"
),
input
,
weights
);
auto
bcast_add
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"broadcast"
,
{{
"axis"
,
1
},
{
"
dim
s"
,
conv
->
get_shape
().
lens
()}}),
migraphx
::
make_op
(
"broadcast"
,
{{
"axis"
,
1
},
{
"
out_len
s"
,
conv
->
get_shape
().
lens
()}}),
bias
);
auto
bias_add
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
conv
,
bcast_add
);
auto
min_val
=
mm
->
add_literal
(
0.0
f
);
auto
max_val
=
mm
->
add_literal
(
6.0
f
);
min_val
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
input_lens
}}),
min_val
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
input_lens
}}),
min_val
);
max_val
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
input_lens
}}),
max_val
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
input_lens
}}),
max_val
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"clip"
),
bias_add
,
min_val
,
max_val
);
return
p
;
}
...
...
test/verify/test_div2.cpp
View file @
7dc6e3ae
...
...
@@ -16,7 +16,7 @@ struct test_div2 : verify_program<test_div2>
auto
y
=
mm
->
add_parameter
(
"y"
,
s
);
auto
z
=
mm
->
add_parameter
(
"z"
,
b
);
auto
zb
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"broadcast"
,
{{
"axis"
,
1
},
{
"
dim
s"
,
s
.
lens
()}}),
z
);
migraphx
::
make_op
(
"broadcast"
,
{{
"axis"
,
1
},
{
"
out_len
s"
,
s
.
lens
()}}),
z
);
auto
diff
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"div"
),
x
,
y
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"div"
),
diff
,
zb
);
return
p
;
...
...
test/verify/test_equal_brcst.cpp
View file @
7dc6e3ae
...
...
@@ -13,9 +13,9 @@ struct test_equal_brcst : verify_program<test_equal_brcst>
migraphx
::
shape
s0
{
migraphx
::
shape
::
float_type
,
{
3
,
3
}};
auto
l0
=
mm
->
add_parameter
(
"x"
,
s0
);
migraphx
::
shape
s1
{
migraphx
::
shape
::
float_type
,
{
3
,
1
}};
auto
l1
=
mm
->
add_parameter
(
"y"
,
s1
);
auto
bl1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
s0
.
lens
()}}),
l1
);
auto
l1
=
mm
->
add_parameter
(
"y"
,
s1
);
auto
bl1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
s0
.
lens
()}}),
l1
);
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"equal"
),
l0
,
bl1
);
mm
->
add_return
({
r
});
...
...
test/verify/test_gelu.cpp
View file @
7dc6e3ae
...
...
@@ -16,14 +16,14 @@ struct test_gelu : verify_program<test_gelu>
auto
one
=
mm
->
add_literal
(
1.0
f
);
auto
sqrt2
=
mm
->
add_literal
(
static_cast
<
float
>
(
M_SQRT2
));
auto
half_mbcast
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
input_lens
}}),
half
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
input_lens
}}),
half
);
auto
mul_half
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"mul"
),
x
,
half_mbcast
);
auto
sqrt2_mbcast
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
input_lens
}}),
sqrt2
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
input_lens
}}),
sqrt2
);
auto
div
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"div"
),
x
,
sqrt2_mbcast
);
auto
erf
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"erf"
),
div
);
auto
one_mbcast
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
input_lens
}}),
one
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
input_lens
}}),
one
);
auto
add_one
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
erf
,
one_mbcast
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"mul"
),
mul_half
,
add_one
);
return
p
;
...
...
test/verify/test_gemm_transposea.cpp
View file @
7dc6e3ae
...
...
@@ -12,7 +12,7 @@ struct test_gemm_transposea : verify_program<test_gemm_transposea>
auto
*
mm
=
p
.
get_main_module
();
auto
a
=
mm
->
add_parameter
(
"a"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
5
,
4
}});
auto
b
=
mm
->
add_parameter
(
"b"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
5
,
3
}});
auto
at
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"
dims
"
,
{
1
,
0
}}}),
a
);
auto
at
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"
permutation
"
,
{
1
,
0
}}}),
a
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
at
,
b
);
return
p
;
}
...
...
test/verify/test_gemm_transposea_ex.cpp
View file @
7dc6e3ae
...
...
@@ -12,7 +12,8 @@ struct test_gemm_transposea_ex : verify_program<test_gemm_transposea_ex>
auto
*
mm
=
p
.
get_main_module
();
auto
a
=
mm
->
add_parameter
(
"a"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
1
,
1
,
5
,
4
}});
auto
b
=
mm
->
add_parameter
(
"b"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
1
,
1
,
5
,
3
}});
auto
at
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
0
,
1
,
3
,
2
}}}),
a
);
auto
at
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
0
,
1
,
3
,
2
}}}),
a
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
at
,
b
);
return
p
;
}
...
...
test/verify/test_gemm_transposeab.cpp
View file @
7dc6e3ae
...
...
@@ -12,8 +12,8 @@ struct test_gemm_transposeab : verify_program<test_gemm_transposeab>
auto
*
mm
=
p
.
get_main_module
();
auto
a
=
mm
->
add_parameter
(
"a"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
5
,
4
}});
auto
b
=
mm
->
add_parameter
(
"b"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
3
,
5
}});
auto
at
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"
dims
"
,
{
1
,
0
}}}),
a
);
auto
bt
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"
dims
"
,
{
1
,
0
}}}),
b
);
auto
at
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"
permutation
"
,
{
1
,
0
}}}),
a
);
auto
bt
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"
permutation
"
,
{
1
,
0
}}}),
b
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
at
,
bt
);
return
p
;
}
...
...
test/verify/test_gemm_transposeb.cpp
View file @
7dc6e3ae
...
...
@@ -12,7 +12,7 @@ struct test_gemm_transposeb : verify_program<test_gemm_transposeb>
auto
*
mm
=
p
.
get_main_module
();
auto
a
=
mm
->
add_parameter
(
"a"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
4
,
5
}});
auto
b
=
mm
->
add_parameter
(
"b"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
3
,
5
}});
auto
bt
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"
dims
"
,
{
1
,
0
}}}),
b
);
auto
bt
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"
permutation
"
,
{
1
,
0
}}}),
b
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
a
,
bt
);
return
p
;
}
...
...
test/verify/test_gemm_transposeb_ex.cpp
View file @
7dc6e3ae
...
...
@@ -12,7 +12,8 @@ struct test_gemm_transposeb_ex : verify_program<test_gemm_transposeb_ex>
auto
*
mm
=
p
.
get_main_module
();
auto
a
=
mm
->
add_parameter
(
"a"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
1
,
4
,
5
}});
auto
b
=
mm
->
add_parameter
(
"b"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
1
,
3
,
5
}});
auto
bt
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
0
,
2
,
1
}}}),
b
);
auto
bt
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
0
,
2
,
1
}}}),
b
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
a
,
bt
);
return
p
;
}
...
...
test/verify/test_greater_brcst.cpp
View file @
7dc6e3ae
...
...
@@ -13,9 +13,9 @@ struct test_greater_brcst : verify_program<test_greater_brcst>
migraphx
::
shape
s0
{
migraphx
::
shape
::
float_type
,
{
3
,
3
}};
auto
l0
=
mm
->
add_parameter
(
"x"
,
s0
);
migraphx
::
shape
s1
{
migraphx
::
shape
::
float_type
,
{
3
,
1
}};
auto
l1
=
mm
->
add_parameter
(
"y"
,
s1
);
auto
bl1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
s0
.
lens
()}}),
l1
);
auto
l1
=
mm
->
add_parameter
(
"y"
,
s1
);
auto
bl1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
s0
.
lens
()}}),
l1
);
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"greater"
),
l0
,
bl1
);
mm
->
add_return
({
r
});
...
...
test/verify/test_layernorm.cpp
View file @
7dc6e3ae
...
...
@@ -18,24 +18,24 @@ add_layernorm(migraphx::module& m, migraphx::instruction_ref x, std::vector<size
auto
mean
=
m
.
add_instruction
(
migraphx
::
op
::
reduce_mean
({
2
}),
x
);
auto
mean_mbcast
=
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
dims
}}),
mean
);
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
dims
}}),
mean
);
auto
sub
=
m
.
add_instruction
(
migraphx
::
make_op
(
"sub"
),
x
,
mean_mbcast
);
auto
exponent_mbcast
=
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
dims
}}),
exponent
);
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
dims
}}),
exponent
);
auto
pow
=
m
.
add_instruction
(
migraphx
::
make_op
(
"pow"
),
sub
,
exponent_mbcast
);
auto
var
=
m
.
add_instruction
(
migraphx
::
op
::
reduce_mean
({
2
}),
pow
);
auto
epsilon_mbcast
=
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
{
1
,
dims
.
at
(
1
),
1
}}}),
epsilon
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
{
1
,
dims
.
at
(
1
),
1
}}}),
epsilon
);
auto
add_epsilon
=
m
.
add_instruction
(
migraphx
::
make_op
(
"add"
),
var
,
epsilon_mbcast
);
auto
sqrt
=
m
.
add_instruction
(
migraphx
::
make_op
(
"sqrt"
),
add_epsilon
);
auto
sqrt_mbcast
=
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
dims
}}),
sqrt
);
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
dims
}}),
sqrt
);
auto
div
=
m
.
add_instruction
(
migraphx
::
make_op
(
"div"
),
sub
,
sqrt_mbcast
);
auto
scale_mbcast
=
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
dims
}}),
scale
);
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
dims
}}),
scale
);
auto
mul
=
m
.
add_instruction
(
migraphx
::
make_op
(
"mul"
),
scale_mbcast
,
div
);
auto
bias_mbcast
=
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
dims
}}),
bias
);
m
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
dims
}}),
bias
);
return
m
.
add_instruction
(
migraphx
::
make_op
(
"add"
),
mul
,
bias_mbcast
);
}
...
...
test/verify/test_less_brcst.cpp
View file @
7dc6e3ae
...
...
@@ -13,9 +13,9 @@ struct test_less_brcst : verify_program<test_less_brcst>
migraphx
::
shape
s0
{
migraphx
::
shape
::
float_type
,
{
3
,
3
}};
auto
l0
=
mm
->
add_parameter
(
"x"
,
s0
);
migraphx
::
shape
s1
{
migraphx
::
shape
::
float_type
,
{
3
,
1
}};
auto
l1
=
mm
->
add_parameter
(
"y"
,
s1
);
auto
bl1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
s0
.
lens
()}}),
l1
);
auto
l1
=
mm
->
add_parameter
(
"y"
,
s1
);
auto
bl1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
s0
.
lens
()}}),
l1
);
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"less"
),
l0
,
bl1
);
mm
->
add_return
({
r
});
...
...
test/verify/test_logsoftmax1.cpp
View file @
7dc6e3ae
...
...
@@ -11,8 +11,9 @@ struct test_logsoftmax1 : verify_program<test_logsoftmax1>
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
auto
x
=
mm
->
add_parameter
(
"x"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
5
,
3
,
3
,
4
}});
auto
tx
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
2
,
3
,
0
,
1
}}}),
x
);
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"logsoftmax"
,
{{
"axis"
,
0
}}),
tx
);
auto
tx
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
2
,
3
,
0
,
1
}}}),
x
);
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"logsoftmax"
,
{{
"axis"
,
0
}}),
tx
);
mm
->
add_return
({
r
});
return
p
;
}
...
...
test/verify/test_loop.cpp
0 → 100644
View file @
7dc6e3ae
#include "verify_program.hpp"
#include <migraphx/literal.hpp>
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
struct
test_loop
:
verify_program
<
test_loop
>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
si
{
migraphx
::
shape
::
int64_type
};
migraphx
::
shape
s
{
migraphx
::
shape
::
int64_type
,
{
1
}};
migraphx
::
shape
sc
{
migraphx
::
shape
::
bool_type
};
int64_t
iter_num
=
10
;
auto
in_iter
=
mm
->
add_literal
(
migraphx
::
literal
(
si
,
{
iter_num
}));
auto
in_cond
=
mm
->
add_parameter
(
"ccond"
,
sc
);
int64_t
value
=
5
;
auto
in_val
=
mm
->
add_literal
(
migraphx
::
literal
(
s
,
{
value
}));
auto
*
body
=
p
.
create_module
(
"loop_module"
);
auto
iter
=
body
->
add_parameter
(
"iter_num"
,
si
);
body
->
add_parameter
(
"cond"
,
sc
);
auto
in_v
=
body
->
add_parameter
(
"input"
,
s
);
std
::
vector
<
int64_t
>
vd
=
{
3
};
auto
l
=
body
->
add_literal
(
migraphx
::
literal
(
si
,
vd
));
auto
ad
=
body
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
iter
,
l
);
auto
val
=
body
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
in_v
,
ad
);
auto
eq
=
body
->
add_instruction
(
migraphx
::
make_op
(
"equal"
),
iter
,
l
);
auto
beq
=
body
->
add_instruction
(
migraphx
::
make_op
(
"convert"
,
{{
"target_type"
,
migraphx
::
shape
::
bool_type
}}),
eq
);
auto
neq
=
body
->
add_instruction
(
migraphx
::
make_op
(
"not"
),
beq
);
body
->
add_return
({
neq
,
val
,
val
});
auto
rl
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"loop"
,
{{
"max_iterations"
,
8
}}),
{
in_iter
,
in_cond
,
in_val
},
{
body
});
auto
r0
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"get_tuple_elem"
,
{{
"index"
,
0
}}),
rl
);
auto
r1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"get_tuple_elem"
,
{{
"index"
,
1
}}),
rl
);
mm
->
add_return
({
r0
,
r1
});
return
p
;
}
};
test/verify/test_mul_add.cpp
View file @
7dc6e3ae
...
...
@@ -16,9 +16,9 @@ struct test_mul_add : verify_program<test_mul_add>
auto
a
=
mm
->
add_parameter
(
"a"
,
bs
);
auto
b
=
mm
->
add_parameter
(
"b"
,
bs
);
auto
ab
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"broadcast"
,
{{
"axis"
,
1
},
{
"
dim
s"
,
s
.
lens
()}}),
a
);
migraphx
::
make_op
(
"broadcast"
,
{{
"axis"
,
1
},
{
"
out_len
s"
,
s
.
lens
()}}),
a
);
auto
bb
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"broadcast"
,
{{
"axis"
,
1
},
{
"
dim
s"
,
s
.
lens
()}}),
b
);
migraphx
::
make_op
(
"broadcast"
,
{{
"axis"
,
1
},
{
"
out_len
s"
,
s
.
lens
()}}),
b
);
auto
mul
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"mul"
),
x
,
ab
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
mul
,
bb
);
return
p
;
...
...
test/verify/test_pad_transposed.cpp
View file @
7dc6e3ae
...
...
@@ -12,7 +12,8 @@ struct test_pad_transposed : verify_program<test_pad_transposed>
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
migraphx
::
shape
::
int32_type
,
{
1
,
224
,
224
,
3
}};
auto
x
=
mm
->
add_parameter
(
"x"
,
s
);
auto
t
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
0
,
3
,
1
,
2
}}}),
x
);
auto
t
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
0
,
3
,
1
,
2
}}}),
x
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"pad"
,
{{
"pads"
,
{
0
,
0
,
2
,
2
,
0
,
0
,
3
,
3
}}}),
t
);
return
p
;
}
...
...
test/verify/test_rsqrt.cpp
View file @
7dc6e3ae
...
...
@@ -16,9 +16,9 @@ struct test_rsqrt : verify_program<test_rsqrt>
auto
min_val
=
mm
->
add_literal
(
1.0
f
);
auto
max_val
=
mm
->
add_literal
(
std
::
numeric_limits
<
float
>::
max
());
min_val
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
input_lens
}}),
min_val
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
input_lens
}}),
min_val
);
max_val
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
input_lens
}}),
max_val
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
input_lens
}}),
max_val
);
auto
l0
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"clip"
),
x
,
min_val
,
max_val
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"rsqrt"
),
l0
);
return
p
;
...
...
test/verify/test_step_broadcast_transpose.cpp
View file @
7dc6e3ae
...
...
@@ -13,9 +13,10 @@ struct test_step_broadcast_transpose : verify_program<test_step_broadcast_transp
migraphx
::
shape
s1
{
migraphx
::
shape
::
float_type
,
{
1
,
1
,
1
,
6
}};
auto
l0
=
mm
->
add_parameter
(
"x"
,
s1
);
auto
ml
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"output_lens"
,
{
2
,
1
,
4
,
6
}}}),
l0
);
auto
tl
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
0
,
2
,
3
,
1
}}}),
ml
);
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
{
2
,
1
,
4
,
6
}}}),
l0
);
auto
tl
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
0
,
2
,
3
,
1
}}}),
ml
);
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"step"
,
{{
"axes"
,
{
0
,
1
,
2
}},
{
"steps"
,
{
2
,
2
,
3
}}}),
tl
);
mm
->
add_return
({
r
});
...
...
test/verify/test_step_transpose.cpp
View file @
7dc6e3ae
...
...
@@ -12,8 +12,9 @@ struct test_step_transpose : verify_program<test_step_transpose>
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s1
{
migraphx
::
shape
::
float_type
,
{
2
,
1
,
4
,
6
}};
auto
l0
=
mm
->
add_parameter
(
"x"
,
s1
);
auto
tl
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
0
,
2
,
3
,
1
}}}),
l0
);
auto
r
=
mm
->
add_instruction
(
auto
tl
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
0
,
2
,
3
,
1
}}}),
l0
);
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"step"
,
{{
"axes"
,
{
0
,
1
,
2
}},
{
"steps"
,
{
2
,
2
,
3
}}}),
tl
);
mm
->
add_return
({
r
});
...
...
test/verify/test_sub2.cpp
View file @
7dc6e3ae
...
...
@@ -16,7 +16,7 @@ struct test_sub2 : verify_program<test_sub2>
auto
y
=
mm
->
add_parameter
(
"y"
,
s
);
auto
z
=
mm
->
add_parameter
(
"z"
,
b
);
auto
zb
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"broadcast"
,
{{
"axis"
,
1
},
{
"
dim
s"
,
s
.
lens
()}}),
z
);
migraphx
::
make_op
(
"broadcast"
,
{{
"axis"
,
1
},
{
"
out_len
s"
,
s
.
lens
()}}),
z
);
auto
diff
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"sub"
),
x
,
y
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"sub"
),
diff
,
zb
);
return
p
;
...
...
Prev
1
…
11
12
13
14
15
16
Next
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