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
5dc3afb4
Commit
5dc3afb4
authored
Oct 18, 2023
by
Umang Yadav
Browse files
add expected programs
parent
1ff6c73e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
154 additions
and
3 deletions
+154
-3
test/generate_root_modules.cpp
test/generate_root_modules.cpp
+154
-3
No files found.
test/generate_root_modules.cpp
View file @
5dc3afb4
...
...
@@ -73,7 +73,54 @@ TEST_CASE(fork_case)
}
migraphx
::
generate_root_modules
(
p1
,
tass
);
p1
.
debug_print
();
migraphx
::
program
p2
;
{
migraphx
::
module_ref
mm
=
p2
.
get_main_module
();
auto
y_param
=
mm
->
add_parameter
(
"y"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
x_param
=
mm
->
add_parameter
(
"x"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
migraphx
::
module_ref
target_mod_0_0
=
p2
.
create_module
(
"target_mod_0_0"
);
auto
target_mod_0_0_param_1
=
target_mod_0_0
->
add_parameter
(
"param:1"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
target_mod_0_0_param_0
=
target_mod_0_0
->
add_parameter
(
"param:0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
target_mod_0_0_add
=
target_mod_0_0
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
target_mod_0_0_param_1
,
target_mod_0_0_param_0
);
target_mod_0_0
->
add_return
({
target_mod_0_0_add
});
auto
x_2
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"run_on_target"
,
{{
"target_id"
,
0
}}),
{
y_param
,
x_param
},
{
target_mod_0_0
});
auto
x_3
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"get_tuple_elem"
,
{{
"index"
,
0
}}),
x_2
);
auto
z_param
=
mm
->
add_parameter
(
"z"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
migraphx
::
module_ref
target_mod_1_0
=
p2
.
create_module
(
"target_mod_1_0"
);
auto
target_mod_1_0_param_0
=
target_mod_1_0
->
add_parameter
(
"param:0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
target_mod_1_0_identity
=
target_mod_1_0
->
add_instruction
(
migraphx
::
make_op
(
"identity"
),
target_mod_1_0_param_0
);
target_mod_1_0
->
add_return
({
target_mod_1_0_identity
});
auto
x_5
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"run_on_target"
,
{{
"target_id"
,
1
}}),
{
x_3
},
{
target_mod_1_0
});
auto
x_6
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"get_tuple_elem"
,
{{
"index"
,
0
}}),
x_5
);
migraphx
::
module_ref
target_mod_0_1
=
p2
.
create_module
(
"target_mod_0_1"
);
auto
target_mod_0_1_param_1
=
target_mod_0_1
->
add_parameter
(
"param:1"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
target_mod_0_1_param_0
=
target_mod_0_1
->
add_parameter
(
"param:0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
target_mod_0_1_mul
=
target_mod_0_1
->
add_instruction
(
migraphx
::
make_op
(
"mul"
),
target_mod_0_1_param_1
,
target_mod_0_1_param_0
);
target_mod_0_1
->
add_return
({
target_mod_0_1_mul
});
auto
x_7
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"run_on_target"
,
{{
"target_id"
,
0
}}),
{
z_param
,
x_3
},
{
target_mod_0_1
});
auto
x_8
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"get_tuple_elem"
,
{{
"index"
,
0
}}),
x_7
);
mm
->
add_return
({
x_8
,
x_6
});
}
EXPECT
(
p1
.
sort
()
==
p2
.
sort
());
};
TEST_CASE
(
merge_case
)
...
...
@@ -104,7 +151,52 @@ TEST_CASE(merge_case)
tass
.
insert
(
tass
.
begin
(),
std
::
make_pair
(
identity_ins
,
1
));
}
migraphx
::
generate_root_modules
(
p1
,
tass
);
p1
.
debug_print
();
migraphx
::
program
p2
;
{
migraphx
::
module_ref
mm
=
p2
.
get_main_module
();
auto
z
=
mm
->
add_parameter
(
"z"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
y
=
mm
->
add_parameter
(
"y"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
x
=
mm
->
add_parameter
(
"x"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
migraphx
::
module_ref
target_mod_1_0
=
p2
.
create_module
(
"target_mod_1_0"
);
auto
target_mod_1_0_param_0
=
target_mod_1_0
->
add_parameter
(
"param:0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
x_target_mod_1_0_1
=
target_mod_1_0
->
add_instruction
(
migraphx
::
make_op
(
"identity"
),
target_mod_1_0_param_0
);
target_mod_1_0
->
add_return
({
x_target_mod_1_0_1
});
auto
x_3
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"run_on_target"
,
{{
"target_id"
,
1
}}),
{
z
},
{
target_mod_1_0
});
auto
x_4
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"get_tuple_elem"
,
{{
"index"
,
0
}}),
x_3
);
migraphx
::
module_ref
target_mod_0_0
=
p2
.
create_module
(
"target_mod_0_0"
);
auto
target_mod_0_0_param_1
=
target_mod_0_0
->
add_parameter
(
"param:1"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
target_mod_0_0_param_0
=
target_mod_0_0
->
add_parameter
(
"param:0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
x_target_mod_0_0_2
=
target_mod_0_0
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
target_mod_0_0_param_1
,
target_mod_0_0_param_0
);
target_mod_0_0
->
add_return
({
x_target_mod_0_0_2
});
auto
x_5
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"run_on_target"
,
{{
"target_id"
,
0
}}),
{
y
,
x
},
{
target_mod_0_0
});
auto
x_6
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"get_tuple_elem"
,
{{
"index"
,
0
}}),
x_5
);
migraphx
::
module_ref
target_mod_0_1
=
p2
.
create_module
(
"target_mod_0_1"
);
auto
target_mod_0_1_param_1
=
target_mod_0_1
->
add_parameter
(
"param:1"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
target_mod_0_1_param_0
=
target_mod_0_1
->
add_parameter
(
"param:0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
x_target_mod_0_1_2
=
target_mod_0_1
->
add_instruction
(
migraphx
::
make_op
(
"mul"
),
target_mod_0_1_param_1
,
target_mod_0_1_param_0
);
target_mod_0_1
->
add_return
({
x_target_mod_0_1_2
});
auto
x_7
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"run_on_target"
,
{{
"target_id"
,
0
}}),
{
x_4
,
x_6
},
{
target_mod_0_1
});
auto
x_8
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"get_tuple_elem"
,
{{
"index"
,
0
}}),
x_7
);
mm
->
add_return
({
x_8
});
}
EXPECT
(
p1
.
sort
()
==
p2
.
sort
());
};
TEST_CASE
(
fork_and_merge_case
)
...
...
@@ -143,7 +235,66 @@ TEST_CASE(fork_and_merge_case)
mm
->
add_return
({
merge_ins
});
}
migraphx
::
generate_root_modules
(
p1
,
tass
);
p1
.
debug_print
();
migraphx
::
program
p2
;
{
migraphx
::
module_ref
main
=
p2
.
get_main_module
();
auto
z
=
main
->
add_parameter
(
"z"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
y
=
main
->
add_parameter
(
"y"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
x
=
main
->
add_parameter
(
"x"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
migraphx
::
module_ref
target_mod_0_0
=
p2
.
create_module
(
"target_mod_0_0"
);
auto
target_mod_0_0_param_1
=
target_mod_0_0
->
add_parameter
(
"param:1"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
target_mod_0_0_param_0
=
target_mod_0_0
->
add_parameter
(
"param:0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
x_target_mod_0_0_2
=
target_mod_0_0
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
target_mod_0_0_param_1
,
target_mod_0_0_param_0
);
target_mod_0_0
->
add_return
({
x_target_mod_0_0_2
});
auto
x_3
=
main
->
add_instruction
(
migraphx
::
make_op
(
"run_on_target"
,
{{
"target_id"
,
0
}}),
{
y
,
x
},
{
target_mod_0_0
});
auto
x_4
=
main
->
add_instruction
(
migraphx
::
make_op
(
"get_tuple_elem"
,
{{
"index"
,
0
}}),
x_3
);
migraphx
::
module_ref
target_mod_0_1
=
p2
.
create_module
(
"target_mod_0_1"
);
auto
target_mod_0_1_param_1
=
target_mod_0_1
->
add_parameter
(
"param:1"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
target_mod_0_1_param_0
=
target_mod_0_1
->
add_parameter
(
"param:0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
x_target_mod_0_1_2
=
target_mod_0_1
->
add_instruction
(
migraphx
::
make_op
(
"mul"
),
target_mod_0_1_param_1
,
target_mod_0_1_param_0
);
target_mod_0_1
->
add_return
({
x_target_mod_0_1_2
});
auto
x_5
=
main
->
add_instruction
(
migraphx
::
make_op
(
"run_on_target"
,
{{
"target_id"
,
0
}}),
{
z
,
x_4
},
{
target_mod_0_1
});
auto
x_6
=
main
->
add_instruction
(
migraphx
::
make_op
(
"get_tuple_elem"
,
{{
"index"
,
0
}}),
x_5
);
migraphx
::
module_ref
target_mod_1_0
=
p2
.
create_module
(
"target_mod_1_0"
);
auto
target_mod_1_0_param_0
=
target_mod_1_0
->
add_parameter
(
"param:0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
x_target_mod_1_0_1
=
target_mod_1_0
->
add_instruction
(
migraphx
::
make_op
(
"identity"
),
target_mod_1_0_param_0
);
target_mod_1_0
->
add_return
({
x_target_mod_1_0_1
});
auto
x_7
=
main
->
add_instruction
(
migraphx
::
make_op
(
"run_on_target"
,
{{
"target_id"
,
1
}}),
{
x_4
},
{
target_mod_1_0
});
auto
x_8
=
main
->
add_instruction
(
migraphx
::
make_op
(
"get_tuple_elem"
,
{{
"index"
,
0
}}),
x_7
);
migraphx
::
module_ref
target_mod_0_2
=
p2
.
create_module
(
"target_mod_0_2"
);
auto
target_mod_0_2_param_1
=
target_mod_0_2
->
add_parameter
(
"param:1"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
target_mod_0_2_param_0
=
target_mod_0_2
->
add_parameter
(
"param:0"
,
migraphx
::
shape
{
migraphx
::
shape
::
float_type
,
{
8
}});
auto
x_target_mod_0_2_2
=
target_mod_0_2
->
add_instruction
(
migraphx
::
make_op
(
"sub"
),
target_mod_0_2_param_1
,
target_mod_0_2_param_0
);
target_mod_0_2
->
add_return
({
x_target_mod_0_2_2
});
auto
x_9
=
main
->
add_instruction
(
migraphx
::
make_op
(
"run_on_target"
,
{{
"target_id"
,
0
}}),
{
x_6
,
x_8
},
{
target_mod_0_2
});
auto
x_10
=
main
->
add_instruction
(
migraphx
::
make_op
(
"get_tuple_elem"
,
{{
"index"
,
0
}}),
x_9
);
main
->
add_return
({
x_10
});
}
EXPECT
(
p1
.
sort
()
==
p2
.
sort
());
};
int
main
(
int
argc
,
const
char
*
argv
[])
{
test
::
run
(
argc
,
argv
);
}
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