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
7c77c682
Commit
7c77c682
authored
Oct 20, 2022
by
Paul
Browse files
Make the config larger
parent
0881cee8
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
3 deletions
+40
-3
src/targets/gpu/kernels/include/migraphx/kernels/ck_gemm_includes.hpp
...gpu/kernels/include/migraphx/kernels/ck_gemm_includes.hpp
+37
-0
test/verify/gemm_add_relu.cpp
test/verify/gemm_add_relu.cpp
+3
-3
No files found.
src/targets/gpu/kernels/include/migraphx/kernels/ck_gemm_includes.hpp
View file @
7c77c682
...
...
@@ -156,6 +156,15 @@ template <typename ALayout,
ck
::
LoopScheduler
LoopSched
=
ck
::
make_default_loop_scheduler
()>
struct
CK_DeviceGemmMultipleD
{
static
constexpr
auto
I0
=
ck
::
Number
<
0
>
{};
static
constexpr
auto
I1
=
ck
::
Number
<
1
>
{};
// static constexpr auto I2 = ck::Number<2>{};
// static constexpr auto I3 = ck::Number<3>{};
// static constexpr auto I4 = ck::Number<4>{};
// static constexpr auto I5 = ck::Number<5>{};
// static constexpr auto I6 = ck::Number<6>{};
// static constexpr auto I7 = ck::Number<7>{};
ck
::
tensor_operation
::
device
::
MatrixPadder
<
GemmSpec
,
ck
::
index_t
,
ck
::
index_t
,
ck
::
index_t
>
matrix_padder
{
MPerBlock
,
NPerBlock
,
KPerBlock
};
...
...
@@ -212,6 +221,34 @@ struct CK_DeviceGemmMultipleD
e_grid_desc_m_n_
);
}
// block_id to matrix tile idx (m0, n0) mapping are controlled by {M01, N01}
template
<
typename
AGridDesc_M_K
,
typename
BGridDesc_N_K
,
typename
DsGridDesc_M_N
,
typename
EGridDesc_M_N
,
typename
Block2ETileMap
>
static
constexpr
bool
CheckValidity
(
const
AGridDesc_M_K
&
a_grid_desc_m_k
,
const
BGridDesc_N_K
&
b_grid_desc_n_k
,
const
DsGridDesc_M_N
&
ds_grid_desc_m_n
,
const
EGridDesc_M_N
&
e_grid_desc_m_n
,
const
Block2ETileMap
&
block_2_etile_map
)
{
constexpr
auto
M
=
a_grid_desc_m_k
.
GetLength
(
I0
);
constexpr
auto
N
=
b_grid_desc_n_k
.
GetLength
(
I0
);
constexpr
auto
K
=
a_grid_desc_m_k
.
GetLength
(
I1
);
// check consistency of desc
static_assert
(
M
==
e_grid_desc_m_n
.
GetLength
(
I0
)
&&
N
==
e_grid_desc_m_n
.
GetLength
(
I1
));
// check tile size
static_assert
(
M
%
MPerBlock
==
0
&&
N
%
NPerBlock
==
0
&&
K
%
KPerBlock
==
0
);
// check block-to-E-tile
static_assert
(
block_2_etile_map
.
CheckValidity
(
e_grid_desc_m_n
));
return
GridwiseGemm
::
CheckValidity
(
a_grid_desc_m_k
,
b_grid_desc_n_k
,
ds_grid_desc_m_n
,
e_grid_desc_m_n
,
block_2_etile_map
);
}
AElementwiseOperation
a_element_op
{};
BElementwiseOperation
b_element_op
{};
CDEElementwiseOperation
cde_element_op
{};
...
...
test/verify/gemm_add_relu.cpp
View file @
7c77c682
...
...
@@ -33,9 +33,9 @@ struct gemm_add_relu : verify_program<gemm_add_relu>
{
migraphx
::
program
p
;
auto
*
mm
=
p
.
get_main_module
();
auto
a
=
mm
->
add_parameter
(
"1"
,
{
migraphx
::
shape
::
half_type
,
{
1
6
,
8
}});
auto
b
=
mm
->
add_parameter
(
"2"
,
{
migraphx
::
shape
::
half_type
,
{
8
,
32
}});
auto
c
=
mm
->
add_parameter
(
"3"
,
{
migraphx
::
shape
::
half_type
,
{
1
6
,
32
}});
auto
a
=
mm
->
add_parameter
(
"1"
,
{
migraphx
::
shape
::
half_type
,
{
25
6
,
512
}});
auto
b
=
mm
->
add_parameter
(
"2"
,
{
migraphx
::
shape
::
half_type
,
{
512
,
1024
}});
auto
c
=
mm
->
add_parameter
(
"3"
,
{
migraphx
::
shape
::
half_type
,
{
25
6
,
1024
}});
auto
dot
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"dot"
),
a
,
b
);
auto
add
=
mm
->
add_instruction
(
migraphx
::
make_op
(
"add"
),
dot
,
c
);
...
...
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