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
dd651742
Commit
dd651742
authored
Jun 25, 2021
by
Shucai Xiao
Browse files
refine unit tests
parent
c07b91c8
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
14 additions
and
4 deletions
+14
-4
src/include/migraphx/op/scatter.hpp
src/include/migraphx/op/scatter.hpp
+4
-1
src/onnx/parse_generic_op.cpp
src/onnx/parse_generic_op.cpp
+1
-0
src/targets/gpu/device/scatter.cpp
src/targets/gpu/device/scatter.cpp
+4
-1
test/py/onnx_backend_test.py
test/py/onnx_backend_test.py
+3
-0
test/ref_ops_test.cpp
test/ref_ops_test.cpp
+1
-1
test/verify/test_scatter1.cpp
test/verify/test_scatter1.cpp
+1
-1
No files found.
src/include/migraphx/op/scatter.hpp
View file @
dd651742
...
...
@@ -45,13 +45,16 @@ struct scatter
{
argument
result
{
output_shape
};
// max dimension in axis
auto
axis_dim_size
=
output_shape
.
lens
()[
axis
];
visit_all
(
result
,
args
[
0
],
args
[
2
])([
&
](
auto
output
,
auto
data
,
auto
update
)
{
std
::
copy
(
data
.
begin
(),
data
.
end
(),
output
.
begin
());
args
[
1
].
visit
([
&
](
auto
indices
)
{
auto
ind_s
=
indices
.
get_shape
();
shape_for_each
(
ind_s
,
[
&
](
const
auto
&
idx
)
{
auto
out_idx
=
idx
;
out_idx
[
axis
]
=
indices
[
ind_s
.
index
(
idx
)];
auto
index
=
indices
[
ind_s
.
index
(
idx
)];
index
=
(
index
<
0
)
?
index
+
axis_dim_size
:
index
;
out_idx
[
axis
]
=
index
;
output
[
output_shape
.
index
(
out_idx
)]
=
update
[
ind_s
.
index
(
idx
)];
});
});
...
...
src/onnx/parse_generic_op.cpp
View file @
dd651742
...
...
@@ -36,6 +36,7 @@ struct parse_generic_op : op_parser<parse_generic_op>
{
"Relu"
,
"relu"
},
{
"Round"
,
"round"
},
{
"Scatter"
,
"scatter"
},
{
"ScatterElements"
,
"scatter"
},
{
"Sigmoid"
,
"sigmoid"
},
{
"Sign"
,
"sign"
},
{
"Sin"
,
"sin"
},
...
...
src/targets/gpu/device/scatter.cpp
View file @
dd651742
...
...
@@ -15,6 +15,7 @@ argument scatter(
{
auto
ds
=
arg0
.
get_shape
();
auto
inds
=
arg1
.
get_shape
();
auto
axis_dim_size
=
ds
.
lens
()[
axis
];
hip_visit_all
(
result
,
arg0
,
inds
)([
&
](
auto
output
,
auto
data
,
auto
s1
)
{
auto
*
output_ptr
=
device_cast
(
output
.
data
());
const
auto
*
data_ptr
=
device_cast
(
data
.
data
());
...
...
@@ -25,7 +26,9 @@ argument scatter(
const
auto
*
indices_ptr
=
device_cast
(
indices
.
data
());
gs_launch
(
stream
,
inds
.
elements
(),
256
)([
=
](
auto
i
)
__device__
{
auto
out_idx
=
s1
.
multi
(
i
);
out_idx
[
axis
]
=
indices_ptr
[
i
];
auto
index
=
indices_ptr
[
i
];
index
=
index
<
0
?
index
+
axis_dim_size
:
index
;
out_idx
[
axis
]
=
index
;
output
[
out_idx
]
=
upd_ptr
[
i
];
});
});
...
...
test/py/onnx_backend_test.py
View file @
dd651742
...
...
@@ -172,6 +172,8 @@ def create_backend_test(testname=None, target_device=None):
backend_test
.
include
(
r
'.*test_reduce.*'
)
backend_test
.
include
(
r
'.*test_ReLU*'
)
backend_test
.
include
(
r
'.*test_relu.*'
)
backend_test
.
include
(
r
'.*test_scatter.*'
)
backend_test
.
include
(
r
'.*test_Scatter.*'
)
backend_test
.
include
(
r
'.*test_selu.*'
)
backend_test
.
include
(
r
'.*test_shape.*'
)
backend_test
.
include
(
r
'.*test_Sigmoid*'
)
...
...
@@ -272,6 +274,7 @@ def create_backend_test(testname=None, target_device=None):
backend_test
.
exclude
(
r
'test_mean_one_input_cpu'
)
backend_test
.
exclude
(
r
'test_mean_two_inputs_cpu'
)
backend_test
.
exclude
(
r
'test_negative_log_likelihood_loss_*'
)
backend_test
.
exclude
(
r
'test_scatternd_*'
)
# all reduce ops have dynamic axes inputs
backend_test
.
exclude
(
r
'test_size_cpu'
)
...
...
test/ref_ops_test.cpp
View file @
dd651742
...
...
@@ -3685,7 +3685,7 @@ TEST_CASE(scatter_test)
std
::
vector
<
float
>
vd
(
sd
.
elements
(),
0.0
f
);
migraphx
::
shape
si
{
migraphx
::
shape
::
int32_type
,
{
2
,
3
}};
std
::
vector
<
int
>
vi
=
{
1
,
0
,
2
,
0
,
2
,
1
};
std
::
vector
<
int
>
vi
=
{
1
,
0
,
-
1
,
0
,
2
,
-
2
};
migraphx
::
shape
su
{
migraphx
::
shape
::
float_type
,
{
2
,
3
}};
std
::
vector
<
float
>
vu
=
{
1.0
,
1.1
,
1.2
,
2.0
,
2.1
,
2.2
};
...
...
test/verify/test_scatter1.cpp
View file @
dd651742
...
...
@@ -13,7 +13,7 @@ struct test_scatter1 : verify_program<test_scatter1>
migraphx
::
shape
sd
{
migraphx
::
shape
::
float_type
,
{
3
,
3
}};
migraphx
::
shape
si
{
migraphx
::
shape
::
int32_type
,
{
2
,
3
}};
std
::
vector
<
int
>
vi
=
{
1
,
0
,
2
,
0
,
2
,
1
};
std
::
vector
<
int
>
vi
=
{
-
2
,
0
,
2
,
0
,
-
1
,
1
};
migraphx
::
shape
su
{
migraphx
::
shape
::
float_type
,
{
2
,
3
}};
auto
pd
=
mm
->
add_parameter
(
"data"
,
sd
);
...
...
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