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
composable_kernel
Commits
79137e1a
Commit
79137e1a
authored
Jan 21, 2021
by
Jing Zhang
Browse files
clean code
parent
63bad606
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
8 additions
and
13 deletions
+8
-13
composable_kernel/include/tensor_operation/gridwise_gemm_xdlops_fp16_bfp16.hpp
...lude/tensor_operation/gridwise_gemm_xdlops_fp16_bfp16.hpp
+6
-6
composable_kernel/include/tensor_operation/xdlops_gemm.hpp
composable_kernel/include/tensor_operation/xdlops_gemm.hpp
+2
-6
composable_kernel/include/utility/float_type.amd.hpp.in
composable_kernel/include/utility/float_type.amd.hpp.in
+0
-1
No files found.
composable_kernel/include/tensor_operation/gridwise_gemm_xdlops_fp16_bfp16.hpp
View file @
79137e1a
...
@@ -413,7 +413,7 @@ struct GridwiseBatchGemmXdlops_gkmkpack_gknkpack_gmn_v2
...
@@ -413,7 +413,7 @@ struct GridwiseBatchGemmXdlops_gkmkpack_gknkpack_gmn_v2
constexpr
auto
a_g_k_m_kpack_block_desc
=
make_native_tensor_descriptor_aligned
(
constexpr
auto
a_g_k_m_kpack_block_desc
=
make_native_tensor_descriptor_aligned
(
Sequence
<
1
,
KPerBlock
,
MPerBlock
,
KPack
>
{},
Number
<
max_align
>
{});
Sequence
<
1
,
KPerBlock
,
MPerBlock
,
KPack
>
{},
Number
<
max_align
>
{});
auto
a_blockwise_copy
=
BlockwiseGenericTensorSliceCopy_v
4
<
auto
a_blockwise_copy
=
BlockwiseGenericTensorSliceCopy_v
5
<
BlockSize
,
BlockSize
,
decltype
(
a_g_k_m_kpack_global_desc
),
decltype
(
a_g_k_m_kpack_global_desc
),
decltype
(
a_g_k_m_kpack_block_desc
),
decltype
(
a_g_k_m_kpack_block_desc
),
...
@@ -509,14 +509,14 @@ struct GridwiseBatchGemmXdlops_gkmkpack_gknkpack_gmn_v2
...
@@ -509,14 +509,14 @@ struct GridwiseBatchGemmXdlops_gkmkpack_gknkpack_gmn_v2
for
(
index_t
k_block_data_begin
=
0
;
k_block_data_begin
<
K
-
KPerBlock
;
for
(
index_t
k_block_data_begin
=
0
;
k_block_data_begin
<
K
-
KPerBlock
;
k_block_data_begin
+=
KPerBlock
)
k_block_data_begin
+=
KPerBlock
)
{
{
ABFloat
p_a_thread_buffer
[
a_blockwise_copy
.
GetThreadBufferSize
()];
//
ABFloat p_a_thread_buffer[a_blockwise_copy.GetThreadBufferSize()];
// load next data from device mem
// load next data from device mem
a_blockwise_copy
.
MoveSrcSliceWindow
(
blockwise_a_copy_src_step
,
True
);
a_blockwise_copy
.
MoveSrcSliceWindow
(
blockwise_a_copy_src_step
,
True
);
b_blockwise_copy
.
MoveSrcSliceWindow
(
blockwise_b_copy_src_step
,
True
);
b_blockwise_copy
.
MoveSrcSliceWindow
(
blockwise_b_copy_src_step
,
True
);
//
a_blockwise_copy.RunLoadThreadBuffer(p_a_global);
a_blockwise_copy
.
RunLoadThreadBuffer
(
p_a_global
);
a_blockwise_copy
.
RunLoadThreadBuffer
(
p_a_global
,
p_a_thread_buffer
);
//
a_blockwise_copy.RunLoadThreadBuffer(p_a_global, p_a_thread_buffer);
b_blockwise_copy
.
RunLoadThreadBuffer
(
p_b_global
);
b_blockwise_copy
.
RunLoadThreadBuffer
(
p_b_global
);
...
@@ -535,8 +535,8 @@ struct GridwiseBatchGemmXdlops_gkmkpack_gknkpack_gmn_v2
...
@@ -535,8 +535,8 @@ struct GridwiseBatchGemmXdlops_gkmkpack_gknkpack_gmn_v2
block_sync_lds
();
block_sync_lds
();
// store next data to LDS
// store next data to LDS
//
a_blockwise_copy.RunStoreThreadBuffer(p_a_block);
a_blockwise_copy
.
RunStoreThreadBuffer
(
p_a_block
);
a_blockwise_copy
.
RunStoreThreadBuffer
(
p_a_thread_buffer
,
p_a_block
);
//
a_blockwise_copy.RunStoreThreadBuffer(p_a_thread_buffer, p_a_block);
b_blockwise_copy
.
RunStoreThreadBuffer
(
p_b_block
);
b_blockwise_copy
.
RunStoreThreadBuffer
(
p_b_block
);
}
}
...
...
composable_kernel/include/tensor_operation/xdlops_gemm.hpp
View file @
79137e1a
...
@@ -727,9 +727,6 @@ struct XdlopsGemm_t
...
@@ -727,9 +727,6 @@ struct XdlopsGemm_t
#else
#else
const
index_t
laneId
=
get_thread_local_1d_id
()
%
mfma_type
.
wave_size
;
const
index_t
laneId
=
get_thread_local_1d_id
()
%
mfma_type
.
wave_size
;
FloatA
a
[
K
*
MRepeats
];
FloatB
b
[
K
*
NRepeats
];
constexpr
index_t
data_size
=
sizeof
(
FloatA
)
/
sizeof
(
data_type
);
constexpr
index_t
data_size
=
sizeof
(
FloatA
)
/
sizeof
(
data_type
);
constexpr
index_t
a_reg_buff_size
=
K
*
MRepeats
*
data_size
;
constexpr
index_t
a_reg_buff_size
=
K
*
MRepeats
*
data_size
;
constexpr
index_t
b_reg_buff_size
=
K
*
NRepeats
*
data_size
;
constexpr
index_t
b_reg_buff_size
=
K
*
NRepeats
*
data_size
;
...
@@ -748,13 +745,11 @@ struct XdlopsGemm_t
...
@@ -748,13 +745,11 @@ struct XdlopsGemm_t
constexpr
index_t
KRepeats
=
sizeof
(
FloatA
)
/
(
sizeof
(
data_type
)
*
mfma_type
.
k_base
);
constexpr
index_t
KRepeats
=
sizeof
(
FloatA
)
/
(
sizeof
(
data_type
)
*
mfma_type
.
k_base
);
auto
pa
=
reinterpret_cast
<
const
data_type
*>
(
&
a
);
auto
pb
=
reinterpret_cast
<
const
data_type
*>
(
&
b
);
constexpr
index_t
AStride
=
K
*
KRepeats
;
constexpr
index_t
AStride
=
K
*
KRepeats
;
constexpr
index_t
BStride
=
K
*
KRepeats
;
constexpr
index_t
BStride
=
K
*
KRepeats
;
static_if
<!
IsKReduction
>
{}([
&
](
auto
)
{
static_if
<!
IsKReduction
>
{}([
&
](
auto
)
{
#if 0
for(index_t m_i = 0; m_i < MRepeats; ++m_i)
for(index_t m_i = 0; m_i < MRepeats; ++m_i)
for(index_t k_i = 0; k_i < K; ++k_i)
for(index_t k_i = 0; k_i < K; ++k_i)
a[k_i + m_i * K] = p_a_wave[k_i * M + laneId + MPerXdlops * m_i];
a[k_i + m_i * K] = p_a_wave[k_i * M + laneId + MPerXdlops * m_i];
...
@@ -774,6 +769,7 @@ struct XdlopsGemm_t
...
@@ -774,6 +769,7 @@ struct XdlopsGemm_t
BStride>(
BStride>(
&pa[k_i * mfma_type.k_base], &pb[k_i * mfma_type.k_base], p_c_thread);
&pa[k_i * mfma_type.k_base], &pb[k_i * mfma_type.k_base], p_c_thread);
}
}
#endif
})
})
.
Else
([
&
](
auto
)
{
.
Else
([
&
](
auto
)
{
const
index_t
blk_id
=
laneId
/
mfma_type
.
num_threads_blk
;
const
index_t
blk_id
=
laneId
/
mfma_type
.
num_threads_blk
;
...
...
composable_kernel/include/utility/float_type.amd.hpp.in
View file @
79137e1a
...
@@ -36,7 +36,6 @@ union float_vec4_t
...
@@ -36,7 +36,6 @@ union float_vec4_t
StaticallyIndexedArray<float, 4> s1;
StaticallyIndexedArray<float, 4> s1;
StaticallyIndexedArray<float2_t, 2> s2;
StaticallyIndexedArray<float2_t, 2> s2;
StaticallyIndexedArray<float4_t, 1> s4;
StaticallyIndexedArray<float4_t, 1> s4;
float n[4];
__host__ __device__ constexpr float_vec4_t() { s4(Number<0>{}) = 0; }
__host__ __device__ constexpr float_vec4_t() { s4(Number<0>{}) = 0; }
template <index_t vs>
template <index_t vs>
...
...
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