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
f6b08c2a
Unverified
Commit
f6b08c2a
authored
Sep 29, 2023
by
Brian Pickrell
Committed by
GitHub
Sep 29, 2023
Browse files
Merge branch 'develop' into threads_register_target
parents
d8f1ebbc
4188c38e
Changes
169
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
766 additions
and
138 deletions
+766
-138
test/onnx/constant_value_int_test.onnx
test/onnx/constant_value_int_test.onnx
+3
-0
test/onnx/constant_value_ints_test.onnx
test/onnx/constant_value_ints_test.onnx
+4
-0
test/onnx/gen_onnx.py
test/onnx/gen_onnx.py
+70
-0
test/onnx/onnx_test.cpp
test/onnx/onnx_test.cpp
+59
-1
test/onnx/verify_onnx.cpp
test/onnx/verify_onnx.cpp
+96
-96
test/op_shape_test.cpp
test/op_shape_test.cpp
+219
-3
test/optimize_module_test.cpp
test/optimize_module_test.cpp
+65
-0
test/py/onnx_backend_test.py
test/py/onnx_backend_test.py
+210
-1
test/quantization.cpp
test/quantization.cpp
+8
-5
test/ref/CMakeLists.txt
test/ref/CMakeLists.txt
+1
-1
test/ref/abs.cpp
test/ref/abs.cpp
+2
-2
test/ref/acos.cpp
test/ref/acos.cpp
+2
-2
test/ref/acosh.cpp
test/ref/acosh.cpp
+2
-2
test/ref/add.cpp
test/ref/add.cpp
+6
-6
test/ref/argmax.cpp
test/ref/argmax.cpp
+6
-6
test/ref/argmin.cpp
test/ref/argmin.cpp
+5
-5
test/ref/asin.cpp
test/ref/asin.cpp
+2
-2
test/ref/asinh.cpp
test/ref/asinh.cpp
+2
-2
test/ref/atan.cpp
test/ref/atan.cpp
+2
-2
test/ref/atanh.cpp
test/ref/atanh.cpp
+2
-2
No files found.
test/onnx/constant_value_int_test.onnx
0 → 100644
View file @
f6b08c2a
constant_value_int_test:7
"Constant*
value_int@ constant_value_int_testB
\ No newline at end of file
test/onnx/constant_value_ints_test.onnx
0 → 100644
View file @
f6b08c2a
constant_value_ints_test:=
!"Constant*
value_ints@@@ constant_value_ints_testB
\ No newline at end of file
test/onnx/gen_onnx.py
View file @
f6b08c2a
...
...
@@ -825,6 +825,76 @@ def constant_test():
return
([
node
],
[],
[
y
])
@
onnx_test
()
def
constant_value_float_test
():
node
=
onnx
.
helper
.
make_node
(
'Constant'
,
inputs
=
[],
outputs
=
[],
value_float
=
[
1.0
])
return
([
node
],
[],
[])
@
onnx_test
()
def
constant_value_floats_test
():
node
=
onnx
.
helper
.
make_node
(
'Constant'
,
inputs
=
[],
outputs
=
[],
value_floats
=
[
1.0
,
2.0
,
3.0
])
return
([
node
],
[],
[])
@
onnx_test
()
def
constant_value_int_test
():
node
=
onnx
.
helper
.
make_node
(
'Constant'
,
inputs
=
[],
outputs
=
[],
value_int
=
[
1
])
return
([
node
],
[],
[])
@
onnx_test
()
def
constant_value_ints_test
():
node
=
onnx
.
helper
.
make_node
(
'Constant'
,
inputs
=
[],
outputs
=
[],
value_ints
=
[
1
,
2
,
3
])
return
([
node
],
[],
[])
@
onnx_test
()
def
constant_no_attributes_test
():
node
=
onnx
.
helper
.
make_node
(
'Constant'
,
inputs
=
[],
outputs
=
[])
return
([
node
],
[],
[])
@
onnx_test
()
def
constant_multiple_attributes_test
():
x
=
np
.
array
([
0
,
1
,
2
])
node
=
onnx
.
helper
.
make_node
(
'Constant'
,
inputs
=
[],
outputs
=
[],
value_floats
=
[
1.0
,
2.0
],
value_ints
=
[
1
,
2
],
value
=
onnx
.
helper
.
make_tensor
(
name
=
'const_tensor'
,
data_type
=
TensorProto
.
FLOAT
,
dims
=
x
.
shape
,
vals
=
x
.
flatten
().
astype
(
float
)))
return
([
node
],
[],
[])
@
onnx_test
()
def
constant_fill_test
():
value
=
helper
.
make_tensor_value_info
(
'value'
,
TensorProto
.
FLOAT
,
[
2
,
3
])
...
...
test/onnx/onnx_test.cpp
View file @
f6b08c2a
...
...
@@ -930,6 +930,58 @@ TEST_CASE(constant_test)
EXPECT
(
p
==
prog
);
}
TEST_CASE
(
constant_value_float_test
)
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
mm
->
add_literal
(
migraphx
::
literal
{
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
1
}},
{
1.0
f
}});
auto
prog
=
optimize_onnx
(
"constant_value_float_test.onnx"
);
EXPECT
(
p
==
prog
);
}
TEST_CASE
(
constant_value_floats_test
)
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
mm
->
add_literal
(
migraphx
::
literal
{
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
3
}},
{
1.0
f
,
2.0
f
,
3.0
f
}});
auto
prog
=
optimize_onnx
(
"constant_value_floats_test.onnx"
);
EXPECT
(
p
==
prog
);
}
TEST_CASE
(
constant_value_int_test
)
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
mm
->
add_literal
(
migraphx
::
literal
{
migraphx
::
shape
{
migraphx
::
shape
::
int64_type
,
{
1
}},
{
1
}});
auto
prog
=
optimize_onnx
(
"constant_value_int_test.onnx"
);
EXPECT
(
p
==
prog
);
}
TEST_CASE
(
constant_value_ints_test
)
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
mm
->
add_literal
(
migraphx
::
literal
{
migraphx
::
shape
{
migraphx
::
shape
::
int64_type
,
{
3
}},
{
1
,
2
,
3
}});
auto
prog
=
optimize_onnx
(
"constant_value_ints_test.onnx"
);
EXPECT
(
p
==
prog
);
}
TEST_CASE
(
constant_no_attributes_test
)
{
EXPECT
(
test
::
throws
([
&
]
{
optimize_onnx
(
"constant_no_attributes_test.onnx"
);
}));
}
TEST_CASE
(
constant_multiple_attributes_test
)
{
EXPECT
(
test
::
throws
([
&
]
{
optimize_onnx
(
"constant_multiple_attributes_test.onnx"
);
}));
}
TEST_CASE
(
constant_fill_test
)
{
migraphx
::
program
p
;
...
...
@@ -5899,7 +5951,13 @@ TEST_CASE(roialign_default_test)
auto
rois
=
mm
->
add_parameter
(
"rois"
,
srois
);
auto
bi
=
mm
->
add_parameter
(
"batch_ind"
,
sbi
);
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"roialign"
),
x
,
rois
,
bi
);
// Due to the onnx model using opset 12, the coordinate_transformation_mode should be set to
// output_half_pixel
auto
r
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"roialign"
,
{{
"coordinate_transformation_mode"
,
"output_half_pixel"
}}),
x
,
rois
,
bi
);
mm
->
add_return
({
r
});
auto
prog
=
migraphx
::
parse_onnx
(
"roialign_default_test.onnx"
);
...
...
test/onnx/verify_onnx.cpp
View file @
f6b08c2a
...
...
@@ -47,7 +47,7 @@ TEST_CASE(averagepool_notset_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -65,7 +65,7 @@ TEST_CASE(averagepool_nt_cip_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -76,15 +76,15 @@ TEST_CASE(batch_norm_flat_test)
migraphx
::
shape
x_shape
{
migraphx
::
shape
::
float_type
,
{
10
}};
migraphx
::
shape
c_shape
(
migraphx
::
shape
::
float_type
,
{
1
});
std
::
vector
<
float
>
x_data
=
{
1.6524342
,
-
0.51048076
,
0.32543048
,
2.4410043
,
2.0833702
,
0.44981122
,
1.0044622
,
-
0.24006313
,
-
0.43065986
,
0.07626268
};
-
0.51048076
,
0.32543048
,
2.4410043
,
2.0833702
,
0.44981122
,
1.0044622
,
-
0.24006313
,
-
0.43065986
,
0.07626268
};
std
::
vector
<
float
>
scale_data
=
{
-
0.02927135
};
std
::
vector
<
float
>
bias_data
=
{
0.42347777
};
std
::
vector
<
float
>
mean_data
=
{
-
0.00449735
};
...
...
@@ -111,7 +111,7 @@ TEST_CASE(batch_norm_flat_test)
0.43305403
,
0.4408022
,
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
)
...
...
@@ -148,7 +148,7 @@ TEST_CASE(batch_norm_rank_2_test)
9.89948504
,
9.89948504
,
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
)
...
...
@@ -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
};
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
)
...
...
@@ -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
,
1.94286156e+00
,
-
7.19223642e+00
,
-
3.70413971e+00
,
-
4.04303551e-01
,
-
1.01827660e+01
,
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
)
...
...
@@ -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
,
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
()};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
TEST_CASE
(
celu_verify_test
)
...
...
@@ -309,12 +309,12 @@ TEST_CASE(celu_verify_test)
std
::
vector
<
float
>
result_vector
;
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
;
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
));
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
correct
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
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
());
});
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
)
...
...
@@ -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
,
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
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
,
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
TEST_CASE
(
spacetodepth_depthtospace_test
)
...
...
@@ -374,11 +374,11 @@ TEST_CASE(spacetodepth_depthtospace_test)
// space to depth
auto
p1
=
migraphx
::
parse_onnx
(
"spacetodepth_simple_test.onnx"
);
p1
.
compile
(
migraphx
::
make_target
(
"ref"
));
std
::
vector
<
float
>
data_in
(
48
);
std
::
iota
(
std
::
begin
(
data_in
),
std
::
end
(
data_in
),
0
);
std
::
vector
<
float
>
gold_
data_in
(
48
);
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
::
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
();
// depth to space
auto
p2
=
migraphx
::
parse_onnx
(
"depthtospace_simple_test.onnx"
);
...
...
@@ -388,7 +388,7 @@ TEST_CASE(spacetodepth_depthtospace_test)
auto
result2
=
p2
.
eval
(
pp2
).
back
();
std
::
vector
<
float
>
result_vector2
;
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
)
...
...
@@ -405,8 +405,8 @@ TEST_CASE(eyelike_verify_test)
std
::
vector
<
float
>
result_vector
;
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.
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
eyelike_mat
));
std
::
vector
<
float
>
gold_
eyelike_mat
=
{
0.
,
1.
,
0.
,
0.
,
0.
,
0.
,
1.
,
0.
,
0.
,
0.
,
0.
,
1.
};
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold_
eyelike_mat
));
}
TEST_CASE
(
eyelike_verify_negk_test
)
...
...
@@ -423,8 +423,8 @@ TEST_CASE(eyelike_verify_negk_test)
std
::
vector
<
float
>
result_vector
;
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.
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
eyelike_mat
));
std
::
vector
<
float
>
gold_
eyelike_mat
=
{
0.
,
0.
,
0.
,
0.
,
0.
,
0.
,
0.
,
0.
,
1.
,
0.
,
0.
,
0.
};
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold_
eyelike_mat
));
}
TEST_CASE
(
gather_elements
)
...
...
@@ -447,7 +447,7 @@ TEST_CASE(gather_elements)
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
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.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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
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
,
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
()};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
TEST_CASE
(
greaterorequal_test
)
...
...
@@ -556,7 +556,7 @@ TEST_CASE(greaterorequal_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -580,7 +580,7 @@ TEST_CASE(hardsigmoid_verify_test)
std
::
transform
(
data
.
begin
(),
data
.
end
(),
gold
.
begin
(),
[
&
](
auto
x
)
{
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
)
...
...
@@ -602,7 +602,7 @@ TEST_CASE(if_else_test)
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
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
());
});
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
)
...
...
@@ -644,7 +644,7 @@ TEST_CASE(if_then_test)
// 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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
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
());
});
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
)
...
...
@@ -688,14 +688,14 @@ TEST_CASE(if_literal_test)
{
auto
result_vector
=
run_prog
(
true
);
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
{
auto
result_vector
=
run_prog
(
false
);
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)
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
};
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
)
...
...
@@ -757,7 +757,7 @@ TEST_CASE(if_then_else_multi_output_shapes_test)
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
TEST_CASE
(
if_pl_test
)
...
...
@@ -789,14 +789,14 @@ TEST_CASE(if_pl_test)
{
auto
result_vector
=
run_prog
(
true
);
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
{
auto
result_vector
=
run_prog
(
false
);
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)
auto
results
=
run_prog
(
true
);
std
::
vector
<
float
>
gold0
(
4
,
2.0
f
);
std
::
vector
<
float
>
gold1
(
12
,
4.0
f
);
EXPECT
(
migraphx
::
verify
::
verify_range
(
results
.
at
(
0
),
gold0
));
EXPECT
(
migraphx
::
verify
::
verify_range
(
results
.
at
(
1
),
gold1
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results
.
at
(
0
),
gold0
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results
.
at
(
1
),
gold1
));
}
// else branch
...
...
@@ -844,8 +844,8 @@ TEST_CASE(if_tuple_test)
auto
results
=
run_prog
(
false
);
std
::
vector
<
float
>
gold0
(
4
,
3.0
f
);
std
::
vector
<
float
>
gold1
(
12
,
5.0
f
);
EXPECT
(
migraphx
::
verify
::
verify_range
(
results
.
at
(
0
),
gold0
));
EXPECT
(
migraphx
::
verify
::
verify_range
(
results
.
at
(
1
),
gold1
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results
.
at
(
0
),
gold0
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results
.
at
(
1
),
gold1
));
}
}
...
...
@@ -876,7 +876,7 @@ TEST_CASE(instance_norm_test)
2.54919
,
3.32379
,
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
)
...
...
@@ -918,7 +918,7 @@ TEST_CASE(instance_norm_dyn_batch_test)
2.54919
,
3.32379
,
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
)
...
...
@@ -947,7 +947,7 @@ TEST_CASE(instance_norm_3d_test)
3.18218
,
4.05505
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
TEST_CASE
(
lessorequal_test
)
...
...
@@ -968,7 +968,7 @@ TEST_CASE(lessorequal_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -996,7 +996,7 @@ TEST_CASE(lpnormalization_1norm)
3.
f
/
7.
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
)
...
...
@@ -1012,19 +1012,19 @@ TEST_CASE(lpnormalization_2norm)
std
::
vector
<
float
>
result_vector
;
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
correct
{
0.
f
,
2.
f
/
3.
f
,
-
2.
f
/
3.
f
,
1.
f
/
3.
f
,
1.
f
/
6.
f
,
-
5.
f
/
6.
f
,
3.
f
/
6.
f
,
-
1.
f
/
6.
f
,
-
4.
f
/
5.
f
,
3.
f
/
5.
f
,
0.
f
,
0.
f
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
correct
));
std
::
vector
<
float
>
gold
{
0.
f
,
2.
f
/
3.
f
,
-
2.
f
/
3.
f
,
1.
f
/
3.
f
,
1.
f
/
6.
f
,
-
5.
f
/
6.
f
,
3.
f
/
6.
f
,
-
1.
f
/
6.
f
,
-
4.
f
/
5.
f
,
3.
f
/
5.
f
,
0.
f
,
0.
f
};
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
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
());
});
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
)
...
...
@@ -1082,7 +1082,7 @@ TEST_CASE(mean_test)
const
auto
mean
=
std
::
accumulate
(
scalars
.
begin
(),
scalars
.
end
(),
0.0
)
/
num_data
;
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
)
...
...
@@ -1109,7 +1109,7 @@ TEST_CASE(mean_integral_test)
const
auto
mean
=
std
::
accumulate
(
scalars
.
begin
(),
scalars
.
end
(),
0
)
/
num_data
;
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
)
...
...
@@ -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
,
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
)
...
...
@@ -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
,
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
)
...
...
@@ -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
,
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
)
...
...
@@ -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
,
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
)
...
...
@@ -1242,7 +1242,7 @@ TEST_CASE(nonzero_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -1263,7 +1263,7 @@ TEST_CASE(resize_downsample_f_test)
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
)
...
...
@@ -1298,7 +1298,7 @@ TEST_CASE(resize_upsample_linear_ac_test)
11.0
f
/
3
,
4
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
TEST_CASE
(
resize_upsample_linear_test
)
...
...
@@ -1319,7 +1319,7 @@ TEST_CASE(resize_upsample_linear_test)
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
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
,
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
)
...
...
@@ -1361,7 +1361,7 @@ TEST_CASE(reversesequence_4D_verify_test)
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
TEST_CASE
(
reversesequence_batch_verify_test
)
...
...
@@ -1382,7 +1382,7 @@ TEST_CASE(reversesequence_batch_verify_test)
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
TEST_CASE
(
reversesequence_time_verify_test
)
...
...
@@ -1403,7 +1403,7 @@ TEST_CASE(reversesequence_time_verify_test)
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
TEST_CASE
(
size_verify_test
)
...
...
@@ -1457,7 +1457,7 @@ TEST_CASE(slice_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -1477,7 +1477,7 @@ TEST_CASE(slice_5arg_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -1497,7 +1497,7 @@ TEST_CASE(slice_reverse_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -1517,7 +1517,7 @@ TEST_CASE(slice_step_test)
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -1538,7 +1538,7 @@ TEST_CASE(softplus_test)
std
::
transform
(
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
)
...
...
@@ -1559,7 +1559,7 @@ TEST_CASE(softsign_test)
std
::
transform
(
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
)
...
...
@@ -1578,7 +1578,7 @@ TEST_CASE(upsample_test)
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
TEST_CASE
(
where_test
)
...
...
@@ -1620,7 +1620,7 @@ TEST_CASE(where_test)
2.0
f
,
1.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
)
...
...
@@ -1645,7 +1645,7 @@ TEST_CASE(trilu_test)
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
)
...
...
@@ -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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
result_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
result_vector
,
gold
));
}
TEST_CASE
(
trilu_out_k_test
)
...
...
@@ -1678,7 +1678,7 @@ TEST_CASE(trilu_out_k_test)
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
)
...
...
@@ -1689,7 +1689,7 @@ TEST_CASE(trilu_row_one_test)
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
);
}
test/op_shape_test.cpp
View file @
f6b08c2a
...
...
@@ -88,6 +88,13 @@ TEST_CASE(allocate_static)
expect_shape
(
out_shape
,
migraphx
::
make_op
(
"allocate"
,
{{
"shape"
,
to_value
(
out_shape
)}}));
}
TEST_CASE
(
allocate_static_input_error
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
int64_type
,
{
3
}};
migraphx
::
shape
out_shape
{
migraphx
::
shape
::
float_type
,
{
2
,
3
,
4
}};
expect_shape
(
out_shape
,
migraphx
::
make_op
(
"allocate"
,
{{
"shape"
,
to_value
(
out_shape
)}}),
input
);
}
TEST_CASE
(
allocate_dyn
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
int64_type
,
{
2
}};
...
...
@@ -109,6 +116,14 @@ TEST_CASE(allocate_dyn_with_shape_attr)
input
);
}
TEST_CASE
(
allocate_dyn_no_input_error
)
{
migraphx
::
shape
shape_attr
{
migraphx
::
shape
::
float_type
,
{{
1
,
4
},
{
3
,
3
},
{
4
,
8
,
{
4
,
6
}},
{
4
,
8
},
{
4
,
6
}}};
expect_shape
(
shape_attr
,
migraphx
::
make_op
(
"allocate"
,
{{
"shape"
,
migraphx
::
to_value
(
shape_attr
)}}));
}
TEST_CASE
(
argmax_axis0
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
half_type
,
{
2
,
3
,
4
,
5
}};
...
...
@@ -2524,13 +2539,21 @@ TEST_CASE(reshape_shape)
migraphx
::
shape
output
{
migraphx
::
shape
::
float_type
,
lens
};
expect_shape
(
output
,
migraphx
::
make_op
(
"reshape"
,
{{
"dims"
,
new_shape
}}),
input
);
}
}
TEST_CASE
(
reshape_shape_invalid
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{
24
,
1
,
1
,
1
}};
for
(
auto
&&
new_shape
:
std
::
vector
<
std
::
vector
<
int64_t
>>
{{
8
,
3
,
2
,
2
},
{
1
,
3
,
-
1
,
-
1
},
{
3
,
0
},
{
3
,
2
}})
{
throws_shape
(
migraphx
::
make_op
(
"reshape"
,
{{
"dims"
,
new_shape
}}),
input
);
}
}
TEST_CASE
(
reshape_shape_minus1_reshapes
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{
24
,
1
,
1
,
1
}};
std
::
vector
<
std
::
pair
<
std
::
vector
<
int64_t
>
,
migraphx
::
shape
>>
minus1_tests
{
{{
2
,
-
1
,
3
},
{
migraphx
::
shape
::
float_type
,
{
2
,
4
,
3
}}},
{{
0
,
-
1
,
0
},
{
migraphx
::
shape
::
float_type
,
{
24
,
1
,
1
}}},
...
...
@@ -2654,11 +2677,11 @@ TEST_CASE(reshape_broadcast_squeeze)
expect_shape
(
output
,
migraphx
::
make_op
(
"reshape"
,
{{
"dims"
,
output
.
lens
()}}),
input
);
}
TEST_CASE
(
reshape_broadcast_squeeze_
error
)
TEST_CASE
(
reshape_broadcast_squeeze_
memlayout_change
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{
2
,
16
,
16
,
1280
},
{
0
,
0
,
0
,
1
}};
std
::
vector
<
int64_t
>
new_shape
=
{
2
,
16
,
20480
};
throws
_shape
(
migraphx
::
make_op
(
"reshape"
,
{{
"dims"
,
new_shape
}}),
input
);
migraphx
::
shape
output
{
migraphx
::
shape
::
float_type
,
{
2
,
16
,
256
,
80
},
{
0
,
0
,
0
,
16
}
};
expect
_shape
(
output
,
migraphx
::
make_op
(
"reshape"
,
{{
"dims"
,
output
.
lens
()
}}),
input
);
}
TEST_CASE
(
reshape_dyn_shape
)
...
...
@@ -2706,6 +2729,199 @@ TEST_CASE(reshape_non_fixed_not_matching_error)
throws_shape
(
migraphx
::
make_op
(
"reshape"
,
{{
"dims"
,
new_shape
}}),
input
);
}
TEST_CASE
(
reshape_lazy_shape
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{
24
,
1
,
1
,
1
}};
for
(
auto
&&
new_shape
:
std
::
vector
<
std
::
vector
<
int64_t
>>
{{
8
,
3
,
1
,
1
},
{
1
,
3
,
4
,
2
},
{
1
,
3
,
4
,
2
}})
{
std
::
vector
<
std
::
size_t
>
lens
(
new_shape
.
size
());
std
::
copy
(
new_shape
.
begin
(),
new_shape
.
end
(),
lens
.
begin
());
migraphx
::
shape
output
{
migraphx
::
shape
::
float_type
,
lens
};
expect_shape
(
output
,
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
new_shape
}}),
input
);
}
for
(
auto
&&
new_shape
:
std
::
vector
<
std
::
vector
<
int64_t
>>
{{
8
,
3
,
2
,
2
},
{
1
,
3
,
-
1
,
-
1
},
{
3
,
0
},
{
3
,
2
}})
{
throws_shape
(
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
new_shape
}}),
input
);
}
std
::
vector
<
std
::
pair
<
std
::
vector
<
int64_t
>
,
migraphx
::
shape
>>
minus1_tests
{
{{
2
,
-
1
,
3
},
{
migraphx
::
shape
::
float_type
,
{
2
,
4
,
3
}}},
{{
0
,
-
1
,
0
},
{
migraphx
::
shape
::
float_type
,
{
24
,
1
,
1
}}},
{{
2
,
-
1
,
0
},
{
migraphx
::
shape
::
float_type
,
{
2
,
12
,
1
}}},
{{
0
,
0
,
-
1
},
{
migraphx
::
shape
::
float_type
,
{
24
,
1
,
1
}}},
{{
2
,
0
,
-
1
},
{
migraphx
::
shape
::
float_type
,
{
2
,
1
,
12
}}},
{{
-
1
,
2
,
3
},
{
migraphx
::
shape
::
float_type
,
{
4
,
2
,
3
}}},
{{
-
1
,
0
,
3
},
{
migraphx
::
shape
::
float_type
,
{
8
,
1
,
3
}}},
{{
-
1
,
0
,
0
},
{
migraphx
::
shape
::
float_type
,
{
24
,
1
,
1
}}},
{{
-
1
,
3
,
0
},
{
migraphx
::
shape
::
float_type
,
{
8
,
3
,
1
}}}};
for
(
auto
&
it
:
minus1_tests
)
{
expect_shape
(
it
.
second
,
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
it
.
first
}}),
input
);
}
}
// This uses the permutation to compute the reshape_lazy since its simpler than
// trying to calculate strides. As we collapse or expand dimensions, we
// remove the collapsed dimensions or duplicate the expanded dimensions in
// the permutation. Then we renumber the permutation. So for dimensions of 4,
// 24, 1, 1, 1 with a permutation of 1, 0, 2, 3, 4 that reshape_lazys to 4, 1, 3,
// 4, 2, we first remove the collapsed dimensions or duplicate the expanded
// dimensions which gives 1, 0, 0, 0, 0. Then after renumbering we get a
// final permutation of 4, 0, 1, 2, 3.
TEST_CASE
(
reshape_lazy_nonstandard
)
{
auto
input
=
migraphx
::
shape
::
from_permutation
(
migraphx
::
shape
::
float_type
,
{
4
,
24
,
1
,
1
,
1
},
migraphx
::
invert_permutation
({
1
,
0
,
2
,
3
,
4
}));
std
::
vector
<
std
::
pair
<
std
::
vector
<
std
::
size_t
>
,
std
::
vector
<
int64_t
>>>
tests
{
{{
4
,
24
},
{
1
,
0
}},
{{
4
,
24
,
1
,
1
,
1
,
1
},
{
1
,
0
,
2
,
3
,
4
,
5
}},
{{
4
,
8
,
3
,
1
,
1
},
{
2
,
0
,
1
,
3
,
4
}},
{{
4
,
1
,
3
,
4
,
2
},
{
4
,
0
,
1
,
2
,
3
}},
{{
4
,
1
,
4
,
3
,
2
},
{
4
,
0
,
1
,
2
,
3
}},
{{
4
,
2
,
4
,
3
},
{
3
,
0
,
1
,
2
}},
{{
4
,
2
,
12
,
1
},
{
2
,
0
,
1
,
3
}},
{{
4
,
2
,
1
,
12
},
{
3
,
0
,
1
,
2
}},
{{
4
,
4
,
2
,
3
},
{
3
,
0
,
1
,
2
}},
{{
4
,
8
,
1
,
3
},
{
3
,
0
,
1
,
2
}},
{{
4
,
8
,
3
,
1
},
{
2
,
0
,
1
,
3
}}};
for
(
const
auto
&
[
dims
,
perm
]
:
tests
)
{
migraphx
::
shape
output
=
migraphx
::
shape
::
from_permutation
(
migraphx
::
shape
::
float_type
,
dims
,
migraphx
::
invert_permutation
(
perm
));
expect_shape
(
output
,
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
dims
}}),
input
);
}
}
TEST_CASE
(
reshape_lazy_nonstandard_squeeze
)
{
auto
input
=
migraphx
::
shape
::
from_permutation
(
migraphx
::
shape
::
float_type
,
{
2
,
16
,
16
,
1280
},
migraphx
::
invert_permutation
({
0
,
2
,
3
,
1
}));
std
::
vector
<
std
::
size_t
>
lens
=
{
2
,
256
,
1280
};
migraphx
::
shape
output
=
migraphx
::
shape
::
from_permutation
(
migraphx
::
shape
::
float_type
,
lens
,
migraphx
::
invert_permutation
({
0
,
2
,
1
}));
expect_shape
(
output
,
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
lens
}}),
input
);
}
TEST_CASE
(
reshape_lazy_nonstandard_error
)
{
auto
input
=
migraphx
::
shape
::
from_permutation
(
migraphx
::
shape
::
float_type
,
{
4
,
24
,
1
,
1
,
1
},
migraphx
::
invert_permutation
({
1
,
0
,
2
,
3
,
4
}));
for
(
auto
&&
new_shape
:
std
::
vector
<
std
::
vector
<
int64_t
>>
{{
4
,
8
,
3
,
2
,
2
},
{
1
},
{
4
,
8
,
4
},
{
4
,
24
,
1
,
1
,
1
,
1
,
2
},
{
8
,
4
,
4
},
{
4
,
1
,
3
,
-
1
,
-
1
},
{
4
,
3
,
0
},
{
4
,
3
,
2
},
{
3
,
0
},
{
3
,
2
}})
{
throws_shape
(
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
new_shape
}}),
input
);
}
}
TEST_CASE
(
reshape_lazy_nonpacked_unsqueeze1
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{
4
,
16
},
{
32
,
2
}};
migraphx
::
shape
output
{
migraphx
::
shape
::
float_type
,
{
4
,
2
,
8
},
{
32
,
16
,
2
}};
expect_shape
(
output
,
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
output
.
lens
()}}),
input
);
}
TEST_CASE
(
reshape_lazy_nonpacked_unsqueeze2
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{
4
,
16
},
{
32
,
2
}};
migraphx
::
shape
output
{
migraphx
::
shape
::
float_type
,
{
2
,
2
,
16
},
{
64
,
32
,
2
}};
expect_shape
(
output
,
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
output
.
lens
()}}),
input
);
}
TEST_CASE
(
reshape_lazy_nonpacked_squeeze
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{
4
,
16
},
{
32
,
2
}};
migraphx
::
shape
output
{
migraphx
::
shape
::
float_type
,
{
64
},
{
2
}};
expect_shape
(
output
,
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
output
.
lens
()}}),
input
);
}
TEST_CASE
(
reshape_lazy_broadcast_unsqueeze1
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{
2
,
256
,
1280
},
{
0
,
0
,
1
}};
migraphx
::
shape
output
{
migraphx
::
shape
::
float_type
,
{
2
,
16
,
16
,
1280
},
{
0
,
0
,
0
,
1
}};
expect_shape
(
output
,
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
output
.
lens
()}}),
input
);
}
TEST_CASE
(
reshape_lazy_broadcast_unsqueeze2
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{
2
,
256
,
1280
},
{
0
,
0
,
1
}};
migraphx
::
shape
output
{
migraphx
::
shape
::
float_type
,
{
2
,
256
,
16
,
80
},
{
0
,
0
,
80
,
1
}};
expect_shape
(
output
,
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
output
.
lens
()}}),
input
);
}
TEST_CASE
(
reshape_lazy_broadcast_squeeze
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{
2
,
16
,
16
,
1280
},
{
0
,
0
,
0
,
1
}};
migraphx
::
shape
output
{
migraphx
::
shape
::
float_type
,
{
2
,
256
,
1280
},
{
0
,
0
,
1
}};
expect_shape
(
output
,
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
output
.
lens
()}}),
input
);
}
TEST_CASE
(
reshape_lazy_broadcast_squeeze_error
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{
2
,
16
,
16
,
1280
},
{
0
,
0
,
0
,
1
}};
std
::
vector
<
int64_t
>
new_shape
=
{
2
,
16
,
20480
};
throws_shape
(
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
new_shape
}}),
input
);
}
TEST_CASE
(
reshape_lazy_dyn_shape
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{{
1
,
4
},
{
24
,
24
},
{
1
,
1
},
{
1
,
1
}}};
for
(
auto
&&
new_shape
:
std
::
vector
<
std
::
vector
<
int64_t
>>
{
{
-
1
,
1
,
1
,
24
},
{
0
,
8
,
3
,
1
},
{
-
1
,
3
,
4
,
2
},
{
0
,
2
,
4
,
3
}})
{
std
::
vector
<
migraphx
::
shape
::
dynamic_dimension
>
out_dyn_dims
{};
for
(
std
::
size_t
i
=
0
;
i
<
new_shape
.
size
();
++
i
)
{
if
(
new_shape
[
i
]
==
0
or
new_shape
[
i
]
==
-
1
)
{
out_dyn_dims
.
push_back
(
input
.
dyn_dims
().
at
(
i
));
}
else
{
std
::
size_t
d
=
new_shape
[
i
];
out_dyn_dims
.
push_back
({
d
,
d
});
}
}
migraphx
::
shape
output
{
migraphx
::
shape
::
float_type
,
out_dyn_dims
};
expect_shape
(
output
,
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
new_shape
}}),
input
);
}
}
TEST_CASE
(
reshape_lazy_multiple_non_fixed_error
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{{
1
,
4
},
{
24
,
24
},
{
10
,
20
},
{
1
,
1
}}};
std
::
vector
<
int64_t
>
new_shape
=
{
0
,
1
,
0
,
24
};
throws_shape
(
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
new_shape
}}),
input
);
}
TEST_CASE
(
reshape_lazy_fixed_ele_not_matching_error
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{{
1
,
4
},
{
24
,
24
},
{
10
,
10
},
{
1
,
1
}}};
std
::
vector
<
int64_t
>
new_shape
=
{
0
,
1
,
5
,
24
};
throws_shape
(
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
new_shape
}}),
input
);
}
TEST_CASE
(
reshape_lazy_non_fixed_not_matching_error
)
{
migraphx
::
shape
input
{
migraphx
::
shape
::
float_type
,
{{
1
,
4
},
{
24
,
24
},
{
1
,
1
},
{
1
,
1
}}};
std
::
vector
<
int64_t
>
new_shape
=
{
2
,
1
,
1
,
24
};
throws_shape
(
migraphx
::
make_op
(
"reshape_lazy"
,
{{
"dims"
,
new_shape
}}),
input
);
}
TEST_CASE
(
return_shape_tuple
)
{
using
migraphx
::
shape
;
...
...
test/optimize_module_test.cpp
0 → 100644
View file @
f6b08c2a
/*
* The MIT License (MIT)
*
* Copyright (c) 2015-2023 Advanced Micro Devices, Inc. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <migraphx/literal.hpp>
#include <migraphx/make_op.hpp>
#include <migraphx/module.hpp>
#include <migraphx/optimize_module.hpp>
#include <migraphx/pass_manager.hpp>
#include <migraphx/serialize.hpp>
#include <test.hpp>
void
run_pass
(
migraphx
::
module
&
m
)
{
migraphx
::
run_passes
(
m
,
{
migraphx
::
optimize_module
{}});
}
TEST_CASE
(
broadcast_transpose_inner_broadcast
)
{
// first optimizes broadcast+transpose to just a broadcast,
// then finds inner broadcast to become mul+broadcast
migraphx
::
module
m1
;
{
auto
l1
=
m1
.
add_parameter
(
"x"
,
{
migraphx
::
shape
::
float_type
,
{
1
},
{
0
}});
auto
l2
=
m1
.
add_parameter
(
"y"
,
{
migraphx
::
shape
::
float_type
,
{
1
},
{
0
}});
auto
mb1
=
m1
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
{
2
,
2
,
3
}}}),
l1
);
auto
mb2
=
m1
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
{
2
,
3
,
2
}}}),
l2
);
auto
t1
=
m1
.
add_instruction
(
migraphx
::
make_op
(
"transpose"
,
{{
"permutation"
,
{
0
,
2
,
1
}}}),
mb1
);
auto
mul
=
m1
.
add_instruction
(
migraphx
::
make_op
(
"mul"
),
mb2
,
t1
);
m1
.
add_return
({
mul
});
}
run_pass
(
m1
);
migraphx
::
module
m2
;
{
auto
l1
=
m2
.
add_parameter
(
"x"
,
{
migraphx
::
shape
::
float_type
,
{
1
},
{
0
}});
auto
l2
=
m2
.
add_parameter
(
"y"
,
{
migraphx
::
shape
::
float_type
,
{
1
},
{
0
}});
auto
mul
=
m2
.
add_instruction
(
migraphx
::
make_op
(
"mul"
),
l2
,
l1
);
auto
mb
=
m2
.
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
{
2
,
3
,
2
}}}),
mul
);
m2
.
add_return
({
mb
});
}
EXPECT
(
m1
==
m2
);
}
int
main
(
int
argc
,
const
char
*
argv
[])
{
test
::
run
(
argc
,
argv
);
}
test/py/onnx_backend_test.py
View file @
f6b08c2a
...
...
@@ -104,9 +104,209 @@ def disabled_tests_onnx_1_10_0(backend_test):
backend_test
.
exclude
(
r
'test_shape_start_negative_1_cpu'
)
def
disabled_tests_onnx_1_12_0
(
backend_test
):
def
disabled_tests_onnx_1_11_0
(
backend_test
):
# crash
backend_test
.
exclude
(
r
'test_scatter_elements_with_duplicate_indices_cpu'
)
# fails
backend_test
.
exclude
(
r
'test_roialign_aligned_false_cpu'
)
backend_test
.
exclude
(
r
'test_roialign_aligned_true_cpu'
)
backend_test
.
exclude
(
r
'test_scatternd_add_cpu'
)
backend_test
.
exclude
(
r
'test_scatternd_multiply_cpu'
)
# errors
backend_test
.
exclude
(
r
'test_identity_opt_cpu'
)
backend_test
.
exclude
(
r
'test_if_opt_cpu'
)
def
disabled_tests_onnx_1_12_0
(
backend_test
):
pass
def
disabled_tests_onnx_1_13_0
(
backend_test
):
# fails
backend_test
.
exclude
(
r
'test_reduce_l1_do_not_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_do_not_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_keep_dims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_keep_dims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_negative_axes_keep_dims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_negative_axes_keep_dims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_do_not_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_do_not_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_keep_dims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_keep_dims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_negative_axes_keep_dims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_negative_axes_keep_dims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_do_not_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_do_not_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_negative_axes_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_negative_axes_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_do_not_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_do_not_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_negative_axes_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_negative_axes_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_scatternd_max_cpu'
)
backend_test
.
exclude
(
r
'test_scatternd_min_cpu'
)
# errors
backend_test
.
exclude
(
r
'test_constant_pad_axes_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_default_axes_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_default_axes_keepdims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_default_axes_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_default_axes_keepdims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_do_not_keepdims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_do_not_keepdims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_keep_dims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_keep_dims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_negative_axes_keep_dims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l1_negative_axes_keep_dims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_default_axes_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_default_axes_keepdims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_default_axes_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_default_axes_keepdims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_do_not_keepdims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_do_not_keepdims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_keep_dims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_keep_dims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_negative_axes_keep_dims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_l2_negative_axes_keep_dims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_asc_axes_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_asc_axes_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_default_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_default_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_desc_axes_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_desc_axes_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_default_axes_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_default_axes_keepdims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_default_axes_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_default_axes_keepdims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_do_not_keepdims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_do_not_keepdims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_keepdims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_keepdims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_negative_axes_keepdims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_exp_negative_axes_keepdims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_negative_axes_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_log_sum_negative_axes_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_max_do_not_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_max_do_not_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_max_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_max_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_max_negative_axes_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_max_negative_axes_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_mean_default_axes_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_mean_default_axes_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_mean_do_not_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_mean_do_not_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_mean_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_mean_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_mean_negative_axes_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_mean_negative_axes_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_min_do_not_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_min_do_not_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_min_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_min_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_min_negative_axes_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_min_negative_axes_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_prod_do_not_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_prod_do_not_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_prod_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_prod_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_prod_negative_axes_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_prod_negative_axes_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_default_axes_keepdims_example_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_default_axes_keepdims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_default_axes_keepdims_random_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_default_axes_keepdims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_do_not_keepdims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_do_not_keepdims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_keepdims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_keepdims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_negative_axes_keepdims_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_reduce_sum_square_negative_axes_keepdims_random_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_scatter_elements_with_reduction_max_cpu'
)
backend_test
.
exclude
(
r
'test_scatter_elements_with_reduction_min_cpu'
)
# The following tests fail due to the CastLike operator being unsupported
backend_test
.
exclude
(
r
'test_elu_default_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_elu_example_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_elu_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_hardsigmoid_default_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_hardsigmoid_example_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_hardsigmoid_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_leakyrelu_default_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_leakyrelu_example_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_leakyrelu_expanded_cpu'
)
backend_test
.
exclude
(
r
'test_selu_default_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_selu_example_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_selu_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_thresholdedrelu_default_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_thresholdedrelu_example_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_thresholdedrelu_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_relu_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_softsign_example_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_softsign_expanded_ver18_cpu'
)
def
disabled_tests_onnx_1_14_0
(
backend_test
):
# fails
backend_test
.
exclude
(
r
'test_averagepool_2d_dilations_cpu'
)
backend_test
.
exclude
(
r
'test_roialign_mode_max_cpu'
)
# errors
backend_test
.
exclude
(
r
'test_constant_pad_negative_axes_cpu'
)
backend_test
.
exclude
(
r
'test_dequantizelinear_e4m3fn_cpu'
)
backend_test
.
exclude
(
r
'test_dequantizelinear_e5m2_cpu'
)
backend_test
.
exclude
(
r
'test_equal_string_broadcast_cpu'
)
backend_test
.
exclude
(
r
'test_equal_string_cpu'
)
backend_test
.
exclude
(
r
'test_quantizelinear_e4m3fn_cpu'
)
backend_test
.
exclude
(
r
'test_quantizelinear_e5m2_cpu'
)
# The following tests fail due to the CastLike operator being unsupported
backend_test
.
exclude
(
r
'test_softplus_example_expanded_ver18_cpu'
)
backend_test
.
exclude
(
r
'test_softplus_expanded_ver18_cpu'
)
def
create_backend_test
(
testname
=
None
,
target_device
=
None
):
if
target_device
is
not
None
:
...
...
@@ -331,9 +531,18 @@ def create_backend_test(testname=None, target_device=None):
if
version
.
parse
(
onnx
.
__version__
)
>=
version
.
parse
(
"1.10.0"
):
disabled_tests_onnx_1_10_0
(
backend_test
)
if
version
.
parse
(
onnx
.
__version__
)
>=
version
.
parse
(
"1.11.0"
):
disabled_tests_onnx_1_11_0
(
backend_test
)
if
version
.
parse
(
onnx
.
__version__
)
>=
version
.
parse
(
"1.12.0"
):
disabled_tests_onnx_1_12_0
(
backend_test
)
if
version
.
parse
(
onnx
.
__version__
)
>=
version
.
parse
(
"1.13.0"
):
disabled_tests_onnx_1_13_0
(
backend_test
)
if
version
.
parse
(
onnx
.
__version__
)
>=
version
.
parse
(
"1.14.0"
):
disabled_tests_onnx_1_14_0
(
backend_test
)
# import all test cases at global scope to make
# them visible to python.unittest.
...
...
test/quantization.cpp
View file @
f6b08c2a
...
...
@@ -83,7 +83,7 @@ TEST_CASE(param_add)
auto
hs
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
hp1
,
hp2
);
auto
fs
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"convert"
,
{{
"target_type"
,
migraphx
::
to_value
(
migraphx
::
shape
::
float_type
)}}),
{{
"target_type"
,
migraphx
::
to_value
(
migraphx
::
shape
::
float_type
)}}),
hs
);
if
(
add_return
)
{
...
...
@@ -1013,7 +1013,7 @@ TEST_CASE(target_copy)
std
::
vector
<
float
>
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)
std
::
vector
<
float
>
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)
std
::
vector
<
float
>
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)
cap_res
.
visit
([
&
](
auto
output
)
{
cap_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
);
}
test/ref/CMakeLists.txt
View file @
f6b08c2a
...
...
@@ -24,7 +24,7 @@
file
(
GLOB REF CONFIGURE_DEPENDS *.cpp
)
add_test_executable
(
test_ref
${
REF
}
)
rocm_
add_test_executable
(
test_ref
${
REF
}
)
target_include_directories
(
test_ref PUBLIC ../include
)
rocm_clang_tidy_check
(
test_ref
)
test/ref/abs.cpp
View file @
f6b08c2a
...
...
@@ -42,7 +42,7 @@ TEST_CASE(abs_test)
std
::
vector
<
float
>
results_vector
(
4
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -62,5 +62,5 @@ TEST_CASE(abs_dyn_test)
std
::
vector
<
float
>
results_vector
(
4
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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 @
f6b08c2a
...
...
@@ -45,7 +45,7 @@ TEST_CASE(acos_test)
std
::
vector
<
float
>
gold
=
data
;
std
::
transform
(
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
)
...
...
@@ -68,5 +68,5 @@ TEST_CASE(acos_dyn_test)
std
::
vector
<
float
>
gold
=
input_data
;
std
::
transform
(
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 @
f6b08c2a
...
...
@@ -45,7 +45,7 @@ TEST_CASE(acosh_test)
std
::
vector
<
float
>
gold
=
data
;
std
::
transform
(
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
)
...
...
@@ -68,5 +68,5 @@ TEST_CASE(acosh_dyn_test)
std
::
vector
<
float
>
gold
=
input_data
;
std
::
transform
(
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 @
f6b08c2a
...
...
@@ -51,7 +51,7 @@ TEST_CASE(add_broadcast_test)
std
::
vector
<
float
>
results_vector
(
12
);
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
TEST_CASE
(
add_multibroadcast_test
)
...
...
@@ -75,7 +75,7 @@ TEST_CASE(add_multibroadcast_test)
std
::
vector
<
float
>
results_vector
(
12
);
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
};
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
TEST_CASE
(
add_test
)
...
...
@@ -91,7 +91,7 @@ TEST_CASE(add_test)
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -115,7 +115,7 @@ TEST_CASE(add_dyn_test)
std
::
vector
<
float
>
results_vector
(
3
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -134,7 +134,7 @@ TEST_CASE(fp16_test)
std
::
vector
<
migraphx
::
half
>
results_vector
(
1
);
result
.
visit
([
&
](
auto
output
)
{
results_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
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
)
...
...
@@ -159,7 +159,7 @@ TEST_CASE(fp32_fp16_test)
auto
result
=
p
.
eval
({}).
back
();
std
::
vector
<
float
>
res
;
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/ref/argmax.cpp
View file @
f6b08c2a
...
...
@@ -47,7 +47,7 @@ TEST_CASE(argmax_test_0)
std
::
vector
<
int64_t
>
result_vec
;
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
)
...
...
@@ -66,7 +66,7 @@ TEST_CASE(argmax_test_1)
std
::
vector
<
int64_t
>
result_vec
;
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
)
...
...
@@ -85,7 +85,7 @@ TEST_CASE(argmax_test_2)
std
::
vector
<
int64_t
>
result_vec
;
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
)
...
...
@@ -104,7 +104,7 @@ TEST_CASE(argmax_test_neg_2)
std
::
vector
<
int64_t
>
result_vec
;
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
)
...
...
@@ -126,7 +126,7 @@ TEST_CASE(argmax_dyn_test)
std
::
vector
<
int64_t
>
result_vec
;
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
};
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
)
...
...
@@ -145,5 +145,5 @@ TEST_CASE(argmax_test_nonstd_shape)
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
int64_t
>
res_gold_vec
;
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 @
f6b08c2a
...
...
@@ -47,7 +47,7 @@ TEST_CASE(argmin_test_0)
std
::
vector
<
int64_t
>
result_vec
;
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
)
...
...
@@ -66,7 +66,7 @@ TEST_CASE(argmin_test_1)
std
::
vector
<
int64_t
>
result_vec
;
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
)
...
...
@@ -85,7 +85,7 @@ TEST_CASE(argmin_test_2)
std
::
vector
<
int64_t
>
result_vec
;
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
)
...
...
@@ -104,7 +104,7 @@ TEST_CASE(argmin_test_neg_1)
std
::
vector
<
int64_t
>
result_vec
;
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
)
...
...
@@ -123,5 +123,5 @@ TEST_CASE(argmin_test_nonstd_shape)
result
.
visit
([
&
](
auto
output
)
{
result_vec
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
int64_t
>
res_gold_vec
;
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/asin.cpp
View file @
f6b08c2a
...
...
@@ -45,7 +45,7 @@ TEST_CASE(asin_test)
std
::
vector
<
float
>
gold
=
data
;
std
::
transform
(
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
asinf
(
n
);
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
TEST_CASE
(
asin_dyn_test
)
...
...
@@ -68,5 +68,5 @@ TEST_CASE(asin_dyn_test)
std
::
vector
<
float
>
gold
=
input_data
;
std
::
transform
(
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
asinf
(
n
);
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
test/ref/asinh.cpp
View file @
f6b08c2a
...
...
@@ -45,7 +45,7 @@ TEST_CASE(asinh_test)
std
::
vector
<
float
>
gold
=
data
;
std
::
transform
(
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
asinhf
(
n
);
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
TEST_CASE
(
asinh_dyn_test
)
...
...
@@ -68,5 +68,5 @@ TEST_CASE(asinh_dyn_test)
std
::
vector
<
float
>
gold
=
input_data
;
std
::
transform
(
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
asinhf
(
n
);
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
test/ref/atan.cpp
View file @
f6b08c2a
...
...
@@ -45,7 +45,7 @@ TEST_CASE(atan_test)
std
::
vector
<
float
>
gold
=
data
;
std
::
transform
(
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
atanf
(
n
);
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
TEST_CASE
(
atan_dyn_test
)
...
...
@@ -68,5 +68,5 @@ TEST_CASE(atan_dyn_test)
std
::
vector
<
float
>
gold
=
input_data
;
std
::
transform
(
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
atanf
(
n
);
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
test/ref/atanh.cpp
View file @
f6b08c2a
...
...
@@ -45,7 +45,7 @@ TEST_CASE(atanh_test)
std
::
vector
<
float
>
gold
=
data
;
std
::
transform
(
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
atanhf
(
n
);
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
TEST_CASE
(
atanh_dyn_test
)
...
...
@@ -68,5 +68,5 @@ TEST_CASE(atanh_dyn_test)
std
::
vector
<
float
>
gold
=
input_data
;
std
::
transform
(
gold
.
begin
(),
gold
.
end
(),
gold
.
begin
(),
[](
float
n
)
->
float
{
return
atanhf
(
n
);
});
EXPECT
(
migraphx
::
verify
::
verify_range
(
results_vector
,
gold
));
EXPECT
(
migraphx
::
verify
::
verify_
rms_
range
(
results_vector
,
gold
));
}
Prev
1
2
3
4
5
6
7
8
9
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