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
0e395bac
Commit
0e395bac
authored
Mar 08, 2019
by
Paul
Browse files
Add test for inner parallel merge
parent
7e39b01f
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
48 additions
and
2 deletions
+48
-2
test/schedule_test.cpp
test/schedule_test.cpp
+48
-2
No files found.
test/schedule_test.cpp
View file @
0e395bac
...
@@ -538,6 +538,53 @@ TEST_CASE(par_merge)
...
@@ -538,6 +538,53 @@ TEST_CASE(par_merge)
check_conflicts
(
p
,
{
c1
,
{
i1
},
c2
,
{
i2
}});
check_conflicts
(
p
,
{
c1
,
{
i1
},
c2
,
{
i2
}});
}
}
TEST_CASE
(
inner_par_merge
)
{
schedule_target
t
{};
migraphx
::
program
p
;
auto
one
=
p
.
add_literal
(
1
);
auto
start1
=
p
.
add_instruction
(
unary_op
{},
one
);
auto
c1
=
chain
(
p
,
3
,
unary_op
{},
start1
);
auto
i1
=
p
.
add_instruction
(
unary_op
{},
start1
);
auto
binary1
=
p
.
add_instruction
(
nary_op
{},
i1
,
c1
.
back
());
auto
start2
=
p
.
add_instruction
(
unary_op
{},
one
);
auto
c2
=
chain
(
p
,
2
,
unary_op
{},
start2
);
auto
i2
=
p
.
add_instruction
(
unary_op
{},
start2
);
auto
binary2
=
p
.
add_instruction
(
nary_op
{},
i2
,
c2
.
back
());
auto
outer1
=
p
.
add_instruction
(
unary_op
{},
one
);
auto
outer2
=
p
.
add_instruction
(
unary_op
{},
one
);
auto
output
=
p
.
add_instruction
(
nary_op
{},
binary1
,
binary2
,
outer1
,
outer2
);
p
.
compile
(
t
);
EXPECT
(
not
t
.
has_stream
(
one
));
EXPECT
(
t
.
get_stream
(
output
)
==
0
);
EXPECT
(
get_wait_for
(
output
)
==
get_wait_for
(
t
.
get_stream
(
output
),
{
t
.
get_stream
(
binary1
),
t
.
get_stream
(
binary2
),
t
.
get_stream
(
outer1
),
t
.
get_stream
(
outer2
)}));
EXPECT
(
t
.
get_stream
(
outer1
)
==
1
);
EXPECT
(
t
.
get_stream
(
outer2
)
==
2
);
EXPECT
(
t
.
get_stream
(
i1
)
!=
t
.
get_stream
(
i2
));
for
(
auto
ins
:
c1
)
EXPECT
(
t
.
get_stream
(
ins
)
==
0
);
EXPECT
(
t
.
get_stream
(
binary1
)
==
0
);
EXPECT
(
get_wait_for
(
binary1
)
==
get_wait_for
(
t
.
get_stream
(
binary1
),
{
t
.
get_stream
(
c1
.
back
()),
t
.
get_stream
(
i1
)}));
check_conflicts
(
p
,
{
c1
,
{
i1
}});
for
(
auto
ins
:
c2
)
EXPECT
(
t
.
get_stream
(
ins
)
==
3
);
EXPECT
(
t
.
get_stream
(
binary2
)
==
3
);
EXPECT
(
get_wait_for
(
binary2
)
==
get_wait_for
(
t
.
get_stream
(
binary2
),
{
t
.
get_stream
(
c2
.
back
()),
t
.
get_stream
(
i2
)}));
check_conflicts
(
p
,
{
c2
,
{
i2
}});
EXPECT
(
check_conflicts
(
p
,
binary1
,
binary2
));
check_conflicts
(
p
,
{
c1
,
{
i1
},
c2
,
{
i2
},
{
outer1
},
{
outer2
}});
}
TEST_CASE
(
par_merge_multi_entry
)
TEST_CASE
(
par_merge_multi_entry
)
{
{
schedule_target
t
{};
schedule_target
t
{};
...
@@ -561,7 +608,7 @@ TEST_CASE(par_merge_multi_entry)
...
@@ -561,7 +608,7 @@ TEST_CASE(par_merge_multi_entry)
EXPECT
(
not
t
.
has_stream
(
two
));
EXPECT
(
not
t
.
has_stream
(
two
));
EXPECT
(
t
.
get_stream
(
binary3
)
==
0
);
EXPECT
(
t
.
get_stream
(
binary3
)
==
0
);
EXPECT
(
t
.
get_stream
(
i1
)
=
=
2
);
EXPECT
(
t
.
get_stream
(
i1
)
!
=
t
.
get_stream
(
i2
)
);
for
(
auto
ins
:
c1
)
for
(
auto
ins
:
c1
)
EXPECT
(
t
.
get_stream
(
ins
)
==
0
);
EXPECT
(
t
.
get_stream
(
ins
)
==
0
);
EXPECT
(
t
.
get_stream
(
binary1
)
==
0
);
EXPECT
(
t
.
get_stream
(
binary1
)
==
0
);
...
@@ -569,7 +616,6 @@ TEST_CASE(par_merge_multi_entry)
...
@@ -569,7 +616,6 @@ TEST_CASE(par_merge_multi_entry)
get_wait_for
(
t
.
get_stream
(
binary1
),
{
t
.
get_stream
(
c1
.
back
()),
t
.
get_stream
(
i1
)}));
get_wait_for
(
t
.
get_stream
(
binary1
),
{
t
.
get_stream
(
c1
.
back
()),
t
.
get_stream
(
i1
)}));
check_conflicts
(
p
,
{
c1
,
{
i1
}});
check_conflicts
(
p
,
{
c1
,
{
i1
}});
EXPECT
(
t
.
get_stream
(
i2
)
==
1
);
for
(
auto
ins
:
c2
)
for
(
auto
ins
:
c2
)
EXPECT
(
t
.
get_stream
(
ins
)
==
3
);
EXPECT
(
t
.
get_stream
(
ins
)
==
3
);
EXPECT
(
t
.
get_stream
(
binary2
)
==
3
);
EXPECT
(
t
.
get_stream
(
binary2
)
==
3
);
...
...
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