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
29820def
"sgl-kernel/vscode:/vscode.git/clone" did not exist on "c0c6f543e472981022c5f25f8b9ffa8d68c49141"
Commit
29820def
authored
Sep 21, 2023
by
Paul
Browse files
Merge
parents
6aa89319
be33669b
Changes
147
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
242 additions
and
185 deletions
+242
-185
src/targets/gpu/include/migraphx/gpu/mlir.hpp
src/targets/gpu/include/migraphx/gpu/mlir.hpp
+2
-1
src/targets/gpu/jit/mlir.cpp
src/targets/gpu/jit/mlir.cpp
+1
-3
src/targets/gpu/mlir.cpp
src/targets/gpu/mlir.cpp
+9
-6
src/targets/gpu/prefuse_ops.cpp
src/targets/gpu/prefuse_ops.cpp
+21
-18
src/verify_args.cpp
src/verify_args.cpp
+19
-17
test/gpu/codegen_literal.cpp
test/gpu/codegen_literal.cpp
+1
-1
test/gpu/manage_host_buffer.cpp
test/gpu/manage_host_buffer.cpp
+2
-2
test/gpu/mlir.cpp
test/gpu/mlir.cpp
+2
-1
test/gpu/quantization.cpp
test/gpu/quantization.cpp
+6
-4
test/onnx/.onnxrt-commit
test/onnx/.onnxrt-commit
+1
-1
test/onnx/verify_onnx.cpp
test/onnx/verify_onnx.cpp
+96
-96
test/op_shape_test.cpp
test/op_shape_test.cpp
+44
-0
test/quantization.cpp
test/quantization.cpp
+8
-5
test/ref/abs.cpp
test/ref/abs.cpp
+3
-3
test/ref/acos.cpp
test/ref/acos.cpp
+3
-3
test/ref/acosh.cpp
test/ref/acosh.cpp
+3
-3
test/ref/add.cpp
test/ref/add.cpp
+7
-7
test/ref/allocate.cpp
test/ref/allocate.cpp
+1
-1
test/ref/argmax.cpp
test/ref/argmax.cpp
+7
-7
test/ref/argmin.cpp
test/ref/argmin.cpp
+6
-6
No files found.
src/targets/gpu/include/migraphx/gpu/mlir.hpp
View file @
29820def
...
@@ -49,7 +49,8 @@ MIGRAPHX_GPU_EXPORT instruction_ref insert_mlir(module& m,
...
@@ -49,7 +49,8 @@ MIGRAPHX_GPU_EXPORT instruction_ref insert_mlir(module& m,
MIGRAPHX_GPU_EXPORT
tuning_config
get_tuning_config_mlir
(
const
context
&
migraphx_ctx
,
MIGRAPHX_GPU_EXPORT
tuning_config
get_tuning_config_mlir
(
const
context
&
migraphx_ctx
,
module
m
,
module
m
,
const
std
::
vector
<
shape
>&
inputs
);
const
std
::
vector
<
shape
>&
inputs
,
bool
exhaustive
);
}
// namespace gpu
}
// namespace gpu
}
// namespace MIGRAPHX_INLINE_NS
}
// namespace MIGRAPHX_INLINE_NS
...
...
src/targets/gpu/jit/mlir.cpp
View file @
29820def
...
@@ -57,11 +57,9 @@ struct mlir_compiler : compiler<mlir_compiler>
...
@@ -57,11 +57,9 @@ struct mlir_compiler : compiler<mlir_compiler>
const
operation
&
,
const
operation
&
,
bool
exhaustive
)
const
bool
exhaustive
)
const
{
{
if
(
not
exhaustive
)
return
nullopt
;
auto
shapes
=
to_shapes
(
ins
->
inputs
());
auto
shapes
=
to_shapes
(
ins
->
inputs
());
auto
*
smod
=
ins
->
module_inputs
().
front
();
auto
*
smod
=
ins
->
module_inputs
().
front
();
return
get_tuning_config_mlir
(
ctx
,
*
smod
,
shapes
);
return
get_tuning_config_mlir
(
ctx
,
*
smod
,
shapes
,
exhaustive
);
}
}
};
};
...
...
src/targets/gpu/mlir.cpp
View file @
29820def
...
@@ -682,11 +682,12 @@ struct mlir_program
...
@@ -682,11 +682,12 @@ struct mlir_program
MIGRAPHX_THROW
(
"Failed setting tuning key: "
+
*
str
);
MIGRAPHX_THROW
(
"Failed setting tuning key: "
+
*
str
);
}
}
tuning_config
get_tuning_config
()
MIGRAPHX_TIDY_CONST
tuning_config
get_tuning_config
(
bool
exhaustive
)
MIGRAPHX_TIDY_CONST
{
{
tuning_config
tc
;
tuning_config
tc
;
run_high_level_pipeline
();
run_high_level_pipeline
();
auto
tuning_mode
=
RocmlirTuningParamSetKindFull
;
auto
tuning_mode
=
exhaustive
?
RocmlirTuningParamSetKindFull
:
RocmlirTuningParamSetKindQuick
;
if
(
enabled
(
MIGRAPHX_MLIR_TUNE_EXHAUSTIVE
{}))
if
(
enabled
(
MIGRAPHX_MLIR_TUNE_EXHAUSTIVE
{}))
tuning_mode
=
RocmlirTuningParamSetKindExhaustive
;
tuning_mode
=
RocmlirTuningParamSetKindExhaustive
;
mlir_tuning_space
params
{
mlirRockTuningSpaceCreate
(
mmodule
.
get
(),
tuning_mode
)};
mlir_tuning_space
params
{
mlirRockTuningSpaceCreate
(
mmodule
.
get
(),
tuning_mode
)};
...
@@ -914,15 +915,17 @@ instruction_ref insert_mlir(module& m,
...
@@ -914,15 +915,17 @@ instruction_ref insert_mlir(module& m,
return
m
.
insert_instruction
(
ins
,
co
,
refs
);
return
m
.
insert_instruction
(
ins
,
co
,
refs
);
}
}
tuning_config
tuning_config
get_tuning_config_mlir
(
const
context
&
migraphx_ctx
,
get_tuning_config_mlir
(
const
context
&
migraphx_ctx
,
module
m
,
const
std
::
vector
<
shape
>&
inputs
)
module
m
,
const
std
::
vector
<
shape
>&
inputs
,
bool
exhaustive
)
{
{
adjust_param_shapes
(
m
,
inputs
);
adjust_param_shapes
(
m
,
inputs
);
mlir_program
mp
;
mlir_program
mp
;
mp
.
set_gpu_properties
(
migraphx_ctx
);
mp
.
set_gpu_properties
(
migraphx_ctx
);
mp
.
parse
(
m
);
mp
.
parse
(
m
);
return
mp
.
get_tuning_config
();
return
mp
.
get_tuning_config
(
exhaustive
);
}
}
#else
#else
...
@@ -951,7 +954,7 @@ insert_mlir(module& m, instruction_ref, code_object_op co, const std::vector<ins
...
@@ -951,7 +954,7 @@ insert_mlir(module& m, instruction_ref, code_object_op co, const std::vector<ins
return
m
.
end
();
return
m
.
end
();
}
}
tuning_config
get_tuning_config_mlir
(
const
context
&
,
module
,
const
std
::
vector
<
shape
>&
)
tuning_config
get_tuning_config_mlir
(
const
context
&
,
module
,
const
std
::
vector
<
shape
>&
,
bool
)
{
{
return
{};
return
{};
}
}
...
...
src/targets/gpu/prefuse_ops.cpp
View file @
29820def
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
* THE SOFTWARE.
*/
*/
#include <migraphx/permutation.hpp>
#include <migraphx/gpu/prefuse_ops.hpp>
#include <migraphx/gpu/prefuse_ops.hpp>
#include <migraphx/match/layernorm.hpp>
#include <migraphx/match/layernorm.hpp>
#include <migraphx/check_shapes.hpp>
#include <migraphx/check_shapes.hpp>
...
@@ -45,40 +46,42 @@ struct layernorm_base
...
@@ -45,40 +46,42 @@ struct layernorm_base
}
}
shape
compute_shape
(
std
::
vector
<
shape
>
inputs
,
std
::
vector
<
module_ref
>
mods
)
const
shape
compute_shape
(
std
::
vector
<
shape
>
inputs
,
std
::
vector
<
module_ref
>
mods
)
const
{
{
std
::
size_t
nargs
=
1
;
std
::
size_t
nargs
=
N
;
if
(
not
mods
.
empty
())
if
(
not
mods
.
empty
())
{
{
auto
*
pm
=
mods
.
front
();
auto
*
pm
=
mods
.
front
();
nargs
=
pm
->
get_parameter_names
().
size
();
nargs
+
=
pm
->
get_parameter_names
().
size
()
-
1
;
}
}
check_shapes
{
inputs
,
static_cast
<
const
Derived
&>
(
*
this
)}.
has
(
nargs
+
N
);
check_shapes
{
inputs
,
static_cast
<
const
Derived
&>
(
*
this
)}.
has
(
nargs
);
auto
s
=
inputs
.
a
t
(
0
);
auto
s
=
inputs
.
fron
t
();
auto
t
=
s
.
type
();
auto
t
=
s
.
type
();
if
(
not
mods
.
empty
())
if
(
not
mods
.
empty
())
t
=
mods
.
front
()
->
get_output_shapes
().
front
().
type
();
t
=
mods
.
front
()
->
get_output_shapes
().
front
().
type
();
if
(
s
.
scalar
())
{
// Scalar output if all inputs are scalar
return
s
;
if
(
inputs
.
front
().
elements
()
==
1
and
}
all_of
(
inputs
,
[](
const
auto
&
ss
)
{
return
ss
.
scalar
();
}))
else
if
(
s
.
broadcasted
())
return
inputs
.
front
();
{
auto
l_s
=
shape
::
from_permutation
(
return
{
t
,
s
.
lens
()};
t
,
s
.
lens
(),
find_permutation
(
std
::
vector
<
shape
>
(
inputs
.
begin
(),
inputs
.
begin
()
+
N
)));
}
// just prelayernorm or preadd_layernorm
else
if
(
nargs
<=
N
)
{
return
l_s
;
return
s
.
with_lens
(
t
,
s
.
lens
());
// else, layernorm + pointwise fusion, preserve layout of fused op
}
std
::
vector
<
shape
>
lp_s
(
inputs
.
begin
()
+
N
,
inputs
.
end
());
lp_s
.
insert
(
lp_s
.
begin
(),
l_s
);
return
shape
::
from_permutation
(
t
,
s
.
lens
(),
find_permutation
(
lp_s
));
}
}
};
};
struct
layernorm
:
layernorm_base
<
layernorm
,
0
>
struct
layernorm
:
layernorm_base
<
layernorm
,
1
>
{
{
std
::
string
name
()
const
{
return
"gpu::prelayernorm"
;
}
std
::
string
name
()
const
{
return
"gpu::prelayernorm"
;
}
};
};
MIGRAPHX_REGISTER_OP
(
layernorm
);
MIGRAPHX_REGISTER_OP
(
layernorm
);
struct
add_layernorm
:
layernorm_base
<
add_layernorm
,
1
>
struct
add_layernorm
:
layernorm_base
<
add_layernorm
,
2
>
{
{
std
::
string
name
()
const
{
return
"gpu::preadd_layernorm"
;
}
std
::
string
name
()
const
{
return
"gpu::preadd_layernorm"
;
}
};
};
...
...
src/verify_args.cpp
View file @
29820def
...
@@ -28,19 +28,20 @@ namespace migraphx {
...
@@ -28,19 +28,20 @@ namespace migraphx {
inline
namespace
MIGRAPHX_INLINE_NS
{
inline
namespace
MIGRAPHX_INLINE_NS
{
bool
verify_args
(
const
std
::
string
&
name
,
bool
verify_args
(
const
std
::
string
&
name
,
const
argument
&
ref_arg
,
const
argument
&
target_arg
,
const
argument
&
target_arg
,
double
tolerance
)
const
verify
::
expected
<
argument
>&
ref_arg
,
verify
::
tolerance
tols
)
{
{
bool
passed
=
true
;
bool
passed
=
true
;
visit_all
(
ref_arg
,
target_arg
)([
&
](
auto
ref
,
auto
target
)
{
visit_all
(
ref_arg
.
data
(),
target_arg
)([
&
](
auto
ref
,
auto
target
)
{
double
error
;
double
rms_error
;
passed
=
verify
::
verify_range
(
ref
,
target
,
tolerance
,
&
error
);
passed
=
verify
::
verify_range_with_tolerance
(
target
,
verify
::
expected
{
ref
},
tols
,
&
rms_error
);
if
(
not
passed
)
if
(
not
passed
)
{
{
// TODO: Check for nans
// TODO: Check for nans
std
::
cout
<<
"FAILED: "
<<
name
<<
std
::
endl
;
std
::
cout
<<
"FAILED: "
<<
name
<<
std
::
endl
;
std
::
cout
<<
"
e
rror: "
<<
error
<<
std
::
endl
;
std
::
cout
<<
"
RMS E
rror: "
<<
rms_
error
<<
std
::
endl
;
if
(
ref
.
size
()
<
32
)
if
(
ref
.
size
()
<
32
)
std
::
cout
<<
"ref:"
<<
ref
<<
std
::
endl
;
std
::
cout
<<
"ref:"
<<
ref
<<
std
::
endl
;
if
(
target
.
size
()
<
32
)
if
(
target
.
size
()
<
32
)
...
@@ -78,16 +79,6 @@ bool verify_args(const std::string& name,
...
@@ -78,16 +79,6 @@ bool verify_args(const std::string& name,
if
(
verify
::
range_zero
(
target
))
if
(
verify
::
range_zero
(
target
))
std
::
cout
<<
"Target data is all zeros"
<<
std
::
endl
;
std
::
cout
<<
"Target data is all zeros"
<<
std
::
endl
;
// auto mxdiff = max_diff(ref, target);
// std::cout << "Max diff: " << mxdiff << std::endl;
// auto idx = mismatch_idx(ref, target, float_equal);
// if(idx < verify::range_distance(ref))
// {
// std::cout << "Mismatch at " << idx << ": " << ref[idx] << " != " << target[idx]
// << std::endl;
// }
auto
ref_nan_idx
=
find_idx
(
ref
,
verify
::
not_finite
);
auto
ref_nan_idx
=
find_idx
(
ref
,
verify
::
not_finite
);
if
(
ref_nan_idx
>=
0
)
if
(
ref_nan_idx
>=
0
)
std
::
cout
<<
"Non finite number found in ref at "
<<
ref_nan_idx
<<
": "
std
::
cout
<<
"Non finite number found in ref at "
<<
ref_nan_idx
<<
": "
...
@@ -97,11 +88,22 @@ bool verify_args(const std::string& name,
...
@@ -97,11 +88,22 @@ bool verify_args(const std::string& name,
if
(
target_nan_idx
>=
0
)
if
(
target_nan_idx
>=
0
)
std
::
cout
<<
"Non finite number found in target at "
<<
target_nan_idx
<<
": "
std
::
cout
<<
"Non finite number found in target at "
<<
target_nan_idx
<<
": "
<<
target
[
target_nan_idx
]
<<
std
::
endl
;
<<
target
[
target_nan_idx
]
<<
std
::
endl
;
//
std::cout << std::endl;
std
::
cout
<<
"MIGraphX verification passed successfully."
<<
std
::
endl
;
}
}
});
});
return
passed
;
return
passed
;
}
}
bool
verify_args_with_tolerance
(
const
std
::
string
&
name
,
const
argument
&
target_arg
,
const
verify
::
expected
<
argument
>&
ref_arg
,
std
::
size_t
tolerance
)
{
double
rms_tol
=
0.001
;
target_arg
.
visit
([
&
](
auto
ta
)
{
rms_tol
=
verify
::
get_rms_tol
(
ta
,
tolerance
);
});
verify
::
tolerance
tols
{
rms_tol
};
return
verify_args
(
name
,
target_arg
,
ref_arg
,
tols
);
}
}
// namespace MIGRAPHX_INLINE_NS
}
// namespace MIGRAPHX_INLINE_NS
}
// namespace migraphx
}
// namespace migraphx
test/gpu/codegen_literal.cpp
View file @
29820def
...
@@ -80,7 +80,7 @@ TEST_CASE(mul_literal_round_test)
...
@@ -80,7 +80,7 @@ TEST_CASE(mul_literal_round_test)
migraphx
::
target
gpu_t
=
migraphx
::
make_target
(
"gpu"
);
migraphx
::
target
gpu_t
=
migraphx
::
make_target
(
"gpu"
);
run_prog
(
p
,
gpu_t
,
m
,
gpu_result
);
run_prog
(
p
,
gpu_t
,
m
,
gpu_result
);
EXPECT
(
migraphx
::
verify
::
verify_range
(
ref
_result
,
gpu
_result
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
gpu
_result
,
ref
_result
));
}
}
int
main
(
int
argc
,
const
char
*
argv
[])
{
test
::
run
(
argc
,
argv
);
}
int
main
(
int
argc
,
const
char
*
argv
[])
{
test
::
run
(
argc
,
argv
);
}
test/gpu/manage_host_buffer.cpp
View file @
29820def
...
@@ -53,7 +53,6 @@ TEST_CASE(host_same_buffer_copy)
...
@@ -53,7 +53,6 @@ TEST_CASE(host_same_buffer_copy)
migraphx
::
parameter_map
pp
;
migraphx
::
parameter_map
pp
;
std
::
vector
<
float
>
a_vec
(
ss
.
elements
(),
-
1
);
std
::
vector
<
float
>
a_vec
(
ss
.
elements
(),
-
1
);
std
::
vector
<
float
>
b_vec
(
ss
.
elements
(),
2
);
std
::
vector
<
float
>
b_vec
(
ss
.
elements
(),
2
);
std
::
vector
<
float
>
c_vec
(
ss
.
elements
(),
0
);
pp
[
"a"
]
=
migraphx
::
argument
(
ss
,
a_vec
.
data
());
pp
[
"a"
]
=
migraphx
::
argument
(
ss
,
a_vec
.
data
());
pp
[
"b"
]
=
migraphx
::
argument
(
ss
,
b_vec
.
data
());
pp
[
"b"
]
=
migraphx
::
argument
(
ss
,
b_vec
.
data
());
std
::
vector
<
float
>
gpu_result
;
std
::
vector
<
float
>
gpu_result
;
...
@@ -64,7 +63,8 @@ TEST_CASE(host_same_buffer_copy)
...
@@ -64,7 +63,8 @@ TEST_CASE(host_same_buffer_copy)
auto
result
=
p
.
eval
(
pp
).
back
();
auto
result
=
p
.
eval
(
pp
).
back
();
std
::
vector
<
float
>
results_vector
(
ss
.
elements
(),
-
1
);
std
::
vector
<
float
>
results_vector
(
ss
.
elements
(),
-
1
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
c_vec
,
results_vector
));
std
::
vector
<
float
>
gold_vec
(
ss
.
elements
(),
0
);
EXPECT
(
migraphx
::
verify
::
verify_rms_range
(
results_vector
,
gold_vec
));
}
}
TEST_CASE
(
arguments_lifetime
)
TEST_CASE
(
arguments_lifetime
)
...
...
test/gpu/mlir.cpp
View file @
29820def
...
@@ -133,7 +133,8 @@ bool verify_mlir(const migraphx::module& mmlir)
...
@@ -133,7 +133,8 @@ bool verify_mlir(const migraphx::module& mmlir)
auto
inputs
=
generate_params
(
ref
);
auto
inputs
=
generate_params
(
ref
);
auto
mlir
=
create_program_from_mlir
(
mmlir
);
auto
mlir
=
create_program_from_mlir
(
mmlir
);
return
migraphx
::
verify_args
(
"mlir"
,
run_ref
(
ref
,
inputs
),
run_gpu
(
mlir
,
inputs
));
return
migraphx
::
verify_args_with_tolerance
(
"mlir"
,
run_gpu
(
mlir
,
inputs
),
migraphx
::
verify
::
expected
{
run_ref
(
ref
,
inputs
)});
}
}
TEST_CASE
(
conv
)
TEST_CASE
(
conv
)
...
...
test/gpu/quantization.cpp
View file @
29820def
...
@@ -40,7 +40,6 @@
...
@@ -40,7 +40,6 @@
TEST_CASE
(
gpu_target_copy
)
TEST_CASE
(
gpu_target_copy
)
{
{
migraphx
::
target
gpu_t
=
migraphx
::
make_target
(
"gpu"
);
migraphx
::
target
gpu_t
=
migraphx
::
make_target
(
"gpu"
);
migraphx
::
target
ref_t
=
migraphx
::
make_target
(
"ref"
);
migraphx
::
shape
s
{
migraphx
::
shape
::
int8_type
,
{
2
,
3
,
4
,
5
}};
migraphx
::
shape
s
{
migraphx
::
shape
::
int8_type
,
{
2
,
3
,
4
,
5
}};
auto
ref_arg_orig
=
migraphx
::
generate_argument
(
s
,
0x123456L
);
auto
ref_arg_orig
=
migraphx
::
generate_argument
(
s
,
0x123456L
);
...
@@ -52,7 +51,7 @@ TEST_CASE(gpu_target_copy)
...
@@ -52,7 +51,7 @@ TEST_CASE(gpu_target_copy)
std
::
vector
<
int8_t
>
val_final
;
std
::
vector
<
int8_t
>
val_final
;
ref_arg_final
.
visit
([
&
](
auto
v
)
{
val_final
.
assign
(
v
.
begin
(),
v
.
end
());
});
ref_arg_final
.
visit
([
&
](
auto
v
)
{
val_final
.
assign
(
v
.
begin
(),
v
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
val_orig
,
val_final
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
val_orig
,
val_final
));
}
}
TEST_CASE
(
int8_quantization
)
TEST_CASE
(
int8_quantization
)
...
@@ -118,9 +117,12 @@ TEST_CASE(int8_quantization)
...
@@ -118,9 +117,12 @@ TEST_CASE(int8_quantization)
// the regular pipeline uses the rewrite_quantization in the much
// the regular pipeline uses the rewrite_quantization in the much
// earlier stage.
// earlier stage.
if
(
migraphx
::
gpu
::
mlir_enabled
())
if
(
migraphx
::
gpu
::
mlir_enabled
())
EXPECT
(
migraphx
::
verify
::
verify_range
(
ref_result
,
gpu_result
,
1e5
));
EXPECT
(
migraphx
::
verify
::
verify_range_with_tolerance
(
gpu_result
,
migraphx
::
verify
::
expected
{
ref_result
},
migraphx
::
verify
::
tolerance
{
0.01
}));
else
else
EXPECT
(
migraphx
::
verify
::
verify_range
(
ref
_result
,
gpu
_result
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
gpu
_result
,
ref
_result
));
}
}
}
}
...
...
test/onnx/.onnxrt-commit
View file @
29820def
ae74a517b62baa6d973e46b5b51ac9a640512c46
377f959c69e9f213cd4a8c71a5e80162a412989a
test/onnx/verify_onnx.cpp
View file @
29820def
...
@@ -47,7 +47,7 @@ TEST_CASE(averagepool_notset_test)
...
@@ -47,7 +47,7 @@ TEST_CASE(averagepool_notset_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
12
};
std
::
vector
<
float
>
gold
=
{
12
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
averagepool_nt_cip_test
)
TEST_CASE
(
averagepool_nt_cip_test
)
...
@@ -65,7 +65,7 @@ TEST_CASE(averagepool_nt_cip_test)
...
@@ -65,7 +65,7 @@ TEST_CASE(averagepool_nt_cip_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
8.33333
};
std
::
vector
<
float
>
gold
=
{
8.33333
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
batch_norm_flat_test
)
TEST_CASE
(
batch_norm_flat_test
)
...
@@ -76,15 +76,15 @@ TEST_CASE(batch_norm_flat_test)
...
@@ -76,15 +76,15 @@ TEST_CASE(batch_norm_flat_test)
migraphx
::
shape
x_shape
{
migraphx
::
shape
::
float_type
,
{
10
}};
migraphx
::
shape
x_shape
{
migraphx
::
shape
::
float_type
,
{
10
}};
migraphx
::
shape
c_shape
(
migraphx
::
shape
::
float_type
,
{
1
});
migraphx
::
shape
c_shape
(
migraphx
::
shape
::
float_type
,
{
1
});
std
::
vector
<
float
>
x_data
=
{
1.6524342
,
std
::
vector
<
float
>
x_data
=
{
1.6524342
,
-
0.51048076
,
-
0.51048076
,
0.32543048
,
0.32543048
,
2.4410043
,
2.4410043
,
2.0833702
,
2.0833702
,
0.44981122
,
0.44981122
,
1.0044622
,
1.0044622
,
-
0.24006313
,
-
0.24006313
,
-
0.43065986
,
-
0.43065986
,
0.07626268
};
0.07626268
};
std
::
vector
<
float
>
scale_data
=
{
-
0.02927135
};
std
::
vector
<
float
>
scale_data
=
{
-
0.02927135
};
std
::
vector
<
float
>
bias_data
=
{
0.42347777
};
std
::
vector
<
float
>
bias_data
=
{
0.42347777
};
std
::
vector
<
float
>
mean_data
=
{
-
0.00449735
};
std
::
vector
<
float
>
mean_data
=
{
-
0.00449735
};
...
@@ -111,7 +111,7 @@ TEST_CASE(batch_norm_flat_test)
...
@@ -111,7 +111,7 @@ TEST_CASE(batch_norm_flat_test)
0.43305403
,
0.43305403
,
0.4408022
,
0.4408022
,
0.42019472
};
0.42019472
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
batch_norm_rank_2_test
)
TEST_CASE
(
batch_norm_rank_2_test
)
...
@@ -148,7 +148,7 @@ TEST_CASE(batch_norm_rank_2_test)
...
@@ -148,7 +148,7 @@ TEST_CASE(batch_norm_rank_2_test)
9.89948504
,
9.89948504
,
9.89948504
,
9.89948504
,
12.72790933
};
12.72790933
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
batch_norm_1d_test
)
TEST_CASE
(
batch_norm_1d_test
)
...
@@ -184,7 +184,7 @@ TEST_CASE(batch_norm_1d_test)
...
@@ -184,7 +184,7 @@ TEST_CASE(batch_norm_1d_test)
0.4927
,
0.771
,
-
1.956
,
-
2.123
,
-
0.664
,
-
0.583
,
-
0.7207
,
-
0.5127
};
0.4927
,
0.771
,
-
1.956
,
-
2.123
,
-
0.664
,
-
0.583
,
-
0.7207
,
-
0.5127
};
std
::
vector
<
migraphx
::
half
>
gold
{
tmp
.
cbegin
(),
tmp
.
cend
()};
std
::
vector
<
migraphx
::
half
>
gold
{
tmp
.
cbegin
(),
tmp
.
cend
()};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
batch_norm_2d_test
)
TEST_CASE
(
batch_norm_2d_test
)
...
@@ -250,7 +250,7 @@ TEST_CASE(batch_norm_2d_test)
...
@@ -250,7 +250,7 @@ TEST_CASE(batch_norm_2d_test)
-
2.76707697e+00
,
1.47579327e+01
,
4.94736385e+00
,
2.68847847e+01
,
-
6.49254417e+00
,
-
2.76707697e+00
,
1.47579327e+01
,
4.94736385e+00
,
2.68847847e+01
,
-
6.49254417e+00
,
1.94286156e+00
,
-
7.19223642e+00
,
-
3.70413971e+00
,
-
4.04303551e-01
,
-
1.01827660e+01
,
1.94286156e+00
,
-
7.19223642e+00
,
-
3.70413971e+00
,
-
4.04303551e-01
,
-
1.01827660e+01
,
1.49476433e+00
};
1.49476433e+00
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
batch_norm_3d_test
)
TEST_CASE
(
batch_norm_3d_test
)
...
@@ -292,7 +292,7 @@ TEST_CASE(batch_norm_3d_test)
...
@@ -292,7 +292,7 @@ TEST_CASE(batch_norm_3d_test)
6.098
,
11.03
,
2.81
,
2.81
,
2.81
,
12.125
,
3.143
,
8.53
,
17.52
,
4.938
,
15.71
,
6.098
,
11.03
,
2.81
,
2.81
,
2.81
,
12.125
,
3.143
,
8.53
,
17.52
,
4.938
,
15.71
,
1.347
,
4.938
,
1.167
,
6.098
,
12.67
,
12.67
,
4.453
,
4.453
,
-
0.4768
,
12.67
};
1.347
,
4.938
,
1.167
,
6.098
,
12.67
,
12.67
,
4.453
,
4.453
,
-
0.4768
,
12.67
};
std
::
vector
<
migraphx
::
half
>
gold
{
tmp
.
cbegin
(),
tmp
.
cend
()};
std
::
vector
<
migraphx
::
half
>
gold
{
tmp
.
cbegin
(),
tmp
.
cend
()};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
celu_verify_test
)
TEST_CASE
(
celu_verify_test
)
...
@@ -309,12 +309,12 @@ TEST_CASE(celu_verify_test)
...
@@ -309,12 +309,12 @@ TEST_CASE(celu_verify_test)
std
::
vector
<
float
>
result_vector
;
std
::
vector
<
float
>
result_vector
;
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
correct
(
6
);
std
::
vector
<
float
>
gold
(
6
);
float
alpha
=
0.5
;
float
alpha
=
0.5
;
std
::
transform
(
data
.
begin
(),
data
.
end
(),
correct
.
begin
(),
[
&
](
auto
x
)
{
std
::
transform
(
data
.
begin
(),
data
.
end
(),
gold
.
begin
(),
[
&
](
auto
x
)
{
return
std
::
max
(
0.0
f
,
x
)
+
std
::
min
(
0.0
f
,
alpha
*
std
::
expm1
(
x
/
alpha
));
return
std
::
max
(
0.0
f
,
x
)
+
std
::
min
(
0.0
f
,
alpha
*
std
::
expm1
(
x
/
alpha
));
});
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
correct
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
clip_args_type_mismatch
)
TEST_CASE
(
clip_args_type_mismatch
)
...
@@ -330,7 +330,7 @@ TEST_CASE(clip_args_type_mismatch)
...
@@ -330,7 +330,7 @@ TEST_CASE(clip_args_type_mismatch)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
1.5
,
2
,
2
,
1.9
,
2.5
,
3
,
2.9
,
3.2
,
3.7
};
std
::
vector
<
float
>
gold
=
{
1.5
,
2
,
2
,
1.9
,
2.5
,
3
,
2.9
,
3.2
,
3.7
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
depthtospace_simple_test
)
TEST_CASE
(
depthtospace_simple_test
)
...
@@ -348,7 +348,7 @@ TEST_CASE(depthtospace_simple_test)
...
@@ -348,7 +348,7 @@ TEST_CASE(depthtospace_simple_test)
std
::
vector
<
float
>
gold
=
{
0
,
12
,
1
,
13
,
2
,
14
,
24
,
36
,
25
,
37
,
26
,
38
,
3
,
15
,
4
,
16
,
std
::
vector
<
float
>
gold
=
{
0
,
12
,
1
,
13
,
2
,
14
,
24
,
36
,
25
,
37
,
26
,
38
,
3
,
15
,
4
,
16
,
5
,
17
,
27
,
39
,
28
,
40
,
29
,
41
,
6
,
18
,
7
,
19
,
8
,
20
,
30
,
42
,
5
,
17
,
27
,
39
,
28
,
40
,
29
,
41
,
6
,
18
,
7
,
19
,
8
,
20
,
30
,
42
,
31
,
43
,
32
,
44
,
9
,
21
,
10
,
22
,
11
,
23
,
33
,
45
,
34
,
46
,
35
,
47
};
31
,
43
,
32
,
44
,
9
,
21
,
10
,
22
,
11
,
23
,
33
,
45
,
34
,
46
,
35
,
47
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
spacetodepth_simple_test
)
TEST_CASE
(
spacetodepth_simple_test
)
...
@@ -366,7 +366,7 @@ TEST_CASE(spacetodepth_simple_test)
...
@@ -366,7 +366,7 @@ TEST_CASE(spacetodepth_simple_test)
std
::
vector
<
float
>
gold
=
{
0
,
2
,
4
,
12
,
14
,
16
,
24
,
26
,
28
,
36
,
38
,
40
,
1
,
3
,
5
,
13
,
std
::
vector
<
float
>
gold
=
{
0
,
2
,
4
,
12
,
14
,
16
,
24
,
26
,
28
,
36
,
38
,
40
,
1
,
3
,
5
,
13
,
15
,
17
,
25
,
27
,
29
,
37
,
39
,
41
,
6
,
8
,
10
,
18
,
20
,
22
,
30
,
32
,
15
,
17
,
25
,
27
,
29
,
37
,
39
,
41
,
6
,
8
,
10
,
18
,
20
,
22
,
30
,
32
,
34
,
42
,
44
,
46
,
7
,
9
,
11
,
19
,
21
,
23
,
31
,
33
,
35
,
43
,
45
,
47
};
34
,
42
,
44
,
46
,
7
,
9
,
11
,
19
,
21
,
23
,
31
,
33
,
35
,
43
,
45
,
47
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
spacetodepth_depthtospace_test
)
TEST_CASE
(
spacetodepth_depthtospace_test
)
...
@@ -374,11 +374,11 @@ TEST_CASE(spacetodepth_depthtospace_test)
...
@@ -374,11 +374,11 @@ TEST_CASE(spacetodepth_depthtospace_test)
// space to depth
// space to depth
auto
p1
=
migraphx
::
parse_onnx
(
"spacetodepth_simple_test.onnx"
);
auto
p1
=
migraphx
::
parse_onnx
(
"spacetodepth_simple_test.onnx"
);
p1
.
compile
(
migraphx
::
make_target
(
"ref"
));
p1
.
compile
(
migraphx
::
make_target
(
"ref"
));
std
::
vector
<
float
>
data_in
(
48
);
std
::
vector
<
float
>
gold_
data_in
(
48
);
std
::
iota
(
std
::
begin
(
data_in
),
std
::
end
(
data_in
),
0
);
std
::
iota
(
std
::
begin
(
gold_
data_in
),
std
::
end
(
gold_
data_in
),
0
);
migraphx
::
shape
s_x_1
{
migraphx
::
shape
::
float_type
,
{
1
,
2
,
4
,
6
}};
migraphx
::
shape
s_x_1
{
migraphx
::
shape
::
float_type
,
{
1
,
2
,
4
,
6
}};
migraphx
::
parameter_map
pp1
;
migraphx
::
parameter_map
pp1
;
pp1
[
"x"
]
=
migraphx
::
argument
(
s_x_1
,
data_in
.
data
());
pp1
[
"x"
]
=
migraphx
::
argument
(
s_x_1
,
gold_
data_in
.
data
());
auto
result1
=
p1
.
eval
(
pp1
).
back
();
auto
result1
=
p1
.
eval
(
pp1
).
back
();
// depth to space
// depth to space
auto
p2
=
migraphx
::
parse_onnx
(
"depthtospace_simple_test.onnx"
);
auto
p2
=
migraphx
::
parse_onnx
(
"depthtospace_simple_test.onnx"
);
...
@@ -388,7 +388,7 @@ TEST_CASE(spacetodepth_depthtospace_test)
...
@@ -388,7 +388,7 @@ TEST_CASE(spacetodepth_depthtospace_test)
auto
result2
=
p2
.
eval
(
pp2
).
back
();
auto
result2
=
p2
.
eval
(
pp2
).
back
();
std
::
vector
<
float
>
result_vector2
;
std
::
vector
<
float
>
result_vector2
;
result2
.
visit
([
&
](
auto
output
)
{
result_vector2
.
assign
(
output
.
begin
(),
output
.
end
());
});
result2
.
visit
([
&
](
auto
output
)
{
result_vector2
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector2
,
data_in
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector2
,
gold_
data_in
));
}
}
TEST_CASE
(
eyelike_verify_test
)
TEST_CASE
(
eyelike_verify_test
)
...
@@ -405,8 +405,8 @@ TEST_CASE(eyelike_verify_test)
...
@@ -405,8 +405,8 @@ TEST_CASE(eyelike_verify_test)
std
::
vector
<
float
>
result_vector
;
std
::
vector
<
float
>
result_vector
;
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
eyelike_mat
=
{
0.
,
1.
,
0.
,
0.
,
0.
,
0.
,
1.
,
0.
,
0.
,
0.
,
0.
,
1.
};
std
::
vector
<
float
>
gold_
eyelike_mat
=
{
0.
,
1.
,
0.
,
0.
,
0.
,
0.
,
1.
,
0.
,
0.
,
0.
,
0.
,
1.
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
eyelike_mat
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold_
eyelike_mat
));
}
}
TEST_CASE
(
eyelike_verify_negk_test
)
TEST_CASE
(
eyelike_verify_negk_test
)
...
@@ -423,8 +423,8 @@ TEST_CASE(eyelike_verify_negk_test)
...
@@ -423,8 +423,8 @@ TEST_CASE(eyelike_verify_negk_test)
std
::
vector
<
float
>
result_vector
;
std
::
vector
<
float
>
result_vector
;
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
eyelike_mat
=
{
0.
,
0.
,
0.
,
0.
,
0.
,
0.
,
0.
,
0.
,
1.
,
0.
,
0.
,
0.
};
std
::
vector
<
float
>
gold_
eyelike_mat
=
{
0.
,
0.
,
0.
,
0.
,
0.
,
0.
,
0.
,
0.
,
1.
,
0.
,
0.
,
0.
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
eyelike_mat
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold_
eyelike_mat
));
}
}
TEST_CASE
(
gather_elements
)
TEST_CASE
(
gather_elements
)
...
@@ -447,7 +447,7 @@ TEST_CASE(gather_elements)
...
@@ -447,7 +447,7 @@ TEST_CASE(gather_elements)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
-
0.125
,
0.5625
,
-
0.9375
,
0.25
,
0.5625
,
0.9375
};
std
::
vector
<
float
>
gold
=
{
-
0.125
,
0.5625
,
-
0.9375
,
0.25
,
0.5625
,
0.9375
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
gemm_test
)
TEST_CASE
(
gemm_test
)
...
@@ -491,7 +491,7 @@ TEST_CASE(gemm_test)
...
@@ -491,7 +491,7 @@ TEST_CASE(gemm_test)
0.8098607
,
1.2157929
,
1.1010075
,
1.0706307
,
1.0429881
,
1.1771785
,
1.2362702
,
0.8098607
,
1.2157929
,
1.1010075
,
1.0706307
,
1.0429881
,
1.1771785
,
1.2362702
,
0.8239243
,
1.1112559
,
0.9639262
,
1.0813537
,
0.8825792
,
1.121141
,
1.1885703
,
0.8239243
,
1.1112559
,
0.9639262
,
1.0813537
,
0.8825792
,
1.121141
,
1.1885703
,
1.2227502
,
1.4568202
,
1.1388762
,
1.55058
,
1.0958102
,
1.4637487
,
1.5756242
};
1.2227502
,
1.4568202
,
1.1388762
,
1.55058
,
1.0958102
,
1.4637487
,
1.5756242
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
gemm_half_test
)
TEST_CASE
(
gemm_half_test
)
...
@@ -535,7 +535,7 @@ TEST_CASE(gemm_half_test)
...
@@ -535,7 +535,7 @@ TEST_CASE(gemm_half_test)
2.143
,
2.062
,
1.921
,
1.836
,
2.203
,
1.952
,
1.055
,
1.225
,
1.418
,
1.209
,
1.155
,
2.143
,
2.062
,
1.921
,
1.836
,
2.203
,
1.952
,
1.055
,
1.225
,
1.418
,
1.209
,
1.155
,
1.42
,
1.234
,
1.302
,
1.593
,
1.368
,
1.289
,
1.327
,
1.451
,
1.394
};
1.42
,
1.234
,
1.302
,
1.593
,
1.368
,
1.289
,
1.327
,
1.451
,
1.394
};
std
::
vector
<
migraphx
::
half
>
gold
{
tmp
.
cbegin
(),
tmp
.
cend
()};
std
::
vector
<
migraphx
::
half
>
gold
{
tmp
.
cbegin
(),
tmp
.
cend
()};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
greaterorequal_test
)
TEST_CASE
(
greaterorequal_test
)
...
@@ -556,7 +556,7 @@ TEST_CASE(greaterorequal_test)
...
@@ -556,7 +556,7 @@ TEST_CASE(greaterorequal_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
1.0
,
1.0
,
0.0
};
std
::
vector
<
float
>
gold
=
{
1.0
,
1.0
,
0.0
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
hardsigmoid_verify_test
)
TEST_CASE
(
hardsigmoid_verify_test
)
...
@@ -580,7 +580,7 @@ TEST_CASE(hardsigmoid_verify_test)
...
@@ -580,7 +580,7 @@ TEST_CASE(hardsigmoid_verify_test)
std
::
transform
(
data
.
begin
(),
data
.
end
(),
gold
.
begin
(),
[
&
](
auto
x
)
{
std
::
transform
(
data
.
begin
(),
data
.
end
(),
gold
.
begin
(),
[
&
](
auto
x
)
{
return
std
::
max
(
0.0
f
,
std
::
min
(
x
*
alpha
+
beta
,
1.0
f
));
return
std
::
max
(
0.0
f
,
std
::
min
(
x
*
alpha
+
beta
,
1.0
f
));
});
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
if_else_test
)
TEST_CASE
(
if_else_test
)
...
@@ -602,7 +602,7 @@ TEST_CASE(if_else_test)
...
@@ -602,7 +602,7 @@ TEST_CASE(if_else_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
0.0866565
,
-
0.371067
,
0.017719
,
0.0250614
,
0.0612539
,
-
0.744683
};
std
::
vector
<
float
>
gold
=
{
0.0866565
,
-
0.371067
,
0.017719
,
0.0250614
,
0.0612539
,
-
0.744683
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
if_else_test_inlined
)
TEST_CASE
(
if_else_test_inlined
)
...
@@ -621,7 +621,7 @@ TEST_CASE(if_else_test_inlined)
...
@@ -621,7 +621,7 @@ TEST_CASE(if_else_test_inlined)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
0.0507132
,
-
0.712328
,
0.0105797
,
0.04569
,
0.0185013
,
-
1.16472
};
std
::
vector
<
float
>
gold
=
{
0.0507132
,
-
0.712328
,
0.0105797
,
0.04569
,
0.0185013
,
-
1.16472
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
if_then_test
)
TEST_CASE
(
if_then_test
)
...
@@ -644,7 +644,7 @@ TEST_CASE(if_then_test)
...
@@ -644,7 +644,7 @@ TEST_CASE(if_then_test)
// onnx adds ones so result should be just + 1.0
// onnx adds ones so result should be just + 1.0
std
::
vector
<
float
>
gold
=
{
1.0625
,
1.75
,
0.9375
,
1.125
,
0.875
,
0.4375
};
std
::
vector
<
float
>
gold
=
{
1.0625
,
1.75
,
0.9375
,
1.125
,
0.875
,
0.4375
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
if_then_test_inlined
)
TEST_CASE
(
if_then_test_inlined
)
...
@@ -663,7 +663,7 @@ TEST_CASE(if_then_test_inlined)
...
@@ -663,7 +663,7 @@ TEST_CASE(if_then_test_inlined)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
1.0625
,
1.75
,
0.9375
,
1.125
,
0.875
,
0.4375
};
std
::
vector
<
float
>
gold
=
{
1.0625
,
1.75
,
0.9375
,
1.125
,
0.875
,
0.4375
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
if_literal_test
)
TEST_CASE
(
if_literal_test
)
...
@@ -688,14 +688,14 @@ TEST_CASE(if_literal_test)
...
@@ -688,14 +688,14 @@ TEST_CASE(if_literal_test)
{
{
auto
result_vector
=
run_prog
(
true
);
auto
result_vector
=
run_prog
(
true
);
std
::
vector
<
float
>
gold
=
{
1
,
2
,
3
,
4
,
5
};
std
::
vector
<
float
>
gold
=
{
1
,
2
,
3
,
4
,
5
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
// else branch
// else branch
{
{
auto
result_vector
=
run_prog
(
false
);
auto
result_vector
=
run_prog
(
false
);
std
::
vector
<
float
>
gold
=
{
5
,
4
,
3
,
2
,
1
};
std
::
vector
<
float
>
gold
=
{
5
,
4
,
3
,
2
,
1
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
}
}
...
@@ -726,7 +726,7 @@ TEST_CASE(if_then_else_multi_output_shapes_inlined_test)
...
@@ -726,7 +726,7 @@ TEST_CASE(if_then_else_multi_output_shapes_inlined_test)
std
::
vector
<
float
>
gold
=
{
std
::
vector
<
float
>
gold
=
{
1.0625
,
1.75
,
0.9375
,
1.125
,
0.875
,
0.4375
,
0.125
,
1.50
,
-
0.125
,
0.250
,
-
0.250
,
-
1.125
};
1.0625
,
1.75
,
0.9375
,
1.125
,
0.875
,
0.4375
,
0.125
,
1.50
,
-
0.125
,
0.250
,
-
0.250
,
-
1.125
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
if_then_else_multi_output_shapes_test
)
TEST_CASE
(
if_then_else_multi_output_shapes_test
)
...
@@ -757,7 +757,7 @@ TEST_CASE(if_then_else_multi_output_shapes_test)
...
@@ -757,7 +757,7 @@ TEST_CASE(if_then_else_multi_output_shapes_test)
std
::
vector
<
float
>
gold
=
{
std
::
vector
<
float
>
gold
=
{
1.0625
,
1.75
,
0.9375
,
1.125
,
0.875
,
0.4375
,
0.125
,
1.50
,
-
0.125
,
0.250
,
-
0.250
,
-
1.125
};
1.0625
,
1.75
,
0.9375
,
1.125
,
0.875
,
0.4375
,
0.125
,
1.50
,
-
0.125
,
0.250
,
-
0.250
,
-
1.125
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
if_pl_test
)
TEST_CASE
(
if_pl_test
)
...
@@ -789,14 +789,14 @@ TEST_CASE(if_pl_test)
...
@@ -789,14 +789,14 @@ TEST_CASE(if_pl_test)
{
{
auto
result_vector
=
run_prog
(
true
);
auto
result_vector
=
run_prog
(
true
);
std
::
vector
<
float
>
gold
=
{
2
,
3
,
4
,
5
,
6
,
7
};
std
::
vector
<
float
>
gold
=
{
2
,
3
,
4
,
5
,
6
,
7
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
// else branch
// else branch
{
{
auto
result_vector
=
run_prog
(
false
);
auto
result_vector
=
run_prog
(
false
);
std
::
vector
<
float
>
gold
=
{
1
,
2
,
3
,
4
,
5
,
6
};
std
::
vector
<
float
>
gold
=
{
1
,
2
,
3
,
4
,
5
,
6
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
}
}
...
@@ -835,8 +835,8 @@ TEST_CASE(if_tuple_test)
...
@@ -835,8 +835,8 @@ TEST_CASE(if_tuple_test)
auto
results
=
run_prog
(
true
);
auto
results
=
run_prog
(
true
);
std
::
vector
<
float
>
gold0
(
4
,
2.0
f
);
std
::
vector
<
float
>
gold0
(
4
,
2.0
f
);
std
::
vector
<
float
>
gold1
(
12
,
4.0
f
);
std
::
vector
<
float
>
gold1
(
12
,
4.0
f
);
EXPECT
(
migraphx
::
verify
::
verify_range
(
results
.
at
(
0
),
gold0
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results
.
at
(
0
),
gold0
));
EXPECT
(
migraphx
::
verify
::
verify_range
(
results
.
at
(
1
),
gold1
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results
.
at
(
1
),
gold1
));
}
}
// else branch
// else branch
...
@@ -844,8 +844,8 @@ TEST_CASE(if_tuple_test)
...
@@ -844,8 +844,8 @@ TEST_CASE(if_tuple_test)
auto
results
=
run_prog
(
false
);
auto
results
=
run_prog
(
false
);
std
::
vector
<
float
>
gold0
(
4
,
3.0
f
);
std
::
vector
<
float
>
gold0
(
4
,
3.0
f
);
std
::
vector
<
float
>
gold1
(
12
,
5.0
f
);
std
::
vector
<
float
>
gold1
(
12
,
5.0
f
);
EXPECT
(
migraphx
::
verify
::
verify_range
(
results
.
at
(
0
),
gold0
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results
.
at
(
0
),
gold0
));
EXPECT
(
migraphx
::
verify
::
verify_range
(
results
.
at
(
1
),
gold1
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results
.
at
(
1
),
gold1
));
}
}
}
}
...
@@ -876,7 +876,7 @@ TEST_CASE(instance_norm_test)
...
@@ -876,7 +876,7 @@ TEST_CASE(instance_norm_test)
2.54919
,
2.54919
,
3.32379
,
3.32379
,
4.09838
};
4.09838
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
instance_norm_dyn_batch_test
)
TEST_CASE
(
instance_norm_dyn_batch_test
)
...
@@ -918,7 +918,7 @@ TEST_CASE(instance_norm_dyn_batch_test)
...
@@ -918,7 +918,7 @@ TEST_CASE(instance_norm_dyn_batch_test)
2.54919
,
2.54919
,
3.32379
,
3.32379
,
4.09838
};
4.09838
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
instance_norm_3d_test
)
TEST_CASE
(
instance_norm_3d_test
)
...
@@ -947,7 +947,7 @@ TEST_CASE(instance_norm_3d_test)
...
@@ -947,7 +947,7 @@ TEST_CASE(instance_norm_3d_test)
3.18218
,
3.18218
,
4.05505
};
4.05505
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
lessorequal_test
)
TEST_CASE
(
lessorequal_test
)
...
@@ -968,7 +968,7 @@ TEST_CASE(lessorequal_test)
...
@@ -968,7 +968,7 @@ TEST_CASE(lessorequal_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
1
,
0
,
1
};
std
::
vector
<
float
>
gold
=
{
1
,
0
,
1
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
lpnormalization_1norm
)
TEST_CASE
(
lpnormalization_1norm
)
...
@@ -996,7 +996,7 @@ TEST_CASE(lpnormalization_1norm)
...
@@ -996,7 +996,7 @@ TEST_CASE(lpnormalization_1norm)
3.
f
/
7.
f
,
3.
f
/
7.
f
,
0.
f
,
0.
f
,
0.
f
};
0.
f
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
lpnormalization_2norm
)
TEST_CASE
(
lpnormalization_2norm
)
...
@@ -1012,19 +1012,19 @@ TEST_CASE(lpnormalization_2norm)
...
@@ -1012,19 +1012,19 @@ TEST_CASE(lpnormalization_2norm)
std
::
vector
<
float
>
result_vector
;
std
::
vector
<
float
>
result_vector
;
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
correct
{
0.
f
,
std
::
vector
<
float
>
gold
{
0.
f
,
2.
f
/
3.
f
,
2.
f
/
3.
f
,
-
2.
f
/
3.
f
,
-
2.
f
/
3.
f
,
1.
f
/
3.
f
,
1.
f
/
3.
f
,
1.
f
/
6.
f
,
1.
f
/
6.
f
,
-
5.
f
/
6.
f
,
-
5.
f
/
6.
f
,
3.
f
/
6.
f
,
3.
f
/
6.
f
,
-
1.
f
/
6.
f
,
-
1.
f
/
6.
f
,
-
4.
f
/
5.
f
,
-
4.
f
/
5.
f
,
3.
f
/
5.
f
,
3.
f
/
5.
f
,
0.
f
,
0.
f
,
0.
f
};
0.
f
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
correct
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
mean_broadcast_test
)
TEST_CASE
(
mean_broadcast_test
)
...
@@ -1055,7 +1055,7 @@ TEST_CASE(mean_broadcast_test)
...
@@ -1055,7 +1055,7 @@ TEST_CASE(mean_broadcast_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
(
24
,
3
);
std
::
vector
<
float
>
gold
(
24
,
3
);
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
mean_test
)
TEST_CASE
(
mean_test
)
...
@@ -1082,7 +1082,7 @@ TEST_CASE(mean_test)
...
@@ -1082,7 +1082,7 @@ TEST_CASE(mean_test)
const
auto
mean
=
std
::
accumulate
(
scalars
.
begin
(),
scalars
.
end
(),
0.0
)
/
num_data
;
const
auto
mean
=
std
::
accumulate
(
scalars
.
begin
(),
scalars
.
end
(),
0.0
)
/
num_data
;
std
::
vector
<
double
>
gold
(
num_elms
,
mean
);
std
::
vector
<
double
>
gold
(
num_elms
,
mean
);
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
mean_integral_test
)
TEST_CASE
(
mean_integral_test
)
...
@@ -1109,7 +1109,7 @@ TEST_CASE(mean_integral_test)
...
@@ -1109,7 +1109,7 @@ TEST_CASE(mean_integral_test)
const
auto
mean
=
std
::
accumulate
(
scalars
.
begin
(),
scalars
.
end
(),
0
)
/
num_data
;
const
auto
mean
=
std
::
accumulate
(
scalars
.
begin
(),
scalars
.
end
(),
0
)
/
num_data
;
std
::
vector
<
int
>
gold
(
num_elms
,
mean
);
std
::
vector
<
int
>
gold
(
num_elms
,
mean
);
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
mod_test
)
TEST_CASE
(
mod_test
)
...
@@ -1136,7 +1136,7 @@ TEST_CASE(mod_test)
...
@@ -1136,7 +1136,7 @@ TEST_CASE(mod_test)
std
::
vector
<
int32_t
>
gold
=
{
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
std
::
vector
<
int32_t
>
gold
=
{
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
5
};
5
,
0
,
2
,
3
,
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
5
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
mod_test_different_types
)
TEST_CASE
(
mod_test_different_types
)
...
@@ -1164,7 +1164,7 @@ TEST_CASE(mod_test_different_types)
...
@@ -1164,7 +1164,7 @@ TEST_CASE(mod_test_different_types)
std
::
vector
<
int32_t
>
gold
=
{
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
std
::
vector
<
int32_t
>
gold
=
{
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
5
};
5
,
0
,
2
,
3
,
0
,
-
2
,
5
,
0
,
2
,
3
,
0
,
-
2
,
5
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
mod_test_fmod
)
TEST_CASE
(
mod_test_fmod
)
...
@@ -1193,7 +1193,7 @@ TEST_CASE(mod_test_fmod)
...
@@ -1193,7 +1193,7 @@ TEST_CASE(mod_test_fmod)
10.7
,
11.2
,
12.3
,
13.9
,
-
14.2
,
15.8
,
1.6
,
3.9
,
5.2
,
10.7
,
11.2
,
12.3
,
13.9
,
-
14.2
,
15.8
,
1.6
,
3.9
,
5.2
,
7.0
,
9.0
,
1.0
,
-
4.0
,
7.0
,
-
3.0
,
1.2
,
1.3
,
3.1
};
7.0
,
9.0
,
1.0
,
-
4.0
,
7.0
,
-
3.0
,
1.2
,
1.3
,
3.1
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
mod_test_fmod_different_types
)
TEST_CASE
(
mod_test_fmod_different_types
)
...
@@ -1223,7 +1223,7 @@ TEST_CASE(mod_test_fmod_different_types)
...
@@ -1223,7 +1223,7 @@ TEST_CASE(mod_test_fmod_different_types)
10.7
,
11.2
,
12.3
,
13.9
,
-
14.2
,
15.8
,
1.6
,
3.9
,
5.2
,
10.7
,
11.2
,
12.3
,
13.9
,
-
14.2
,
15.8
,
1.6
,
3.9
,
5.2
,
7.0
,
9.0
,
1.0
,
-
4.0
,
7.0
,
-
3.0
,
1.2
,
1.3
,
3.1
};
7.0
,
9.0
,
1.0
,
-
4.0
,
7.0
,
-
3.0
,
1.2
,
1.3
,
3.1
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
nonzero_test
)
TEST_CASE
(
nonzero_test
)
...
@@ -1242,7 +1242,7 @@ TEST_CASE(nonzero_test)
...
@@ -1242,7 +1242,7 @@ TEST_CASE(nonzero_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
0
,
0
,
1
,
0
,
0
,
1
,
0
,
0
};
std
::
vector
<
float
>
gold
=
{
0
,
0
,
1
,
0
,
0
,
1
,
0
,
0
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
resize_downsample_f_test
)
TEST_CASE
(
resize_downsample_f_test
)
...
@@ -1263,7 +1263,7 @@ TEST_CASE(resize_downsample_f_test)
...
@@ -1263,7 +1263,7 @@ TEST_CASE(resize_downsample_f_test)
std
::
vector
<
float
>
gold
=
{
0.0
f
,
3.0
f
};
std
::
vector
<
float
>
gold
=
{
0.0
f
,
3.0
f
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
resize_upsample_linear_ac_test
)
TEST_CASE
(
resize_upsample_linear_ac_test
)
...
@@ -1298,7 +1298,7 @@ TEST_CASE(resize_upsample_linear_ac_test)
...
@@ -1298,7 +1298,7 @@ TEST_CASE(resize_upsample_linear_ac_test)
11.0
f
/
3
,
11.0
f
/
3
,
4
};
4
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
resize_upsample_linear_test
)
TEST_CASE
(
resize_upsample_linear_test
)
...
@@ -1319,7 +1319,7 @@ TEST_CASE(resize_upsample_linear_test)
...
@@ -1319,7 +1319,7 @@ TEST_CASE(resize_upsample_linear_test)
std
::
vector
<
float
>
gold
=
{
std
::
vector
<
float
>
gold
=
{
1
,
1.25
,
1.75
,
2
,
1.5
,
1.75
,
2.25
,
2.5
,
2.5
,
2.75
,
3.25
,
3.5
,
3
,
3.25
,
3.75
,
4
};
1
,
1.25
,
1.75
,
2
,
1.5
,
1.75
,
2.25
,
2.5
,
2.5
,
2.75
,
3.25
,
3.5
,
3
,
3.25
,
3.75
,
4
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
resize_upsample_pf_test
)
TEST_CASE
(
resize_upsample_pf_test
)
...
@@ -1340,7 +1340,7 @@ TEST_CASE(resize_upsample_pf_test)
...
@@ -1340,7 +1340,7 @@ TEST_CASE(resize_upsample_pf_test)
std
::
vector
<
float
>
gold
=
{
1
,
1
,
1
,
2
,
2
,
2
,
1
,
1
,
1
,
2
,
2
,
2
,
std
::
vector
<
float
>
gold
=
{
1
,
1
,
1
,
2
,
2
,
2
,
1
,
1
,
1
,
2
,
2
,
2
,
3
,
3
,
3
,
4
,
4
,
4
,
3
,
3
,
3
,
4
,
4
,
4
};
3
,
3
,
3
,
4
,
4
,
4
,
3
,
3
,
3
,
4
,
4
,
4
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
reversesequence_4D_verify_test
)
TEST_CASE
(
reversesequence_4D_verify_test
)
...
@@ -1361,7 +1361,7 @@ TEST_CASE(reversesequence_4D_verify_test)
...
@@ -1361,7 +1361,7 @@ TEST_CASE(reversesequence_4D_verify_test)
std
::
vector
<
float
>
gold
=
{
std
::
vector
<
float
>
gold
=
{
8.0
,
9.0
,
10.0
,
11.0
,
4.0
,
5.0
,
6.0
,
7.0
,
0.0
,
1.0
,
2.0
,
3.0
,
12.0
,
13.0
,
14.0
,
15.0
};
8.0
,
9.0
,
10.0
,
11.0
,
4.0
,
5.0
,
6.0
,
7.0
,
0.0
,
1.0
,
2.0
,
3.0
,
12.0
,
13.0
,
14.0
,
15.0
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
reversesequence_batch_verify_test
)
TEST_CASE
(
reversesequence_batch_verify_test
)
...
@@ -1382,7 +1382,7 @@ TEST_CASE(reversesequence_batch_verify_test)
...
@@ -1382,7 +1382,7 @@ TEST_CASE(reversesequence_batch_verify_test)
std
::
vector
<
float
>
gold
=
{
std
::
vector
<
float
>
gold
=
{
0.0
,
1.0
,
2.0
,
3.0
,
5.0
,
4.0
,
6.0
,
7.0
,
10.0
,
9.0
,
8.0
,
11.0
,
15.0
,
14.0
,
13.0
,
12.0
};
0.0
,
1.0
,
2.0
,
3.0
,
5.0
,
4.0
,
6.0
,
7.0
,
10.0
,
9.0
,
8.0
,
11.0
,
15.0
,
14.0
,
13.0
,
12.0
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
reversesequence_time_verify_test
)
TEST_CASE
(
reversesequence_time_verify_test
)
...
@@ -1403,7 +1403,7 @@ TEST_CASE(reversesequence_time_verify_test)
...
@@ -1403,7 +1403,7 @@ TEST_CASE(reversesequence_time_verify_test)
std
::
vector
<
float
>
gold
=
{
std
::
vector
<
float
>
gold
=
{
3.0
,
6.0
,
9.0
,
12.0
,
2.0
,
5.0
,
8.0
,
13.0
,
1.0
,
4.0
,
10.0
,
14.0
,
0.0
,
7.0
,
11.0
,
15.0
};
3.0
,
6.0
,
9.0
,
12.0
,
2.0
,
5.0
,
8.0
,
13.0
,
1.0
,
4.0
,
10.0
,
14.0
,
0.0
,
7.0
,
11.0
,
15.0
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
selu_test
)
TEST_CASE
(
selu_test
)
...
@@ -1423,7 +1423,7 @@ TEST_CASE(selu_test)
...
@@ -1423,7 +1423,7 @@ TEST_CASE(selu_test)
std
::
vector
<
float
>
gold
=
{
0.55
,
1.05
,
0
,
-
0.10912
,
-
0.149251
,
6
};
std
::
vector
<
float
>
gold
=
{
0.55
,
1.05
,
0
,
-
0.10912
,
-
0.149251
,
6
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
size_verify_test
)
TEST_CASE
(
size_verify_test
)
...
@@ -1457,7 +1457,7 @@ TEST_CASE(slice_test)
...
@@ -1457,7 +1457,7 @@ TEST_CASE(slice_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
2
,
3
};
std
::
vector
<
float
>
gold
=
{
2
,
3
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
slice_5arg_test
)
TEST_CASE
(
slice_5arg_test
)
...
@@ -1477,7 +1477,7 @@ TEST_CASE(slice_5arg_test)
...
@@ -1477,7 +1477,7 @@ TEST_CASE(slice_5arg_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
10
,
11
,
12
,
13
,
15
,
16
,
17
,
18
};
std
::
vector
<
float
>
gold
=
{
10
,
11
,
12
,
13
,
15
,
16
,
17
,
18
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
slice_reverse_test
)
TEST_CASE
(
slice_reverse_test
)
...
@@ -1497,7 +1497,7 @@ TEST_CASE(slice_reverse_test)
...
@@ -1497,7 +1497,7 @@ TEST_CASE(slice_reverse_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
14
,
13
,
12
,
11
,
19
,
18
,
17
,
16
};
std
::
vector
<
float
>
gold
=
{
14
,
13
,
12
,
11
,
19
,
18
,
17
,
16
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
slice_step_test
)
TEST_CASE
(
slice_step_test
)
...
@@ -1517,7 +1517,7 @@ TEST_CASE(slice_step_test)
...
@@ -1517,7 +1517,7 @@ TEST_CASE(slice_step_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
14
,
12
};
std
::
vector
<
float
>
gold
=
{
14
,
12
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
softplus_test
)
TEST_CASE
(
softplus_test
)
...
@@ -1538,7 +1538,7 @@ TEST_CASE(softplus_test)
...
@@ -1538,7 +1538,7 @@ TEST_CASE(softplus_test)
std
::
transform
(
std
::
transform
(
data
.
begin
(),
data
.
end
(),
gold
.
begin
(),
[](
auto
x
)
{
return
std
::
log1p
(
std
::
exp
(
x
));
});
data
.
begin
(),
data
.
end
(),
gold
.
begin
(),
[](
auto
x
)
{
return
std
::
log1p
(
std
::
exp
(
x
));
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
softsign_test
)
TEST_CASE
(
softsign_test
)
...
@@ -1559,7 +1559,7 @@ TEST_CASE(softsign_test)
...
@@ -1559,7 +1559,7 @@ TEST_CASE(softsign_test)
std
::
transform
(
std
::
transform
(
data
.
begin
(),
data
.
end
(),
gold
.
begin
(),
[](
auto
x
)
{
return
x
/
(
1.0
+
std
::
abs
(
x
));
});
data
.
begin
(),
data
.
end
(),
gold
.
begin
(),
[](
auto
x
)
{
return
x
/
(
1.0
+
std
::
abs
(
x
));
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
upsample_test
)
TEST_CASE
(
upsample_test
)
...
@@ -1578,7 +1578,7 @@ TEST_CASE(upsample_test)
...
@@ -1578,7 +1578,7 @@ TEST_CASE(upsample_test)
std
::
vector
<
float
>
gold
=
{
1
,
1
,
1
,
2
,
2
,
2
,
1
,
1
,
1
,
2
,
2
,
2
,
std
::
vector
<
float
>
gold
=
{
1
,
1
,
1
,
2
,
2
,
2
,
1
,
1
,
1
,
2
,
2
,
2
,
3
,
3
,
3
,
4
,
4
,
4
,
3
,
3
,
3
,
4
,
4
,
4
};
3
,
3
,
3
,
4
,
4
,
4
,
3
,
3
,
3
,
4
,
4
,
4
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
where_test
)
TEST_CASE
(
where_test
)
...
@@ -1620,7 +1620,7 @@ TEST_CASE(where_test)
...
@@ -1620,7 +1620,7 @@ TEST_CASE(where_test)
2.0
f
,
2.0
f
,
1.0
f
,
1.0
f
,
2.0
f
};
2.0
f
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
std
::
vector
<
float
>
gen_trilu_test
(
const
migraphx
::
shape
&
s
,
const
migraphx
::
program
&
p
)
std
::
vector
<
float
>
gen_trilu_test
(
const
migraphx
::
shape
&
s
,
const
migraphx
::
program
&
p
)
...
@@ -1645,7 +1645,7 @@ TEST_CASE(trilu_test)
...
@@ -1645,7 +1645,7 @@ TEST_CASE(trilu_test)
std
::
vector
<
float
>
gold
=
{
1
,
2
,
3
,
4
,
0
,
6
,
7
,
8
,
0
,
0
,
11
,
12
};
std
::
vector
<
float
>
gold
=
{
1
,
2
,
3
,
4
,
0
,
6
,
7
,
8
,
0
,
0
,
11
,
12
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
trilu_batch_diff_k_test
)
TEST_CASE
(
trilu_batch_diff_k_test
)
...
@@ -1656,7 +1656,7 @@ TEST_CASE(trilu_batch_diff_k_test)
...
@@ -1656,7 +1656,7 @@ TEST_CASE(trilu_batch_diff_k_test)
std
::
vector
<
float
>
gold
=
{
0
,
0
,
3
,
0
,
0
,
0
,
0
,
0
,
9
,
0
,
0
,
0
};
std
::
vector
<
float
>
gold
=
{
0
,
0
,
3
,
0
,
0
,
0
,
0
,
0
,
9
,
0
,
0
,
0
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
trilu_lower_test
)
TEST_CASE
(
trilu_lower_test
)
...
@@ -1667,7 +1667,7 @@ TEST_CASE(trilu_lower_test)
...
@@ -1667,7 +1667,7 @@ TEST_CASE(trilu_lower_test)
std
::
vector
<
float
>
gold
=
{
0
,
0
,
0
,
0
,
5
,
0
,
0
,
0
,
9
,
10
,
0
,
0
};
std
::
vector
<
float
>
gold
=
{
0
,
0
,
0
,
0
,
5
,
0
,
0
,
0
,
9
,
10
,
0
,
0
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
trilu_out_k_test
)
TEST_CASE
(
trilu_out_k_test
)
...
@@ -1678,7 +1678,7 @@ TEST_CASE(trilu_out_k_test)
...
@@ -1678,7 +1678,7 @@ TEST_CASE(trilu_out_k_test)
std
::
vector
<
float
>
gold
(
12
,
0
);
std
::
vector
<
float
>
gold
(
12
,
0
);
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
TEST_CASE
(
trilu_row_one_test
)
TEST_CASE
(
trilu_row_one_test
)
...
@@ -1689,7 +1689,7 @@ TEST_CASE(trilu_row_one_test)
...
@@ -1689,7 +1689,7 @@ TEST_CASE(trilu_row_one_test)
std
::
vector
<
float
>
gold
=
{
0
,
2
,
3
,
4
};
std
::
vector
<
float
>
gold
=
{
0
,
2
,
3
,
4
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
}
int
main
(
int
argc
,
const
char
*
argv
[])
{
test
::
run
(
argc
,
argv
);
}
int
main
(
int
argc
,
const
char
*
argv
[])
{
test
::
run
(
argc
,
argv
);
}
test/op_shape_test.cpp
View file @
29820def
...
@@ -890,6 +890,50 @@ TEST_CASE(flatten_dyn_axis4)
...
@@ -890,6 +890,50 @@ TEST_CASE(flatten_dyn_axis4)
input
);
input
);
}
}
TEST_CASE
(
fill_static_int
)
{
migraphx
::
shape
default_value
{
migraphx
::
shape
::
int64_type
,
{
1
},
{
0
}};
migraphx
::
shape
data
{
migraphx
::
shape
::
int64_type
,
{
3
,
4
,
4
}};
expect_shape
(
migraphx
::
shape
{
migraphx
::
shape
::
int64_type
,
{
3
,
4
,
4
}},
migraphx
::
make_op
(
"fill"
),
default_value
,
data
);
}
TEST_CASE
(
fill_static_float
)
{
migraphx
::
shape
default_value
{
migraphx
::
shape
::
float_type
,
{
1
},
{
0
}};
migraphx
::
shape
data
{
migraphx
::
shape
::
float_type
,
{
4
,
8
}};
expect_shape
(
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
4
,
8
}},
migraphx
::
make_op
(
"fill"
),
default_value
,
data
);
}
TEST_CASE
(
fill_dyn_int
)
{
migraphx
::
shape
default_value
{
migraphx
::
shape
::
int64_type
,
{
1
},
{
0
}};
migraphx
::
shape
data
{
migraphx
::
shape
::
int64_type
,
{{
1
,
4
},
{
4
,
8
,
{
4
,
6
,
8
}},
{
4
,
8
,
{
4
,
6
,
8
}}}};
expect_shape
(
migraphx
::
shape
{
migraphx
::
shape
::
int64_type
,
{{
1
,
4
},
{
4
,
8
,
{
4
,
6
,
8
}},
{
4
,
8
,
{
4
,
6
,
8
}}}},
migraphx
::
make_op
(
"fill"
),
default_value
,
data
);
}
TEST_CASE
(
fill_dyn_float
)
{
migraphx
::
shape
default_value
{
migraphx
::
shape
::
float_type
,
{
1
},
{
0
}};
migraphx
::
shape
data
{
migraphx
::
shape
::
float_type
,
{{
1
,
4
},
{
4
,
8
,
{
4
,
6
,
8
}},
{
4
,
8
,
{
4
,
6
,
8
}}}};
expect_shape
(
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{{
1
,
4
},
{
4
,
8
,
{
4
,
6
,
8
}},
{
4
,
8
,
{
4
,
6
,
8
}}}},
migraphx
::
make_op
(
"fill"
),
default_value
,
data
);
}
TEST_CASE
(
gather
)
TEST_CASE
(
gather
)
{
{
{
{
...
...
test/quantization.cpp
View file @
29820def
...
@@ -83,7 +83,7 @@ TEST_CASE(param_add)
...
@@ -83,7 +83,7 @@ TEST_CASE(param_add)
auto
hs
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
hp1
,
hp2
);
auto
hs
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
hp1
,
hp2
);
auto
fs
=
mm
->
add_instruction
(
auto
fs
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"convert"
,
migraphx
::
make_op
(
"convert"
,
{{
"target_type"
,
migraphx
::
to_value
(
migraphx
::
shape
::
float_type
)}}),
{{
"target_type"
,
migraphx
::
to_value
(
migraphx
::
shape
::
float_type
)}}),
hs
);
hs
);
if
(
add_return
)
if
(
add_return
)
{
{
...
@@ -1013,7 +1013,7 @@ TEST_CASE(target_copy)
...
@@ -1013,7 +1013,7 @@ TEST_CASE(target_copy)
std
::
vector
<
float
>
orig_result
;
std
::
vector
<
float
>
orig_result
;
run_prog
(
p
,
ref_t
,
m
,
orig_result
);
run_prog
(
p
,
ref_t
,
m
,
orig_result
);
EXPECT
(
migraphx
::
verify
::
verify_range
(
ref_result
,
orig_result
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
ref_result
,
orig_result
));
}
}
}
}
...
@@ -1077,7 +1077,10 @@ TEST_CASE(int8_quantization_dot)
...
@@ -1077,7 +1077,10 @@ TEST_CASE(int8_quantization_dot)
std
::
vector
<
float
>
no_quant_result
;
std
::
vector
<
float
>
no_quant_result
;
run_prog
(
p
,
ref_t
,
m
,
no_quant_result
);
run_prog
(
p
,
ref_t
,
m
,
no_quant_result
);
EXPECT
(
migraphx
::
verify
::
verify_range
(
quant_result
,
no_quant_result
,
30000
));
EXPECT
(
migraphx
::
verify
::
verify_range_with_tolerance
(
quant_result
,
migraphx
::
verify
::
expected
{
no_quant_result
},
migraphx
::
verify
::
tolerance
{
0.003
}));
}
}
}
}
...
@@ -1122,7 +1125,7 @@ TEST_CASE(int8_quantization_conv)
...
@@ -1122,7 +1125,7 @@ TEST_CASE(int8_quantization_conv)
std
::
vector
<
float
>
no_quant_result
;
std
::
vector
<
float
>
no_quant_result
;
run_prog
(
p
,
ref_t
,
no_quant_result
);
run_prog
(
p
,
ref_t
,
no_quant_result
);
EXPECT
(
migraphx
::
verify
::
verify_range
(
quant_result
,
no_quant_result
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
quant_result
,
no_quant_result
));
}
}
}
}
...
@@ -1274,7 +1277,7 @@ TEST_CASE(test_op_capture)
...
@@ -1274,7 +1277,7 @@ TEST_CASE(test_op_capture)
cap_res
.
visit
([
&
](
auto
output
)
{
cap_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
cap_res
.
visit
([
&
](
auto
output
)
{
cap_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
res
.
visit
([
&
](
auto
output
)
{
vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
res
.
visit
([
&
](
auto
output
)
{
vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
vec
,
cap_vec
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
vec
,
cap_vec
));
}
}
int
main
(
int
argc
,
const
char
*
argv
[])
{
test
::
run
(
argc
,
argv
);
}
int
main
(
int
argc
,
const
char
*
argv
[])
{
test
::
run
(
argc
,
argv
);
}
test/ref/abs.cpp
View file @
29820def
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
#include <migraphx/instruction.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/
onnx
.hpp>
#include <migraphx/
program
.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/verify.hpp>
#include <migraphx/verify.hpp>
...
@@ -42,7 +42,7 @@ TEST_CASE(abs_test)
...
@@ -42,7 +42,7 @@ TEST_CASE(abs_test)
std
::
vector
<
float
>
results_vector
(
4
);
std
::
vector
<
float
>
results_vector
(
4
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
{
1
,
2
,
3
,
4
};
std
::
vector
<
float
>
gold
{
1
,
2
,
3
,
4
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
}
TEST_CASE
(
abs_dyn_test
)
TEST_CASE
(
abs_dyn_test
)
...
@@ -62,5 +62,5 @@ TEST_CASE(abs_dyn_test)
...
@@ -62,5 +62,5 @@ TEST_CASE(abs_dyn_test)
std
::
vector
<
float
>
results_vector
(
4
);
std
::
vector
<
float
>
results_vector
(
4
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
{
1
,
2
,
3
,
4
};
std
::
vector
<
float
>
gold
{
1
,
2
,
3
,
4
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
}
test/ref/acos.cpp
View file @
29820def
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
#include <migraphx/instruction.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/
onnx
.hpp>
#include <migraphx/
program
.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/verify.hpp>
#include <migraphx/verify.hpp>
...
@@ -45,7 +45,7 @@ TEST_CASE(acos_test)
...
@@ -45,7 +45,7 @@ TEST_CASE(acos_test)
std
::
vector
<
float
>
gold
=
data
;
std
::
vector
<
float
>
gold
=
data
;
std
::
transform
(
std
::
transform
(
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
acosf
(
n
);
});
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
acosf
(
n
);
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
}
TEST_CASE
(
acos_dyn_test
)
TEST_CASE
(
acos_dyn_test
)
...
@@ -68,5 +68,5 @@ TEST_CASE(acos_dyn_test)
...
@@ -68,5 +68,5 @@ TEST_CASE(acos_dyn_test)
std
::
vector
<
float
>
gold
=
input_data
;
std
::
vector
<
float
>
gold
=
input_data
;
std
::
transform
(
std
::
transform
(
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
acosf
(
n
);
});
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
acosf
(
n
);
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
}
test/ref/acosh.cpp
View file @
29820def
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
#include <migraphx/instruction.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/
onnx
.hpp>
#include <migraphx/
program
.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/verify.hpp>
#include <migraphx/verify.hpp>
...
@@ -45,7 +45,7 @@ TEST_CASE(acosh_test)
...
@@ -45,7 +45,7 @@ TEST_CASE(acosh_test)
std
::
vector
<
float
>
gold
=
data
;
std
::
vector
<
float
>
gold
=
data
;
std
::
transform
(
std
::
transform
(
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
acoshf
(
n
);
});
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
acoshf
(
n
);
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
}
TEST_CASE
(
acosh_dyn_test
)
TEST_CASE
(
acosh_dyn_test
)
...
@@ -68,5 +68,5 @@ TEST_CASE(acosh_dyn_test)
...
@@ -68,5 +68,5 @@ TEST_CASE(acosh_dyn_test)
std
::
vector
<
float
>
gold
=
input_data
;
std
::
vector
<
float
>
gold
=
input_data
;
std
::
transform
(
std
::
transform
(
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
acoshf
(
n
);
});
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
acoshf
(
n
);
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
}
test/ref/add.cpp
View file @
29820def
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
#include <migraphx/instruction.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/
onnx
.hpp>
#include <migraphx/
program
.hpp>
#include <migraphx/quantization.hpp>
#include <migraphx/quantization.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/verify.hpp>
#include <migraphx/verify.hpp>
...
@@ -51,7 +51,7 @@ TEST_CASE(add_broadcast_test)
...
@@ -51,7 +51,7 @@ TEST_CASE(add_broadcast_test)
std
::
vector
<
float
>
results_vector
(
12
);
std
::
vector
<
float
>
results_vector
(
12
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
0
,
1
,
2
,
2
,
3
,
4
,
4
,
5
,
6
,
6
,
7
,
8
};
std
::
vector
<
float
>
gold
=
{
0
,
1
,
2
,
2
,
3
,
4
,
4
,
5
,
6
,
6
,
7
,
8
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
}
TEST_CASE
(
add_multibroadcast_test
)
TEST_CASE
(
add_multibroadcast_test
)
...
@@ -75,7 +75,7 @@ TEST_CASE(add_multibroadcast_test)
...
@@ -75,7 +75,7 @@ TEST_CASE(add_multibroadcast_test)
std
::
vector
<
float
>
results_vector
(
12
);
std
::
vector
<
float
>
results_vector
(
12
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
0
,
1
,
2
,
2
,
3
,
4
,
4
,
5
,
6
,
6
,
7
,
8
};
std
::
vector
<
float
>
gold
=
{
0
,
1
,
2
,
2
,
3
,
4
,
4
,
5
,
6
,
6
,
7
,
8
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
}
TEST_CASE
(
add_test
)
TEST_CASE
(
add_test
)
...
@@ -91,7 +91,7 @@ TEST_CASE(add_test)
...
@@ -91,7 +91,7 @@ TEST_CASE(add_test)
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
0
,
2
,
4
};
std
::
vector
<
float
>
gold
=
{
0
,
2
,
4
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
}
TEST_CASE
(
add_dyn_test
)
TEST_CASE
(
add_dyn_test
)
...
@@ -115,7 +115,7 @@ TEST_CASE(add_dyn_test)
...
@@ -115,7 +115,7 @@ TEST_CASE(add_dyn_test)
std
::
vector
<
float
>
results_vector
(
3
);
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
=
{
0
,
2
,
4
};
std
::
vector
<
float
>
gold
=
{
0
,
2
,
4
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
}
TEST_CASE
(
fp16_test
)
TEST_CASE
(
fp16_test
)
...
@@ -134,7 +134,7 @@ TEST_CASE(fp16_test)
...
@@ -134,7 +134,7 @@ TEST_CASE(fp16_test)
std
::
vector
<
migraphx
::
half
>
results_vector
(
1
);
std
::
vector
<
migraphx
::
half
>
results_vector
(
1
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
migraphx
::
half
>
gold
{
c
};
std
::
vector
<
migraphx
::
half
>
gold
{
c
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
}
TEST_CASE
(
fp32_fp16_test
)
TEST_CASE
(
fp32_fp16_test
)
...
@@ -159,7 +159,7 @@ TEST_CASE(fp32_fp16_test)
...
@@ -159,7 +159,7 @@ TEST_CASE(fp32_fp16_test)
auto
result
=
p
.
eval
({}).
back
();
auto
result
=
p
.
eval
({}).
back
();
std
::
vector
<
float
>
res
;
std
::
vector
<
float
>
res
;
result
.
visit
([
&
](
auto
output
)
{
res
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
res
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
res
,
gold_res
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
res
,
gold_res
));
};
};
test_case
({
"all"
});
test_case
({
"all"
});
...
...
test/ref/allocate.cpp
View file @
29820def
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
#include <migraphx/instruction.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/
onnx
.hpp>
#include <migraphx/
program
.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/verify.hpp>
#include <migraphx/verify.hpp>
...
...
test/ref/argmax.cpp
View file @
29820def
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
#include <migraphx/instruction.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/
onnx
.hpp>
#include <migraphx/
program
.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/verify.hpp>
#include <migraphx/verify.hpp>
...
@@ -47,7 +47,7 @@ TEST_CASE(argmax_test_0)
...
@@ -47,7 +47,7 @@ TEST_CASE(argmax_test_0)
std
::
vector
<
int64_t
>
result_vec
;
std
::
vector
<
int64_t
>
result_vec
;
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vec
,
res_gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vec
,
res_gold
));
}
}
TEST_CASE
(
argmax_test_1
)
TEST_CASE
(
argmax_test_1
)
...
@@ -66,7 +66,7 @@ TEST_CASE(argmax_test_1)
...
@@ -66,7 +66,7 @@ TEST_CASE(argmax_test_1)
std
::
vector
<
int64_t
>
result_vec
;
std
::
vector
<
int64_t
>
result_vec
;
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vec
,
res_gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vec
,
res_gold
));
}
}
TEST_CASE
(
argmax_test_2
)
TEST_CASE
(
argmax_test_2
)
...
@@ -85,7 +85,7 @@ TEST_CASE(argmax_test_2)
...
@@ -85,7 +85,7 @@ TEST_CASE(argmax_test_2)
std
::
vector
<
int64_t
>
result_vec
;
std
::
vector
<
int64_t
>
result_vec
;
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vec
,
res_gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vec
,
res_gold
));
}
}
TEST_CASE
(
argmax_test_neg_2
)
TEST_CASE
(
argmax_test_neg_2
)
...
@@ -104,7 +104,7 @@ TEST_CASE(argmax_test_neg_2)
...
@@ -104,7 +104,7 @@ TEST_CASE(argmax_test_neg_2)
std
::
vector
<
int64_t
>
result_vec
;
std
::
vector
<
int64_t
>
result_vec
;
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vec
,
res_gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vec
,
res_gold
));
}
}
TEST_CASE
(
argmax_dyn_test
)
TEST_CASE
(
argmax_dyn_test
)
...
@@ -126,7 +126,7 @@ TEST_CASE(argmax_dyn_test)
...
@@ -126,7 +126,7 @@ TEST_CASE(argmax_dyn_test)
std
::
vector
<
int64_t
>
result_vec
;
std
::
vector
<
int64_t
>
result_vec
;
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
int64_t
>
res_gold
=
{
0
,
0
,
1
,
0
,
1
,
0
,
0
,
0
,
1
,
1
,
0
,
1
};
std
::
vector
<
int64_t
>
res_gold
=
{
0
,
0
,
1
,
0
,
1
,
0
,
0
,
0
,
1
,
1
,
0
,
1
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vec
,
res_gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vec
,
res_gold
));
}
}
TEST_CASE
(
argmax_test_nonstd_shape
)
TEST_CASE
(
argmax_test_nonstd_shape
)
...
@@ -145,5 +145,5 @@ TEST_CASE(argmax_test_nonstd_shape)
...
@@ -145,5 +145,5 @@ TEST_CASE(argmax_test_nonstd_shape)
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
int64_t
>
res_gold_vec
;
std
::
vector
<
int64_t
>
res_gold_vec
;
res_gold
.
visit
([
&
](
auto
output
)
{
res_gold_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
res_gold
.
visit
([
&
](
auto
output
)
{
res_gold_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vec
,
res_gold_vec
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vec
,
res_gold_vec
));
}
}
test/ref/argmin.cpp
View file @
29820def
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
#include <migraphx/instruction.hpp>
#include <migraphx/instruction.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/literal.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/
onnx
.hpp>
#include <migraphx/
program
.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/register_target.hpp>
#include <migraphx/verify.hpp>
#include <migraphx/verify.hpp>
...
@@ -47,7 +47,7 @@ TEST_CASE(argmin_test_0)
...
@@ -47,7 +47,7 @@ TEST_CASE(argmin_test_0)
std
::
vector
<
int64_t
>
result_vec
;
std
::
vector
<
int64_t
>
result_vec
;
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vec
,
res_gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vec
,
res_gold
));
}
}
TEST_CASE
(
argmin_test_1
)
TEST_CASE
(
argmin_test_1
)
...
@@ -66,7 +66,7 @@ TEST_CASE(argmin_test_1)
...
@@ -66,7 +66,7 @@ TEST_CASE(argmin_test_1)
std
::
vector
<
int64_t
>
result_vec
;
std
::
vector
<
int64_t
>
result_vec
;
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vec
,
res_gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vec
,
res_gold
));
}
}
TEST_CASE
(
argmin_test_2
)
TEST_CASE
(
argmin_test_2
)
...
@@ -85,7 +85,7 @@ TEST_CASE(argmin_test_2)
...
@@ -85,7 +85,7 @@ TEST_CASE(argmin_test_2)
std
::
vector
<
int64_t
>
result_vec
;
std
::
vector
<
int64_t
>
result_vec
;
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vec
,
res_gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vec
,
res_gold
));
}
}
TEST_CASE
(
argmin_test_neg_1
)
TEST_CASE
(
argmin_test_neg_1
)
...
@@ -104,7 +104,7 @@ TEST_CASE(argmin_test_neg_1)
...
@@ -104,7 +104,7 @@ TEST_CASE(argmin_test_neg_1)
std
::
vector
<
int64_t
>
result_vec
;
std
::
vector
<
int64_t
>
result_vec
;
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vec
,
res_gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vec
,
res_gold
));
}
}
TEST_CASE
(
argmin_test_nonstd_shape
)
TEST_CASE
(
argmin_test_nonstd_shape
)
...
@@ -123,5 +123,5 @@ TEST_CASE(argmin_test_nonstd_shape)
...
@@ -123,5 +123,5 @@ TEST_CASE(argmin_test_nonstd_shape)
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
int64_t
>
res_gold_vec
;
std
::
vector
<
int64_t
>
res_gold_vec
;
res_gold
.
visit
([
&
](
auto
output
)
{
res_gold_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
res_gold
.
visit
([
&
](
auto
output
)
{
res_gold_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vec
,
res_gold_vec
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vec
,
res_gold_vec
));
}
}
Prev
1
2
3
4
5
6
…
8
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