BlockFmhaFwdAppendKVPipeline< Problem_, Policy_ > Struct Template Reference#
ck_tile::BlockFmhaFwdAppendKVPipeline< Problem_, Policy_ > Struct Template Reference
#include <block_fmha_fwd_appendkv_pipeline.hpp>
Public Types | |
| using | Problem = remove_cvref_t<Problem_> |
| using | Policy = remove_cvref_t<Policy_> |
| using | QDataType = typename Problem::QDataType |
| using | KDataType = typename Problem::KDataType |
| using | VDataType = typename Problem::VDataType |
| using | VLayout = typename Problem::VLayout |
Public Member Functions | |
| template<typename QDramBlockWindow, typename KDramBlockWindow, typename KPageBlockNavigator, typename KnewDramBlockWindow, typename VDramBlockWindow, typename VPageBlockNavigator, typename VnewDramBlockWindow, typename QElementFunction, typename KnewElementFunction, typename VnewElementFunction, typename QRotaryCosDramBlockWindow, typename QRotarySinDramBlockWindow, typename KnewRotaryCosDramBlockWindow, typename KnewRotarySinDramBlockWindow> | |
| CK_TILE_HOST_DEVICE auto | operator() (QDramBlockWindow &q_dram_block_window, const QElementFunction &q_element_func, KDramBlockWindow &k_dram_block_window, index_t i_page_block_k, const KPageBlockNavigator &k_page_block_navigator, const KnewDramBlockWindow &knew_dram_block_window, const KnewElementFunction &knew_element_func, VDramBlockWindow &v_dram_block_window, index_t i_page_block_v, const VPageBlockNavigator &v_page_block_navigator, const VnewDramBlockWindow &vnew_dram_block_window, const VnewElementFunction &vnew_element_func, const QRotaryCosDramBlockWindow q_rotary_cos_dram_block_window, const QRotarySinDramBlockWindow q_rotary_sin_dram_block_window, const KnewRotaryCosDramBlockWindow knew_rotary_cos_dram_block_window, const KnewRotarySinDramBlockWindow knew_rotary_sin_dram_block_window, index_t rotary_dim, bool skip_rotate_q, bool skip_rotate_append_kv) const |
| template<typename QDramBlockWindow, typename KDramBlockWindow, typename KPageBlockNavigator, typename KnewDramBlockWindow, typename VDramBlockWindow, typename VPageBlockNavigator, typename VnewDramBlockWindow, typename QRotaryCosDramBlockWindow, typename QRotarySinDramBlockWindow, typename KnewRotaryCosDramBlockWindow, typename KnewRotarySinDramBlockWindow> | |
| CK_TILE_HOST_DEVICE auto | operator() (QDramBlockWindow &q_dram_block_window, KDramBlockWindow &k_dram_block_window, index_t i_page_block_k, const KPageBlockNavigator &k_page_block_navigator, const KnewDramBlockWindow &knew_dram_block_window, VDramBlockWindow &v_dram_block_window, index_t i_page_block_v, const VPageBlockNavigator &v_page_block_navigator, const VnewDramBlockWindow &vnew_dram_block_window, const QRotaryCosDramBlockWindow &q_rotary_cos_dram_block_window, const QRotarySinDramBlockWindow &q_rotary_sin_dram_block_window, const KnewRotaryCosDramBlockWindow &knew_rotary_cos_dram_block_window, const KnewRotarySinDramBlockWindow &knew_rotary_sin_dram_block_window, index_t rotary_dim, bool skip_rotate_q, bool skip_rotate_append_kv) const |
Static Public Attributes | |
| static constexpr index_t | kBlockSize = Problem::kBlockSize |
| static constexpr index_t | kM0 = Problem::kM0 |
| static constexpr index_t | kN0 = Problem::kN0 |
| static constexpr index_t | kK0 = Problem::kK0 |
| static constexpr index_t | kN1 = Problem::kN1 |
| static constexpr auto | RotaryEnum = Problem::RotaryEnum |
| static constexpr bool | kIsPagedKV = Problem::kIsPagedKV |
| static constexpr bool | kPadSeqLenQ = Problem::kPadSeqLenQ |
| static constexpr bool | kPadSeqLenK = Problem::kPadSeqLenK |
| static constexpr bool | kPadHeadDimQ = Problem::kPadHeadDimQ |
| static constexpr bool | kPadHeadDimV = Problem::kPadHeadDimV |
| static constexpr index_t | kAlignmentQ |
| static constexpr index_t | kAlignmentK |
| static constexpr index_t | kAlignmentV |
| static constexpr index_t | kBlockPerCu |
Member Typedef Documentation
◆ KDataType
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
| using ck_tile::BlockFmhaFwdAppendKVPipeline< Problem_, Policy_ >::KDataType = typename Problem::KDataType |
◆ Policy
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
| using ck_tile::BlockFmhaFwdAppendKVPipeline< Problem_, Policy_ >::Policy = remove_cvref_t<Policy_> |
◆ Problem
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
| using ck_tile::BlockFmhaFwdAppendKVPipeline< Problem_, Policy_ >::Problem = remove_cvref_t<Problem_> |
◆ QDataType
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
| using ck_tile::BlockFmhaFwdAppendKVPipeline< Problem_, Policy_ >::QDataType = typename Problem::QDataType |
◆ VDataType
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
| using ck_tile::BlockFmhaFwdAppendKVPipeline< Problem_, Policy_ >::VDataType = typename Problem::VDataType |
◆ VLayout
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
| using ck_tile::BlockFmhaFwdAppendKVPipeline< Problem_, Policy_ >::VLayout = typename Problem::VLayout |
Member Function Documentation
◆ operator()() [1/2]
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
template<typename QDramBlockWindow, typename KDramBlockWindow, typename KPageBlockNavigator, typename KnewDramBlockWindow, typename VDramBlockWindow, typename VPageBlockNavigator, typename VnewDramBlockWindow, typename QElementFunction, typename KnewElementFunction, typename VnewElementFunction, typename QRotaryCosDramBlockWindow, typename QRotarySinDramBlockWindow, typename KnewRotaryCosDramBlockWindow, typename KnewRotarySinDramBlockWindow>
|
inline |
◆ operator()() [2/2]
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
template<typename QDramBlockWindow, typename KDramBlockWindow, typename KPageBlockNavigator, typename KnewDramBlockWindow, typename VDramBlockWindow, typename VPageBlockNavigator, typename VnewDramBlockWindow, typename QRotaryCosDramBlockWindow, typename QRotarySinDramBlockWindow, typename KnewRotaryCosDramBlockWindow, typename KnewRotarySinDramBlockWindow>
|
inline |
Member Data Documentation
◆ kAlignmentK
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
Initial value:
=
kPadHeadDimQ ? 1 : Policy::template GetAlignmentK<Problem>()
static constexpr index_t kPadHeadDimQ
Definition block_fmha_bwd_dq_dk_dv_pipeline_kr_ktr_vr.hpp:52
◆ kAlignmentQ
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
Initial value:
=
kPadHeadDimQ ? 1 : Policy::template GetAlignmentQ<Problem>()
◆ kAlignmentV
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
Initial value:
= []() {
if constexpr(std::is_same_v<VLayout, ck_tile::tensor_layout::gemm::RowMajor>)
else
return kPadSeqLenK ? 1 : Policy::template GetAlignmentV<Problem>();
}()
static constexpr bool kPadSeqLenK
Definition block_fmha_batch_prefill_pipeline_qr_ks_vs_async.hpp:64
static constexpr index_t kPadHeadDimV
Definition block_fmha_bwd_dq_dk_dv_pipeline_kr_ktr_vr.hpp:53
remove_cvref_t< Policy_ > Policy
Definition block_fmha_fwd_appendkv_pipeline.hpp:16
remove_cvref_t< Problem_ > Problem
Definition block_fmha_fwd_appendkv_pipeline.hpp:15
◆ kBlockPerCu
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
Initial value:
= []() {
if constexpr(Problem::kBlockPerCu != -1)
return Problem::kBlockPerCu;
else
{
{
return 2;
}
{
return 3;
}
{
return 2;
}
{
return 1;
}
}
}()
static constexpr index_t kK0
Definition block_fmha_fwd_appendkv_pipeline.hpp:27
◆ kBlockSize
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
◆ kIsPagedKV
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
◆ kK0
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
◆ kM0
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
◆ kN0
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
◆ kN1
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
◆ kPadHeadDimQ
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
◆ kPadHeadDimV
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
◆ kPadSeqLenK
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
◆ kPadSeqLenQ
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
◆ RotaryEnum
template<typename Problem_, typename Policy_ = BlockFmhaFwdAppendKVPipelineDefaultPolicy>
|
staticconstexpr |
The documentation for this struct was generated from the following file: