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
2c603654
Commit
2c603654
authored
Feb 01, 2022
by
Shucai Xiao
Browse files
Merge branch 'develop' of github.com:ROCmSoftwarePlatform/AMDMIGraphX into keep_std_shape
parents
36947a39
2a79a9ff
Changes
30
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
441 additions
and
138 deletions
+441
-138
test/onnx/mean_fp16_test.onnx
test/onnx/mean_fp16_test.onnx
+29
-0
test/onnx/mean_invalid_broadcast_test.onnx
test/onnx/mean_invalid_broadcast_test.onnx
+25
-0
test/onnx/mean_single_input_test.onnx
test/onnx/mean_single_input_test.onnx
+13
-0
test/onnx/mean_test.onnx
test/onnx/mean_test.onnx
+67
-0
test/onnx/onnx_test.cpp
test/onnx/onnx_test.cpp
+58
-1
test/onnx/upsample_linear_test.onnx
test/onnx/upsample_linear_test.onnx
+0
-0
test/onnx/verify_onnx.cpp
test/onnx/verify_onnx.cpp
+58
-0
test/py/onnx_backend_test.py
test/py/onnx_backend_test.py
+0
-3
tools/api.py
tools/api.py
+182
-132
tools/generate.sh
tools/generate.sh
+9
-2
No files found.
test/onnx/mean_fp16_test.onnx
0 → 100644
View file @
2c603654
mean_fp16_test:Ž
0
1
2mean"Meanmean_fp16_testZ
0
Z
1
Z
2
b
mean
B
\ No newline at end of file
test/onnx/mean_invalid_broadcast_test.onnx
0 → 100644
View file @
2c603654
mean_invalid_broadcast_test:›
0
1
2mean"Meanmean_invalid_broadcast_testZ
0
Z
1
Z
2
b
mean
B
\ No newline at end of file
test/onnx/mean_single_input_test.onnx
0 → 100644
View file @
2c603654
mean_single_input_test:^
0mean"Meanmean_single_input_testZ
0
b
mean
B
\ No newline at end of file
test/onnx/mean_test.onnx
0 → 100644
View file @
2c603654
mean_test:Í
*
0
1
2
3
4
5
6
7
8
9mean"Mean mean_testZ
0
Z
1
Z
2
Z
3
Z
4
Z
5
Z
6
Z
7
Z
8
Z
9
b
mean
B
\ No newline at end of file
test/onnx/onnx_test.cpp
View file @
2c603654
...
...
@@ -2492,6 +2492,50 @@ TEST_CASE(maxpool_same_upper_test)
EXPECT
(
p
==
prog
);
}
TEST_CASE
(
mean_invalid_broadcast_test
)
{
EXPECT
(
test
::
throws
([
&
]
{
migraphx
::
parse_onnx
(
"mean_invalid_broadcast_test.onnx"
);
}));
}
TEST_CASE
(
mean_single_input_test
)
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
auto
data0
=
mm
->
add_parameter
(
"0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
1
,
2
,
3
}});
mm
->
add_return
({
data0
});
auto
prog
=
migraphx
::
parse_onnx
(
"mean_single_input_test.onnx"
);
EXPECT
(
p
==
prog
);
}
TEST_CASE
(
mean_test
)
{
const
std
::
size_t
num_data
=
3
;
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
migraphx
::
shape
s
{
migraphx
::
shape
::
half_type
,
{
1
,
2
,
3
}};
auto
data0
=
mm
->
add_parameter
(
"0"
,
s
);
auto
data1
=
mm
->
add_parameter
(
"1"
,
s
);
auto
data2
=
mm
->
add_parameter
(
"2"
,
s
);
auto
div_lit
=
mm
->
add_literal
(
migraphx
::
literal
{
migraphx
::
shape
{
s
.
type
()},
{
num_data
}});
auto
divisor
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
s
.
lens
()}}),
div_lit
);
auto
mean
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"div"
),
data0
,
divisor
);
divisor
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
s
.
lens
()}}),
div_lit
);
data1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"div"
),
data1
,
divisor
);
mean
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
mean
,
data1
);
divisor
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"multibroadcast"
,
{{
"out_lens"
,
s
.
lens
()}}),
div_lit
);
data2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"div"
),
data2
,
divisor
);
mean
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
mean
,
data2
);
auto
prog
=
optimize_onnx
(
"mean_fp16_test.onnx"
);
EXPECT
(
p
==
prog
);
}
TEST_CASE
(
min_test
)
{
migraphx
::
program
p
;
...
...
@@ -3599,7 +3643,7 @@ TEST_CASE(resize_nonstd_input_test)
EXPECT
(
p
==
prog
);
}
TEST_CASE
(
resiz
e_upsample_linear_
ac_test
)
static
auto
creat
e_upsample_linear_
prog
(
)
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
...
...
@@ -3690,6 +3734,12 @@ TEST_CASE(resize_upsample_linear_ac_test)
auto
add1
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
mul1
,
slc10
);
mm
->
add_return
({
add1
});
return
p
;
}
TEST_CASE
(
resize_upsample_linear_ac_test
)
{
auto
p
=
create_upsample_linear_prog
();
auto
prog
=
migraphx
::
parse_onnx
(
"resize_upsample_linear_ac_test.onnx"
);
EXPECT
(
p
==
prog
);
}
...
...
@@ -4709,6 +4759,13 @@ TEST_CASE(unknown_test_throw)
EXPECT
(
test
::
throws
([
&
]
{
migraphx
::
parse_onnx
(
"unknown_test.onnx"
);
}));
}
TEST_CASE
(
upsample_linear_test
)
{
auto
p
=
create_upsample_linear_prog
();
auto
prog
=
migraphx
::
parse_onnx
(
"upsample_linear_test.onnx"
);
EXPECT
(
p
==
prog
);
}
TEST_CASE
(
upsample_test
)
{
migraphx
::
program
p
;
...
...
test/onnx/upsample_linear_test.onnx
0 → 100644
View file @
2c603654
File added
test/onnx/verify_onnx.cpp
View file @
2c603654
...
...
@@ -393,6 +393,64 @@ TEST_CASE(lessorequal_test)
EXPECT
(
migraphx
::
verify_range
(
result_vector
,
gold
));
}
TEST_CASE
(
mean_broadcast_test
)
{
migraphx
::
program
p
=
migraphx
::
parse_onnx
(
"mean_broadcast_test.onnx"
);
p
.
compile
(
migraphx
::
ref
::
target
{});
migraphx
::
shape
s0
{
migraphx
::
shape
::
float_type
,
{
1
,
3
,
4
}};
std
::
vector
<
float
>
data0
(
12
,
1
);
migraphx
::
shape
s1
{
migraphx
::
shape
::
float_type
,
{
1
,
2
,
3
,
4
}};
std
::
vector
<
float
>
data1
(
24
,
2
);
migraphx
::
shape
s2
{
migraphx
::
shape
::
float_type
,
{
4
}};
std
::
vector
<
float
>
data2
(
4
,
3
);
migraphx
::
shape
s3
{
migraphx
::
shape
::
float_type
,
{
1
}};
std
::
vector
<
float
>
data3
(
1
,
4
);
migraphx
::
shape
s4
{
migraphx
::
shape
::
float_type
,
{
2
,
3
,
1
}};
std
::
vector
<
float
>
data4
(
6
,
5
);
migraphx
::
parameter_map
pp
;
pp
[
"0"
]
=
migraphx
::
argument
(
s0
,
data0
.
data
());
pp
[
"1"
]
=
migraphx
::
argument
(
s1
,
data1
.
data
());
pp
[
"2"
]
=
migraphx
::
argument
(
s2
,
data2
.
data
());
pp
[
"3"
]
=
migraphx
::
argument
(
s3
,
data3
.
data
());
pp
[
"4"
]
=
migraphx
::
argument
(
s4
,
data4
.
data
());
auto
result
=
p
.
eval
(
pp
).
back
();
std
::
vector
<
float
>
result_vector
;
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
gold
(
24
,
3
);
EXPECT
(
migraphx
::
verify_range
(
result_vector
,
gold
));
}
TEST_CASE
(
mean_test
)
{
migraphx
::
program
p
=
migraphx
::
parse_onnx
(
"mean_test.onnx"
);
p
.
compile
(
migraphx
::
ref
::
target
{});
migraphx
::
shape
s
{
migraphx
::
shape
::
double_type
,
{
2
,
2
,
2
}};
const
int
num_elms
=
8
;
const
int
num_data
=
10
;
const
std
::
vector
<
double
>
scalars
{
1.0
,
2.0
,
-
2.5
,
3.3
,
10.7
,
-
1.0
,
100.0
,
7.9
,
0.01
,
-
56.8
};
std
::
vector
<
std
::
vector
<
double
>>
data
;
std
::
transform
(
scalars
.
begin
(),
scalars
.
end
(),
std
::
back_inserter
(
data
),
[
&
](
const
auto
&
i
)
{
return
std
::
vector
<
double
>
(
num_elms
,
i
);
});
migraphx
::
parameter_map
pp
;
for
(
std
::
size_t
i
=
0
;
i
<
num_data
;
++
i
)
pp
[
std
::
to_string
(
i
)]
=
migraphx
::
argument
(
s
,
data
[
i
].
data
());
auto
result
=
p
.
eval
(
pp
).
back
();
std
::
vector
<
double
>
result_vector
;
result
.
visit
([
&
](
auto
output
)
{
result_vector
.
assign
(
output
.
begin
(),
output
.
end
());
});
const
auto
mean
=
std
::
accumulate
(
scalars
.
begin
(),
scalars
.
end
(),
0.0
)
/
num_data
;
std
::
vector
<
double
>
gold
(
num_elms
,
mean
);
EXPECT
(
migraphx
::
verify_range
(
result_vector
,
gold
));
}
TEST_CASE
(
nonzero_test
)
{
migraphx
::
program
p
=
migraphx
::
parse_onnx
(
"nonzero_dynamic_test.onnx"
);
...
...
test/py/onnx_backend_test.py
View file @
2c603654
...
...
@@ -269,9 +269,6 @@ def create_backend_test(testname=None, target_device=None):
backend_test
.
exclude
(
r
'test_gathernd_example_int32_cpu'
)
backend_test
.
exclude
(
r
'test_identity_sequence_cpu'
)
backend_test
.
exclude
(
r
'test_maxpool_2d_uint8_cpu'
)
backend_test
.
exclude
(
r
'test_mean_example_cpu'
)
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_*'
)
...
...
tools/api.py
View file @
2c603654
This diff is collapsed.
Click to expand it.
tools/generate.sh
View file @
2c603654
DIR
=
"
$(
cd
"
$(
dirname
"
${
BASH_SOURCE
[0]
}
"
)
"
&&
pwd
)
"
SRC_DIR
=
$DIR
/../src
ls
-1
$DIR
/include/ | xargs
-n
1
-P
$(
nproc
)
-I
{}
-t
bash
-c
"python3.6
$DIR
/te.py
$DIR
/include/{} | clang-format-5.0 -style=file >
$SRC_DIR
/include/migraphx/{}"
PYTHON
=
python3
if
type
-p
python3.6
>
/dev/null
;
then
PYTHON
=
python3.6
fi
if
type
-p
python3.8
>
/dev/null
;
then
PYTHON
=
python3.8
fi
ls
-1
$DIR
/include/ | xargs
-n
1
-P
$(
nproc
)
-I
{}
-t
bash
-c
"
$PYTHON
$DIR
/te.py
$DIR
/include/{} | clang-format-5.0 -style=file >
$SRC_DIR
/include/migraphx/{}"
function
api
{
python3.6
$DIR
/api.py
$SRC_DIR
/api/migraphx.py
$1
| clang-format-5.0
-style
=
file
>
$2
$PYTHON
$DIR
/api.py
$SRC_DIR
/api/migraphx.py
$1
| clang-format-5.0
-style
=
file
>
$2
}
api
$DIR
/api/migraphx.h
$SRC_DIR
/api/include/migraphx/migraphx.h
...
...
Prev
1
2
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