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
7e297b13
Commit
7e297b13
authored
Jun 13, 2022
by
Paul
Browse files
Merge
parents
86ea5e91
aa7ff911
Changes
765
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
112 additions
and
63 deletions
+112
-63
test/verify/gemm_2args_mm_4.cpp
test/verify/gemm_2args_mm_4.cpp
+3
-3
test/verify/gemm_2args_mm_5.cpp
test/verify/gemm_2args_mm_5.cpp
+1
-1
test/verify/gemm_2args_mm_6.cpp
test/verify/gemm_2args_mm_6.cpp
+2
-2
test/verify/gemm_2args_mm_7.cpp
test/verify/gemm_2args_mm_7.cpp
+1
-1
test/verify/gemm_2args_vbm.cpp
test/verify/gemm_2args_vbm.cpp
+1
-1
test/verify/gemm_2args_vv.cpp
test/verify/gemm_2args_vv.cpp
+2
-2
test/verify/gemm_add.cpp
test/verify/gemm_add.cpp
+24
-0
test/verify/gemm_multi_3args.cpp
test/verify/gemm_multi_3args.cpp
+2
-3
test/verify/gemm_multi_3args_alpha0.cpp
test/verify/gemm_multi_3args_alpha0.cpp
+2
-4
test/verify/gemm_multi_3args_beta0.cpp
test/verify/gemm_multi_3args_beta0.cpp
+2
-3
test/verify/gemm_multi_3args_c25.cpp
test/verify/gemm_multi_3args_c25.cpp
+2
-3
test/verify/gemm_multi_transpose.cpp
test/verify/gemm_multi_transpose.cpp
+6
-5
test/verify/main.cpp
test/verify/main.cpp
+1
-9
test/verify/quant_conv_int8x4_default.cpp
test/verify/quant_conv_int8x4_default.cpp
+23
-0
test/verify/quant_dot_3args_1.cpp
test/verify/quant_dot_3args_1.cpp
+2
-1
test/verify/quant_dot_3args_2.cpp
test/verify/quant_dot_3args_2.cpp
+7
-6
test/verify/quant_dot_3args_3.cpp
test/verify/quant_dot_3args_3.cpp
+7
-6
test/verify/quant_dot_3args_4.cpp
test/verify/quant_dot_3args_4.cpp
+9
-7
test/verify/quant_dot_3args_5.cpp
test/verify/quant_dot_3args_5.cpp
+8
-5
test/verify/run_verify.cpp
test/verify/run_verify.cpp
+7
-1
No files found.
test/verify/gemm_2args_mm_4.cpp
View file @
7e297b13
...
@@ -12,9 +12,9 @@ struct gemm_2args_mm_4 : verify_program<gemm_2args_mm_4>
...
@@ -12,9 +12,9 @@ struct gemm_2args_mm_4 : verify_program<gemm_2args_mm_4>
auto
*
mm
=
p
.
get_main_module
();
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
m1_shape
{
migraphx
::
shape
::
float_type
,
{
2
,
3
}};
migraphx
::
shape
m1_shape
{
migraphx
::
shape
::
float_type
,
{
2
,
3
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
float_type
,
{
3
,
3
,
4
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
float_type
,
{
3
,
3
,
4
}};
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
bl1
=
mm
->
add_instruction
(
auto
bl1
=
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
{
3
,
2
,
3
}}}),
l1
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
{
3
,
2
,
3
}}}),
l1
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
bl1
,
l2
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
bl1
,
l2
);
...
...
test/verify/gemm_2args_mm_5.cpp
View file @
7e297b13
...
@@ -14,7 +14,7 @@ struct gemm_2args_mm_5 : verify_program<gemm_2args_mm_5>
...
@@ -14,7 +14,7 @@ struct gemm_2args_mm_5 : verify_program<gemm_2args_mm_5>
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
float_type
,
{
2
,
3
,
3
,
4
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
float_type
,
{
2
,
3
,
3
,
4
}};
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
bl1
=
mm
->
add_instruction
(
auto
bl1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
{
2
,
3
,
2
,
3
}}}),
l1
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
{
2
,
3
,
2
,
3
}}}),
l1
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
bl1
,
l2
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
bl1
,
l2
);
...
...
test/verify/gemm_2args_mm_6.cpp
View file @
7e297b13
...
@@ -14,10 +14,10 @@ struct gemm_2args_mm_6 : verify_program<gemm_2args_mm_6>
...
@@ -14,10 +14,10 @@ struct gemm_2args_mm_6 : verify_program<gemm_2args_mm_6>
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
float_type
,
{
1
,
3
,
3
,
4
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
float_type
,
{
1
,
3
,
3
,
4
}};
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
bl1
=
mm
->
add_instruction
(
auto
bl1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
{
2
,
3
,
2
,
3
}}}),
l1
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
{
2
,
3
,
2
,
3
}}}),
l1
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
auto
bl2
=
mm
->
add_instruction
(
auto
bl2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
{
2
,
3
,
3
,
4
}}}),
l2
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
{
2
,
3
,
3
,
4
}}}),
l2
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
bl1
,
bl2
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
bl1
,
bl2
);
...
...
test/verify/gemm_2args_mm_7.cpp
View file @
7e297b13
...
@@ -14,7 +14,7 @@ struct gemm_2args_mm_7 : verify_program<gemm_2args_mm_7>
...
@@ -14,7 +14,7 @@ struct gemm_2args_mm_7 : verify_program<gemm_2args_mm_7>
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
float_type
,
{
2
,
3
,
3
,
4
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
float_type
,
{
2
,
3
,
3
,
4
}};
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
bl1
=
mm
->
add_instruction
(
auto
bl1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
{
2
,
3
,
2
,
3
}}}),
l1
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
{
2
,
3
,
2
,
3
}}}),
l1
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
bl1
,
l2
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
bl1
,
l2
);
...
...
test/verify/gemm_2args_vbm.cpp
View file @
7e297b13
...
@@ -15,7 +15,7 @@ struct gemm_2args_vbm : verify_program<gemm_2args_vbm>
...
@@ -15,7 +15,7 @@ struct gemm_2args_vbm : verify_program<gemm_2args_vbm>
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
ul1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"unsqueeze"
,
{{
"axes"
,
{
0
}}}),
l1
);
auto
ul1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"unsqueeze"
,
{{
"axes"
,
{
0
}}}),
l1
);
auto
bul1
=
mm
->
add_instruction
(
auto
bul1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out
put
_lens"
,
{
2
,
2
,
1
,
5
}}}),
ul1
);
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
{
2
,
2
,
1
,
5
}}}),
ul1
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
...
...
test/verify/gemm_2args_vv.cpp
View file @
7e297b13
#include <migraphx/apply_alpha_beta.hpp>
#include "verify_program.hpp"
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
...
@@ -17,8 +18,7 @@ struct gemm_2args_vv : verify_program<gemm_2args_vv>
...
@@ -17,8 +18,7 @@ struct gemm_2args_vv : verify_program<gemm_2args_vv>
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
auto
ul2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"unsqueeze"
,
{{
"axes"
,
{
1
}}}),
l2
);
auto
ul2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"unsqueeze"
,
{{
"axes"
,
{
1
}}}),
l2
);
float
alpha
=
0.23
f
;
float
alpha
=
0.23
f
;
auto
res
=
migraphx
::
add_apply_alpha_beta
(
*
mm
,
{
ul1
,
ul2
},
migraphx
::
make_op
(
"dot"
),
alpha
);
auto
res
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
,
{{
"alpha"
,
alpha
}}),
ul1
,
ul2
);
auto
sres
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"squeeze"
,
{{
"axes"
,
{
0
}}}),
res
);
auto
sres
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"squeeze"
,
{{
"axes"
,
{
0
}}}),
res
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"squeeze"
,
{{
"axes"
,
{
0
}}}),
sres
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"squeeze"
,
{{
"axes"
,
{
0
}}}),
sres
);
...
...
test/verify/gemm_add.cpp
0 → 100644
View file @
7e297b13
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/apply_alpha_beta.hpp>
struct
gemm_add
:
verify_program
<
gemm_add
>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
m1_shape
{
migraphx
::
shape
::
float_type
,
{
1
,
2
,
3
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
float_type
,
{
1
,
3
,
4
}};
migraphx
::
shape
m3_shape
{
migraphx
::
shape
::
float_type
,
{
1
,
2
,
4
}};
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
auto
l3
=
mm
->
add_parameter
(
"3"
,
m3_shape
);
auto
dot
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
l1
,
l2
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
dot
,
l3
);
return
p
;
}
};
test/verify/gemm_multi_3args.cpp
View file @
7e297b13
#include <migraphx/apply_alpha_beta.hpp>
#include "verify_program.hpp"
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
...
@@ -19,9 +20,7 @@ struct gemm_multi_3args : verify_program<gemm_multi_3args>
...
@@ -19,9 +20,7 @@ struct gemm_multi_3args : verify_program<gemm_multi_3args>
auto
l3
=
mm
->
add_parameter
(
"3"
,
m3_shape
);
auto
l3
=
mm
->
add_parameter
(
"3"
,
m3_shape
);
float
alpha
=
0.35
;
float
alpha
=
0.35
;
float
beta
=
0.41
;
float
beta
=
0.41
;
mm
->
add_instruction
(
migraphx
::
add_apply_alpha_beta
(
*
mm
,
{
l1
,
l2
,
l3
},
migraphx
::
make_op
(
"dot"
),
alpha
,
beta
);
migraphx
::
make_op
(
"dot"
,
{{
"alpha"
,
alpha
},
{
"beta"
,
beta
}}),
l1
,
l2
,
l3
);
return
p
;
return
p
;
}
}
};
};
test/verify/gemm_multi_3args_alpha0.cpp
View file @
7e297b13
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
#include <migraphx/program.hpp>
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/apply_alpha_beta.hpp>
struct
gemm_multi_3args_alpha0
:
verify_program
<
gemm_multi_3args_alpha0
>
struct
gemm_multi_3args_alpha0
:
verify_program
<
gemm_multi_3args_alpha0
>
{
{
migraphx
::
program
create_program
()
const
migraphx
::
program
create_program
()
const
...
@@ -19,9 +19,7 @@ struct gemm_multi_3args_alpha0 : verify_program<gemm_multi_3args_alpha0>
...
@@ -19,9 +19,7 @@ struct gemm_multi_3args_alpha0 : verify_program<gemm_multi_3args_alpha0>
float
alpha
=
0.0
f
;
float
alpha
=
0.0
f
;
float
beta
=
1.0
f
;
float
beta
=
1.0
f
;
mm
->
add_instruction
(
migraphx
::
add_apply_alpha_beta
(
*
mm
,
{
l1
,
l2
,
l3
},
migraphx
::
make_op
(
"dot"
),
alpha
,
beta
);
migraphx
::
make_op
(
"dot"
,
{{
"alpha"
,
alpha
},
{
"beta"
,
beta
}}),
l1
,
l2
,
l3
);
return
p
;
return
p
;
}
}
};
};
test/verify/gemm_multi_3args_beta0.cpp
View file @
7e297b13
#include <migraphx/apply_alpha_beta.hpp>
#include "verify_program.hpp"
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
...
@@ -19,9 +20,7 @@ struct gemm_multi_3args_beta0 : verify_program<gemm_multi_3args_beta0>
...
@@ -19,9 +20,7 @@ struct gemm_multi_3args_beta0 : verify_program<gemm_multi_3args_beta0>
float
alpha
=
1.0
f
;
float
alpha
=
1.0
f
;
float
beta
=
0.0
f
;
float
beta
=
0.0
f
;
mm
->
add_instruction
(
migraphx
::
add_apply_alpha_beta
(
*
mm
,
{
l1
,
l2
,
l3
},
migraphx
::
make_op
(
"dot"
),
alpha
,
beta
);
migraphx
::
make_op
(
"dot"
,
{{
"alpha"
,
alpha
},
{
"beta"
,
beta
}}),
l1
,
l2
,
l3
);
return
p
;
return
p
;
}
}
};
};
test/verify/gemm_multi_3args_c25.cpp
View file @
7e297b13
#include <migraphx/apply_alpha_beta.hpp>
#include "verify_program.hpp"
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
...
@@ -19,9 +20,7 @@ struct gemm_multi_3args_c25 : verify_program<gemm_multi_3args_c25>
...
@@ -19,9 +20,7 @@ struct gemm_multi_3args_c25 : verify_program<gemm_multi_3args_c25>
auto
l3
=
mm
->
add_parameter
(
"3"
,
m3_shape
);
auto
l3
=
mm
->
add_parameter
(
"3"
,
m3_shape
);
float
alpha
=
0.35
;
float
alpha
=
0.35
;
float
beta
=
0.41
;
float
beta
=
0.41
;
mm
->
add_instruction
(
migraphx
::
add_apply_alpha_beta
(
*
mm
,
{
l1
,
l2
,
l3
},
migraphx
::
make_op
(
"dot"
),
alpha
,
beta
);
migraphx
::
make_op
(
"dot"
,
{{
"alpha"
,
alpha
},
{
"beta"
,
beta
}}),
l1
,
l2
,
l3
);
return
p
;
return
p
;
}
}
};
};
test/verify/gemm_multi_transpose.cpp
View file @
7e297b13
#include <migraphx/apply_alpha_beta.hpp>
#include "verify_program.hpp"
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
...
@@ -12,14 +13,14 @@ struct gemm_multi_transpose : verify_program<gemm_multi_transpose>
...
@@ -12,14 +13,14 @@ struct gemm_multi_transpose : verify_program<gemm_multi_transpose>
auto
*
mm
=
p
.
get_main_module
();
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
m1_shape
{
migraphx
::
shape
::
float_type
,
{
2
,
2
,
3
}};
migraphx
::
shape
m1_shape
{
migraphx
::
shape
::
float_type
,
{
2
,
2
,
3
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
float_type
,
{
3
,
2
,
4
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
float_type
,
{
3
,
2
,
4
}};
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
l1
=
mm
->
add_parameter
(
"1"
,
m1_shape
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
auto
l2
=
mm
->
add_parameter
(
"2"
,
m2_shape
);
auto
tl2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
1
,
0
,
2
}}}),
l2
);
auto
tl2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
1
,
0
,
2
}}}),
l2
);
float
alpha
=
1.0
f
;
float
alpha
=
1.0
f
;
float
beta
=
1.0
f
;
float
beta
=
1.0
f
;
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
,
{{
"alpha"
,
alpha
},
{
"beta"
,
beta
}}),
l1
,
tl2
);
migraphx
::
add_apply_alpha_beta
(
*
mm
,
{
l1
,
tl2
},
migraphx
::
make_op
(
"dot"
),
alpha
,
beta
);
return
p
;
return
p
;
}
}
};
};
test/verify/main.cpp
View file @
7e297b13
...
@@ -45,14 +45,6 @@ int main(int argc, const char* argv[])
...
@@ -45,14 +45,6 @@ int main(int argc, const char* argv[])
run_verify
rv
;
run_verify
rv
;
rv
.
add_validation_for
(
"gpu"
,
&
validate_gpu
);
rv
.
add_validation_for
(
"gpu"
,
&
validate_gpu
);
rv
.
disable_test_for
(
"cpu"
,
{
"test_if_lp"
,
"test_if_param"
,
"test_if_literal"
});
rv
.
disable_test_for
(
"cpu"
,
{
"test_if_lp"
,
"test_if_param"
,
"test_if_literal"
});
rv
.
disable_test_for
(
"gpu"
,
rv
.
disable_test_for
(
"gpu"
,
{
"test_conv_bn_add"
});
{
"batch_quant_dot_2"
,
"batch_quant_dot_3"
,
"batch_quant_dot_5"
,
"quant_dot_3args_1"
,
"quant_dot_3args_2"
,
"quant_dot_3args_3"
,
"quant_dot_3args_4"
,
"quant_dot_3args_5"
});
rv
.
run
(
argc
,
argv
);
rv
.
run
(
argc
,
argv
);
}
}
test/verify/quant_conv_int8x4_default.cpp
0 → 100644
View file @
7e297b13
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/op/quant_convolution.hpp>
struct
quant_conv_int8x4_default
:
verify_program
<
quant_conv_int8x4_default
>
{
migraphx
::
program
create_program
()
const
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
a_shape
{
migraphx
::
shape
::
int8_type
,
{
16
,
16
,
4
,
4
}};
auto
pa
=
mm
->
add_parameter
(
"a"
,
a_shape
);
migraphx
::
shape
c_shape
{
migraphx
::
shape
::
int8_type
,
{
16
,
16
,
3
,
3
}};
auto
pc
=
mm
->
add_parameter
(
"c"
,
c_shape
);
mm
->
add_instruction
(
migraphx
::
op
::
quant_convolution
{{{
0
,
0
}},
{{
1
,
1
}},
{{
1
,
1
}},
migraphx
::
op
::
same
},
pa
,
pc
);
return
p
;
}
};
test/verify/quant_dot_3args_1.cpp
View file @
7e297b13
#include "verify_program.hpp"
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/program.hpp>
#include <migraphx/apply_alpha_beta.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
...
@@ -17,7 +18,7 @@ struct quant_dot_3args_1 : verify_program<quant_dot_3args_1>
...
@@ -17,7 +18,7 @@ struct quant_dot_3args_1 : verify_program<quant_dot_3args_1>
auto
l1
=
mm
->
add_parameter
(
"a"
,
m1_shape
);
auto
l1
=
mm
->
add_parameter
(
"a"
,
m1_shape
);
auto
l2
=
mm
->
add_parameter
(
"b"
,
m2_shape
);
auto
l2
=
mm
->
add_parameter
(
"b"
,
m2_shape
);
auto
l3
=
mm
->
add_parameter
(
"c"
,
m3_shape
);
auto
l3
=
mm
->
add_parameter
(
"c"
,
m3_shape
);
m
m
->
add_instruction
(
migraphx
::
make_op
(
"quant_dot"
),
l
1
,
l2
,
l3
);
m
igraphx
::
add_apply_alpha_beta
(
*
mm
,
{
l1
,
l2
,
l3
},
migraphx
::
make_op
(
"quant_dot"
),
1
,
1
);
return
p
;
return
p
;
}
}
};
};
test/verify/quant_dot_3args_2.cpp
View file @
7e297b13
#include "verify_program.hpp"
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/program.hpp>
#include <migraphx/apply_alpha_beta.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
...
@@ -14,12 +15,12 @@ struct quant_dot_3args_2 : verify_program<quant_dot_3args_2>
...
@@ -14,12 +15,12 @@ struct quant_dot_3args_2 : verify_program<quant_dot_3args_2>
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
int8_type
,
{
8
,
7
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
int8_type
,
{
8
,
7
}};
migraphx
::
shape
m3_shape
{
migraphx
::
shape
::
int32_type
,
{
2
,
7
}};
migraphx
::
shape
m3_shape
{
migraphx
::
shape
::
int32_type
,
{
2
,
7
}};
auto
l1
=
mm
->
add_parameter
(
"a"
,
m1_shape
);
auto
l1
=
mm
->
add_parameter
(
"a"
,
m1_shape
);
auto
tl1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
1
,
0
}}}),
l1
);
auto
tl1
=
auto
l2
=
mm
->
add_
parameter
(
"b"
,
m2_shape
);
mm
->
add_
instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
1
,
0
}}}),
l1
);
auto
l
3
=
mm
->
add_parameter
(
"
c
"
,
m
3
_shape
);
auto
l
2
=
mm
->
add_parameter
(
"
b
"
,
m
2
_shape
);
mm
->
add_instruction
(
auto
l3
=
mm
->
add_parameter
(
"c"
,
m3_shape
);
migraphx
::
make_op
(
"quant_dot"
,
{{
"alpha"
,
1
},
{
"beta"
,
3
}}
),
tl
1
,
l2
,
l
3
);
migraphx
::
add_apply_alpha_beta
(
*
mm
,
{
tl1
,
l2
,
l3
},
migraphx
::
make_op
(
"quant_dot"
),
1
,
3
);
return
p
;
return
p
;
}
}
};
};
test/verify/quant_dot_3args_3.cpp
View file @
7e297b13
#include "verify_program.hpp"
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/program.hpp>
#include <migraphx/apply_alpha_beta.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
...
@@ -14,12 +15,12 @@ struct quant_dot_3args_3 : verify_program<quant_dot_3args_3>
...
@@ -14,12 +15,12 @@ struct quant_dot_3args_3 : verify_program<quant_dot_3args_3>
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
int8_type
,
{
7
,
8
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
int8_type
,
{
7
,
8
}};
migraphx
::
shape
m3_shape
{
migraphx
::
shape
::
int32_type
,
{
2
,
7
}};
migraphx
::
shape
m3_shape
{
migraphx
::
shape
::
int32_type
,
{
2
,
7
}};
auto
l1
=
mm
->
add_parameter
(
"a"
,
m1_shape
);
auto
l1
=
mm
->
add_parameter
(
"a"
,
m1_shape
);
auto
l2
=
mm
->
add_parameter
(
"b"
,
m2_shape
);
auto
l2
=
mm
->
add_parameter
(
"b"
,
m2_shape
);
auto
tl2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
1
,
0
}}}),
l2
);
auto
tl2
=
auto
l3
=
mm
->
add_
parameter
(
"c"
,
m3_shape
);
mm
->
add_
instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
1
,
0
}}}),
l2
);
mm
->
add_instruction
(
auto
l3
=
mm
->
add_parameter
(
"c"
,
m3_shape
);
migraphx
::
make_op
(
"quant_dot"
,
{{
"alpha"
,
2
},
{
"beta"
,
3
}}),
l1
,
tl
2
,
l
3
);
migraphx
::
add_apply_alpha_beta
(
*
mm
,
{
l1
,
tl2
,
l3
},
migraphx
::
make_op
(
"quant_dot"
),
2
,
3
);
return
p
;
return
p
;
}
}
};
};
test/verify/quant_dot_3args_4.cpp
View file @
7e297b13
#include "verify_program.hpp"
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/program.hpp>
#include <migraphx/apply_alpha_beta.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
...
@@ -14,13 +15,14 @@ struct quant_dot_3args_4 : verify_program<quant_dot_3args_4>
...
@@ -14,13 +15,14 @@ struct quant_dot_3args_4 : verify_program<quant_dot_3args_4>
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
int8_type
,
{
7
,
8
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
int8_type
,
{
7
,
8
}};
migraphx
::
shape
m3_shape
{
migraphx
::
shape
::
int32_type
,
{
2
,
7
}};
migraphx
::
shape
m3_shape
{
migraphx
::
shape
::
int32_type
,
{
2
,
7
}};
auto
l1
=
mm
->
add_parameter
(
"a"
,
m1_shape
);
auto
l1
=
mm
->
add_parameter
(
"a"
,
m1_shape
);
auto
tl1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
1
,
0
}}}),
l1
);
auto
tl1
=
auto
l2
=
mm
->
add_parameter
(
"b"
,
m2_shape
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
1
,
0
}}}),
l1
);
auto
tl2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
1
,
0
}}}),
l2
);
auto
l2
=
mm
->
add_parameter
(
"b"
,
m2_shape
);
auto
l3
=
mm
->
add_parameter
(
"c"
,
m3_shape
);
auto
tl2
=
mm
->
add_instruction
(
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
1
,
0
}}}),
l2
);
migraphx
::
make_op
(
"quant_dot"
,
{{
"alpha"
,
3
},
{
"beta"
,
2
}}),
tl1
,
tl2
,
l3
);
auto
l3
=
mm
->
add_parameter
(
"c"
,
m3_shape
);
migraphx
::
add_apply_alpha_beta
(
*
mm
,
{
tl1
,
tl2
,
l3
},
migraphx
::
make_op
(
"quant_dot"
),
3
,
2
);
return
p
;
return
p
;
}
}
};
};
test/verify/quant_dot_3args_5.cpp
View file @
7e297b13
#include "verify_program.hpp"
#include "verify_program.hpp"
#include <migraphx/program.hpp>
#include <migraphx/program.hpp>
#include <migraphx/apply_alpha_beta.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
...
@@ -13,11 +14,13 @@ struct quant_dot_3args_5 : verify_program<quant_dot_3args_5>
...
@@ -13,11 +14,13 @@ struct quant_dot_3args_5 : verify_program<quant_dot_3args_5>
migraphx
::
shape
m1_shape
{
migraphx
::
shape
::
int8_type
,
{
6
,
2
}};
migraphx
::
shape
m1_shape
{
migraphx
::
shape
::
int8_type
,
{
6
,
2
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
int8_type
,
{
7
,
6
}};
migraphx
::
shape
m2_shape
{
migraphx
::
shape
::
int8_type
,
{
7
,
6
}};
auto
l1
=
mm
->
add_parameter
(
"a"
,
m1_shape
);
auto
l1
=
mm
->
add_parameter
(
"a"
,
m1_shape
);
auto
tl1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
1
,
0
}}}),
l1
);
auto
tl1
=
auto
l2
=
mm
->
add_parameter
(
"b"
,
m2_shape
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
1
,
0
}}}),
l1
);
auto
tl2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"dims"
,
{
1
,
0
}}}),
l2
);
auto
l2
=
mm
->
add_parameter
(
"b"
,
m2_shape
);
mm
->
add_instruction
(
migraphx
::
make_op
(
"quant_dot"
,
{{
"alpha"
,
3
},
{
"beta"
,
2
}}),
tl1
,
tl2
);
auto
tl2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
1
,
0
}}}),
l2
);
migraphx
::
add_apply_alpha_beta
(
*
mm
,
{
tl1
,
tl2
},
migraphx
::
make_op
(
"quant_dot"
),
3
);
return
p
;
return
p
;
}
}
};
};
test/verify/run_verify.cpp
100755 → 100644
View file @
7e297b13
...
@@ -6,6 +6,7 @@
...
@@ -6,6 +6,7 @@
#include <migraphx/ref/target.hpp>
#include <migraphx/ref/target.hpp>
#include <migraphx/ranges.hpp>
#include <migraphx/ranges.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/generate.hpp>
#include <migraphx/load_save.hpp>
#include <migraphx/verify_args.hpp>
#include <migraphx/verify_args.hpp>
#include <set>
#include <set>
...
@@ -15,6 +16,7 @@
...
@@ -15,6 +16,7 @@
MIGRAPHX_DECLARE_ENV_VAR
(
MIGRAPHX_TRACE_TEST_COMPILE
)
MIGRAPHX_DECLARE_ENV_VAR
(
MIGRAPHX_TRACE_TEST_COMPILE
)
MIGRAPHX_DECLARE_ENV_VAR
(
MIGRAPHX_TRACE_TEST
)
MIGRAPHX_DECLARE_ENV_VAR
(
MIGRAPHX_TRACE_TEST
)
MIGRAPHX_DECLARE_ENV_VAR
(
MIGRAPHX_DUMP_TEST
)
// An improved async, that doesn't block
// An improved async, that doesn't block
template
<
class
Function
>
template
<
class
Function
>
...
@@ -99,7 +101,9 @@ std::pair<migraphx::program, std::vector<migraphx::argument>> run_verify::run_ta
...
@@ -99,7 +101,9 @@ std::pair<migraphx::program, std::vector<migraphx::argument>> run_verify::run_ta
for
(
auto
&&
x
:
p
.
get_parameter_shapes
())
for
(
auto
&&
x
:
p
.
get_parameter_shapes
())
{
{
if
(
m
.
count
(
x
.
first
)
==
0
)
if
(
m
.
count
(
x
.
first
)
==
0
)
{
m
[
x
.
first
]
=
t
.
allocate
(
x
.
second
);
m
[
x
.
first
]
=
t
.
allocate
(
x
.
second
);
}
}
}
validate
(
t
,
p
,
m
);
validate
(
t
,
p
,
m
);
p
.
eval
(
m
);
p
.
eval
(
m
);
...
@@ -123,7 +127,8 @@ void run_verify::verify(const std::string& name, const migraphx::program& p) con
...
@@ -123,7 +127,8 @@ void run_verify::verify(const std::string& name, const migraphx::program& p) con
using
result_future
=
using
result_future
=
std
::
future
<
std
::
pair
<
migraphx
::
program
,
std
::
vector
<
migraphx
::
argument
>>>
;
std
::
future
<
std
::
pair
<
migraphx
::
program
,
std
::
vector
<
migraphx
::
argument
>>>
;
auto_print
::
set_terminate_handler
(
name
);
auto_print
::
set_terminate_handler
(
name
);
std
::
vector
<
std
::
pair
<
std
::
string
,
result_future
>>
results
;
if
(
migraphx
::
enabled
(
MIGRAPHX_DUMP_TEST
{}))
migraphx
::
save
(
p
,
name
+
".mxr"
);
std
::
vector
<
std
::
string
>
target_names
;
std
::
vector
<
std
::
string
>
target_names
;
for
(
const
auto
&
tname
:
migraphx
::
get_targets
())
for
(
const
auto
&
tname
:
migraphx
::
get_targets
())
{
{
...
@@ -139,6 +144,7 @@ void run_verify::verify(const std::string& name, const migraphx::program& p) con
...
@@ -139,6 +144,7 @@ void run_verify::verify(const std::string& name, const migraphx::program& p) con
}
}
if
(
not
target_names
.
empty
())
if
(
not
target_names
.
empty
())
{
{
std
::
vector
<
std
::
pair
<
std
::
string
,
result_future
>>
results
;
migraphx
::
parameter_map
m
;
migraphx
::
parameter_map
m
;
for
(
auto
&&
x
:
p
.
get_parameter_shapes
())
for
(
auto
&&
x
:
p
.
get_parameter_shapes
())
{
{
...
...
Prev
1
…
29
30
31
32
33
34
35
36
37
…
39
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