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
792bb51a
Commit
792bb51a
authored
Jan 29, 2019
by
Shucai Xiao
Browse files
clang format.
parent
e1876299
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
246 additions
and
78 deletions
+246
-78
test/cpu_ops_test.cpp
test/cpu_ops_test.cpp
+246
-78
No files found.
test/cpu_ops_test.cpp
View file @
792bb51a
...
...
@@ -1349,17 +1349,44 @@ TEST_CASE(min_test)
TEST_CASE
(
rnn_forward
)
{
std
::
size_t
batch_size
=
2
;
std
::
size_t
seq_len
=
2
;
std
::
size_t
batch_size
=
2
;
std
::
size_t
seq_len
=
2
;
std
::
size_t
hidden_size
=
4
;
std
::
size_t
input_size
=
3
;
std
::
size_t
num_dirct
=
1
;
std
::
vector
<
float
>
wf_data
{
0.4691
,
0.3185
,
-
0.2227
,
0.4423
,
-
0.0609
,
-
0.2803
,
0.1744
,
0.3146
,
0.4049
,
-
0.3973
,
-
0.0890
,
-
0.1636
};
std
::
vector
<
float
>
rf_data
{
-
0.0456
,
0.1061
,
0.1574
,
-
0.4928
,
-
0.4300
,
-
0.1909
,
-
0.0225
,
-
0.2668
,
0.1840
,
-
0.4453
,
-
0.4896
,
0.1302
,
-
0.0929
,
0.3545
,
-
0.4981
,
0.0616
};
std
::
vector
<
float
>
biasf_data
{
-
0.4938
,
0.4355
,
-
0.3186
,
0.2094
,
0.1037
,
-
0.1071
,
0.4504
,
-
0.3990
};
std
::
size_t
input_size
=
3
;
std
::
size_t
num_dirct
=
1
;
std
::
vector
<
float
>
wf_data
{
0.4691
,
0.3185
,
-
0.2227
,
0.4423
,
-
0.0609
,
-
0.2803
,
0.1744
,
0.3146
,
0.4049
,
-
0.3973
,
-
0.0890
,
-
0.1636
};
std
::
vector
<
float
>
rf_data
{
-
0.0456
,
0.1061
,
0.1574
,
-
0.4928
,
-
0.4300
,
-
0.1909
,
-
0.0225
,
-
0.2668
,
0.1840
,
-
0.4453
,
-
0.4896
,
0.1302
,
-
0.0929
,
0.3545
,
-
0.4981
,
0.0616
};
std
::
vector
<
float
>
biasf_data
{
-
0.4938
,
0.4355
,
-
0.3186
,
0.2094
,
0.1037
,
-
0.1071
,
0.4504
,
-
0.3990
};
std
::
vector
<
float
>
input
(
seq_len
*
batch_size
*
input_size
,
0
);
input
[
0
]
=
input
[
1
]
=
1.0
;
float
clip
=
0.0
f
;
float
clip
=
0.0
f
;
{
std
::
vector
<
float
>
ih_data
(
num_dirct
*
batch_size
*
hidden_size
,
0
);
...
...
@@ -1378,21 +1405,35 @@ TEST_CASE(rnn_forward)
auto
bias
=
p
.
add_literal
(
migraphx
::
literal
{
b_shape
,
biasf_data
});
p
.
add_instruction
(
migraphx
::
op
::
rnn
{
hidden_size
,
{
migraphx
::
op
::
tanh
{},
migraphx
::
op
::
tanh
{}},
migraphx
::
op
::
rnn
::
forward
,
clip
},
seq
,
w
,
r
,
bias
,
ih
);
{
migraphx
::
op
::
tanh
{},
migraphx
::
op
::
tanh
{}},
migraphx
::
op
::
rnn
::
forward
,
clip
},
seq
,
w
,
r
,
bias
,
ih
);
p
.
compile
(
migraphx
::
cpu
::
target
{});
auto
hs_concat
=
p
.
eval
({});
std
::
vector
<
float
>
hs_data
;
hs_concat
.
visit
([
&
](
auto
output
)
{
hs_data
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
hs_data_gold
{
0.37780784
,
0.61055139
,
0.55168478
,
-
0.5888475
,
-
0.37144644
,
0.31708236
,
0.13104209
,
-
0.18736027
,
0.03445704
,
0.19167931
,
-
0.3946827
,
-
0.30889652
,
-
0.22276389
,
0.44193283
,
-
0.16477929
,
-
0.11893477
};
std
::
vector
<
float
>
hs_data_gold
{
0.37780784
,
0.61055139
,
0.55168478
,
-
0.5888475
,
-
0.37144644
,
0.31708236
,
0.13104209
,
-
0.18736027
,
0.03445704
,
0.19167931
,
-
0.3946827
,
-
0.30889652
,
-
0.22276389
,
0.44193283
,
-
0.16477929
,
-
0.11893477
};
EXPECT
(
migraphx
::
verify_range
(
hs_data
,
hs_data_gold
));
}
...
...
@@ -1413,15 +1454,16 @@ TEST_CASE(rnn_forward)
migraphx
::
shape
b_shape
{
migraphx
::
shape
::
float_type
,
{
num_dirct
,
2
*
hidden_size
}};
auto
bias
=
p
.
add_literal
(
migraphx
::
literal
{
b_shape
,
biasf_data
});
auto
out_hs
=
p
.
add_instruction
(
migraphx
::
op
::
rnn
{
hidden_size
,
auto
out_hs
=
p
.
add_instruction
(
migraphx
::
op
::
rnn
{
hidden_size
,
{
migraphx
::
op
::
tanh
{},
migraphx
::
op
::
tanh
{}},
migraphx
::
op
::
rnn
::
forward
,
clip
},
seq
,
w
,
r
,
bias
,
ih
);
seq
,
w
,
r
,
bias
,
ih
);
p
.
add_instruction
(
migraphx
::
op
::
rnn_last_output
{},
out_hs
);
p
.
compile
(
migraphx
::
cpu
::
target
{});
...
...
@@ -1430,24 +1472,57 @@ TEST_CASE(rnn_forward)
std
::
vector
<
float
>
last_output_data
;
last_output
.
visit
([
&
](
auto
out
)
{
last_output_data
.
assign
(
out
.
begin
(),
out
.
end
());
});
std
::
vector
<
float
>
last_output_data_gold
{
0.03445704
,
0.19167931
,
-
0.3946827
,
-
0.30889652
,
-
0.22276389
,
0.44193283
,
-
0.16477929
,
-
0.11893477
};
std
::
vector
<
float
>
last_output_data_gold
{
0.03445704
,
0.19167931
,
-
0.3946827
,
-
0.30889652
,
-
0.22276389
,
0.44193283
,
-
0.16477929
,
-
0.11893477
};
EXPECT
(
migraphx
::
verify_range
(
last_output_data
,
last_output_data_gold
));
}
}
TEST_CASE
(
rnn_reverse
)
{
std
::
size_t
batch_size
=
2
;
std
::
size_t
seq_len
=
2
;
std
::
size_t
batch_size
=
2
;
std
::
size_t
seq_len
=
2
;
std
::
size_t
hidden_size
=
4
;
std
::
size_t
input_size
=
3
;
std
::
size_t
num_dirct
=
1
;
std
::
vector
<
float
>
wr_data
{
-
0.0296
,
-
0.1341
,
0.1761
,
-
0.2325
,
-
0.0717
,
0.1852
,
0.2720
,
0.1471
,
-
0.1097
,
0.3363
,
-
0.0587
,
-
0.2302
};
std
::
vector
<
float
>
rr_data
{
0.2528
,
-
0.2333
,
0.3973
,
0.1593
,
-
0.0388
,
0.1702
,
0.3829
,
-
0.0712
,
-
0.1668
,
0.3074
,
-
0.2854
,
0.4049
,
-
0.3737
,
-
0.1051
,
0.4482
,
-
0.2841
};
std
::
vector
<
float
>
biasr_data
{
-
0.3188
,
0.1341
,
-
0.4446
,
0.1389
,
0.3117
,
0.3664
,
0.2352
,
0.2552
};
std
::
size_t
input_size
=
3
;
std
::
size_t
num_dirct
=
1
;
std
::
vector
<
float
>
wr_data
{
-
0.0296
,
-
0.1341
,
0.1761
,
-
0.2325
,
-
0.0717
,
0.1852
,
0.2720
,
0.1471
,
-
0.1097
,
0.3363
,
-
0.0587
,
-
0.2302
};
std
::
vector
<
float
>
rr_data
{
0.2528
,
-
0.2333
,
0.3973
,
0.1593
,
-
0.0388
,
0.1702
,
0.3829
,
-
0.0712
,
-
0.1668
,
0.3074
,
-
0.2854
,
0.4049
,
-
0.3737
,
-
0.1051
,
0.4482
,
-
0.2841
};
std
::
vector
<
float
>
biasr_data
{
-
0.3188
,
0.1341
,
-
0.4446
,
0.1389
,
0.3117
,
0.3664
,
0.2352
,
0.2552
};
std
::
vector
<
float
>
input
(
seq_len
*
batch_size
*
input_size
,
0
);
input
[
0
]
=
input
[
1
]
=
1.0
;
float
clip
=
0.0
f
;
float
clip
=
0.0
f
;
{
std
::
vector
<
float
>
ih_data
(
num_dirct
*
batch_size
*
hidden_size
,
0
);
...
...
@@ -1469,18 +1544,32 @@ TEST_CASE(rnn_reverse)
{
migraphx
::
op
::
tanh
{},
migraphx
::
op
::
tanh
{}},
migraphx
::
op
::
rnn
::
reverse
,
clip
},
seq
,
w
,
r
,
bias
,
ih
);
seq
,
w
,
r
,
bias
,
ih
);
p
.
compile
(
migraphx
::
cpu
::
target
{});
auto
hs_concat
=
p
.
eval
({});
std
::
vector
<
float
>
hs_data
;
hs_concat
.
visit
([
&
](
auto
output
)
{
hs_data
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
hs_data_gold
{
-
0.29385301
,
0.16796815
,
0.51075965
,
0.40258689
,
-
0.13818839
,
0.44124447
,
0.14365635
,
0.14803654
,
-
0.0070999
,
0.46251031
,
-
0.20639211
,
0.37488942
,
-
0.0070999
,
0.46251031
,
-
0.20639211
,
0.37488942
};
std
::
vector
<
float
>
hs_data_gold
{
-
0.29385301
,
0.16796815
,
0.51075965
,
0.40258689
,
-
0.13818839
,
0.44124447
,
0.14365635
,
0.14803654
,
-
0.0070999
,
0.46251031
,
-
0.20639211
,
0.37488942
,
-
0.0070999
,
0.46251031
,
-
0.20639211
,
0.37488942
};
EXPECT
(
migraphx
::
verify_range
(
hs_data
,
hs_data_gold
));
}
...
...
@@ -1501,15 +1590,16 @@ TEST_CASE(rnn_reverse)
migraphx
::
shape
b_shape
{
migraphx
::
shape
::
float_type
,
{
num_dirct
,
2
*
hidden_size
}};
auto
bias
=
p
.
add_literal
(
migraphx
::
literal
{
b_shape
,
biasr_data
});
auto
out_hs
=
p
.
add_instruction
(
migraphx
::
op
::
rnn
{
hidden_size
,
auto
out_hs
=
p
.
add_instruction
(
migraphx
::
op
::
rnn
{
hidden_size
,
{
migraphx
::
op
::
tanh
{},
migraphx
::
op
::
tanh
{}},
migraphx
::
op
::
rnn
::
reverse
,
clip
},
seq
,
w
,
r
,
bias
,
ih
);
seq
,
w
,
r
,
bias
,
ih
);
p
.
add_instruction
(
migraphx
::
op
::
rnn_last_output
{},
out_hs
);
p
.
compile
(
migraphx
::
cpu
::
target
{});
...
...
@@ -1518,27 +1608,87 @@ TEST_CASE(rnn_reverse)
std
::
vector
<
float
>
last_output_data
;
last_output
.
visit
([
&
](
auto
out
)
{
last_output_data
.
assign
(
out
.
begin
(),
out
.
end
());
});
std
::
vector
<
float
>
last_output_data_gold
{
-
0.29385301
,
0.16796815
,
0.51075965
,
0.40258689
,
-
0.13818839
,
0.44124447
,
0.14365635
,
0.14803654
};
std
::
vector
<
float
>
last_output_data_gold
{
-
0.29385301
,
0.16796815
,
0.51075965
,
0.40258689
,
-
0.13818839
,
0.44124447
,
0.14365635
,
0.14803654
};
EXPECT
(
migraphx
::
verify_range
(
last_output_data
,
last_output_data_gold
));
}
}
TEST_CASE
(
rnn_bidirectional
)
{
std
::
size_t
batch_size
=
2
;
std
::
size_t
seq_len
=
2
;
std
::
size_t
batch_size
=
2
;
std
::
size_t
seq_len
=
2
;
std
::
size_t
hidden_size
=
4
;
std
::
size_t
input_size
=
3
;
std
::
size_t
num_dirct
=
2
;
std
::
vector
<
float
>
wf_data
{
0.4691
,
0.3185
,
-
0.2227
,
0.4423
,
-
0.0609
,
-
0.2803
,
0.1744
,
0.3146
,
0.4049
,
-
0.3973
,
-
0.0890
,
-
0.1636
};
std
::
vector
<
float
>
wr_data
{
-
0.0296
,
-
0.1341
,
0.1761
,
-
0.2325
,
-
0.0717
,
0.1852
,
0.2720
,
0.1471
,
-
0.1097
,
0.3363
,
-
0.0587
,
-
0.2302
};
std
::
vector
<
float
>
rf_data
{
-
0.0456
,
0.1061
,
0.1574
,
-
0.4928
,
-
0.4300
,
-
0.1909
,
-
0.0225
,
-
0.2668
,
0.1840
,
-
0.4453
,
-
0.4896
,
0.1302
,
-
0.0929
,
0.3545
,
-
0.4981
,
0.0616
};
std
::
vector
<
float
>
rr_data
{
0.2528
,
-
0.2333
,
0.3973
,
0.1593
,
-
0.0388
,
0.1702
,
0.3829
,
-
0.0712
,
-
0.1668
,
0.3074
,
-
0.2854
,
0.4049
,
-
0.3737
,
-
0.1051
,
0.4482
,
-
0.2841
};
std
::
vector
<
float
>
biasf_data
{
-
0.4938
,
0.4355
,
-
0.3186
,
0.2094
,
0.1037
,
-
0.1071
,
0.4504
,
-
0.3990
};
std
::
vector
<
float
>
biasr_data
{
-
0.3188
,
0.1341
,
-
0.4446
,
0.1389
,
0.3117
,
0.3664
,
0.2352
,
0.2552
};
std
::
size_t
input_size
=
3
;
std
::
size_t
num_dirct
=
2
;
std
::
vector
<
float
>
wf_data
{
0.4691
,
0.3185
,
-
0.2227
,
0.4423
,
-
0.0609
,
-
0.2803
,
0.1744
,
0.3146
,
0.4049
,
-
0.3973
,
-
0.0890
,
-
0.1636
};
std
::
vector
<
float
>
wr_data
{
-
0.0296
,
-
0.1341
,
0.1761
,
-
0.2325
,
-
0.0717
,
0.1852
,
0.2720
,
0.1471
,
-
0.1097
,
0.3363
,
-
0.0587
,
-
0.2302
};
std
::
vector
<
float
>
rf_data
{
-
0.0456
,
0.1061
,
0.1574
,
-
0.4928
,
-
0.4300
,
-
0.1909
,
-
0.0225
,
-
0.2668
,
0.1840
,
-
0.4453
,
-
0.4896
,
0.1302
,
-
0.0929
,
0.3545
,
-
0.4981
,
0.0616
};
std
::
vector
<
float
>
rr_data
{
0.2528
,
-
0.2333
,
0.3973
,
0.1593
,
-
0.0388
,
0.1702
,
0.3829
,
-
0.0712
,
-
0.1668
,
0.3074
,
-
0.2854
,
0.4049
,
-
0.3737
,
-
0.1051
,
0.4482
,
-
0.2841
};
std
::
vector
<
float
>
biasf_data
{
-
0.4938
,
0.4355
,
-
0.3186
,
0.2094
,
0.1037
,
-
0.1071
,
0.4504
,
-
0.3990
};
std
::
vector
<
float
>
biasr_data
{
-
0.3188
,
0.1341
,
-
0.4446
,
0.1389
,
0.3117
,
0.3664
,
0.2352
,
0.2552
};
std
::
vector
<
float
>
input
(
seq_len
*
batch_size
*
input_size
,
0
);
input
[
0
]
=
input
[
1
]
=
1.0
;
float
clip
=
0.0
f
;
float
clip
=
0.0
f
;
{
std
::
vector
<
float
>
ih_data
(
num_dirct
*
batch_size
*
hidden_size
,
0
);
...
...
@@ -1565,23 +1715,26 @@ TEST_CASE(rnn_bidirectional)
auto
bias
=
p
.
add_literal
(
migraphx
::
literal
{
b_shape
,
bias_data
});
p
.
add_instruction
(
migraphx
::
op
::
rnn
{
hidden_size
,
{
migraphx
::
op
::
tanh
{},
migraphx
::
op
::
tanh
{}},
migraphx
::
op
::
rnn
::
bidirectional
,
clip
},
seq
,
w
,
r
,
bias
,
ih
);
{
migraphx
::
op
::
tanh
{},
migraphx
::
op
::
tanh
{}},
migraphx
::
op
::
rnn
::
bidirectional
,
clip
},
seq
,
w
,
r
,
bias
,
ih
);
p
.
compile
(
migraphx
::
cpu
::
target
{});
auto
hs_concat
=
p
.
eval
({});
std
::
vector
<
float
>
hs_data
;
hs_concat
.
visit
([
&
](
auto
output
)
{
hs_data
.
assign
(
output
.
begin
(),
output
.
end
());
});
std
::
vector
<
float
>
hs_data_gold
{
0.37780784
,
0.61055139
,
0.55168478
,
-
0.5888475
,
-
0.37144644
,
0.31708236
,
0.13104209
,
-
0.18736027
,
-
0.29385301
,
0.16796815
,
0.51075965
,
0.40258689
,
-
0.13818839
,
0.44124447
,
0.14365635
,
0.14803654
,
0.03445704
,
0.19167931
,
-
0.3946827
,
-
0.30889652
,
-
0.22276389
,
0.44193283
,
-
0.16477929
,
-
0.11893477
,
-
0.0070999
,
0.46251031
,
-
0.20639211
,
0.37488942
,
-
0.0070999
,
0.46251031
,
-
0.20639211
,
0.37488942
};
std
::
vector
<
float
>
hs_data_gold
{
0.37780784
,
0.61055139
,
0.55168478
,
-
0.5888475
,
-
0.37144644
,
0.31708236
,
0.13104209
,
-
0.18736027
,
-
0.29385301
,
0.16796815
,
0.51075965
,
0.40258689
,
-
0.13818839
,
0.44124447
,
0.14365635
,
0.14803654
,
0.03445704
,
0.19167931
,
-
0.3946827
,
-
0.30889652
,
-
0.22276389
,
0.44193283
,
-
0.16477929
,
-
0.11893477
,
-
0.0070999
,
0.46251031
,
-
0.20639211
,
0.37488942
,
-
0.0070999
,
0.46251031
,
-
0.20639211
,
0.37488942
};
EXPECT
(
migraphx
::
verify_range
(
hs_data
,
hs_data_gold
));
}
...
...
@@ -1610,15 +1763,16 @@ TEST_CASE(rnn_bidirectional)
migraphx
::
shape
b_shape
{
migraphx
::
shape
::
float_type
,
{
num_dirct
,
2
*
hidden_size
}};
auto
bias
=
p
.
add_literal
(
migraphx
::
literal
{
b_shape
,
bias_data
});
auto
out_hs
=
p
.
add_instruction
(
migraphx
::
op
::
rnn
{
hidden_size
,
auto
out_hs
=
p
.
add_instruction
(
migraphx
::
op
::
rnn
{
hidden_size
,
{
migraphx
::
op
::
tanh
{},
migraphx
::
op
::
tanh
{}},
migraphx
::
op
::
rnn
::
bidirectional
,
clip
},
seq
,
w
,
r
,
bias
,
ih
);
seq
,
w
,
r
,
bias
,
ih
);
p
.
add_instruction
(
migraphx
::
op
::
rnn_last_output
{},
out_hs
);
p
.
compile
(
migraphx
::
cpu
::
target
{});
...
...
@@ -1627,8 +1781,22 @@ TEST_CASE(rnn_bidirectional)
std
::
vector
<
float
>
last_output_data
;
last_output
.
visit
([
&
](
auto
out
)
{
last_output_data
.
assign
(
out
.
begin
(),
out
.
end
());
});
std
::
vector
<
float
>
last_output_data_gold
{
0.03445704
,
0.19167931
,
-
0.3946827
,
-
0.30889652
,
-
0.22276389
,
0.44193283
,
-
0.16477929
,
-
0.11893477
,
-
0.29385301
,
0.16796815
,
0.51075965
,
0.40258689
,
-
0.13818839
,
0.44124447
,
0.14365635
,
0.14803654
};
std
::
vector
<
float
>
last_output_data_gold
{
0.03445704
,
0.19167931
,
-
0.3946827
,
-
0.30889652
,
-
0.22276389
,
0.44193283
,
-
0.16477929
,
-
0.11893477
,
-
0.29385301
,
0.16796815
,
0.51075965
,
0.40258689
,
-
0.13818839
,
0.44124447
,
0.14365635
,
0.14803654
};
EXPECT
(
migraphx
::
verify_range
(
last_output_data
,
last_output_data_gold
));
}
...
...
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