Fix WMMA conv algorithms hierarchy.

This commit is contained in:
Ville Pietilä
2026-01-15 05:27:22 -05:00
parent 2451657a14
commit dc6f8f1067
4 changed files with 6 additions and 12 deletions

View File

@@ -260,11 +260,6 @@ concept SpecifiesGemmSpecialization = requires {
{ T::gemm_specialization } -> std::convertible_to<GemmSpecialization>;
};
template <typename T>
concept SpecifiesNumPrefetchStages = requires {
{ T::num_gemm_k_prefetch_stages } -> SizeType;
};
template <typename T>
concept SpecifiesNumGroupsToMerge = requires {
{ T::num_conv_groups_to_merge } -> SizeType;

View File

@@ -159,7 +159,7 @@ BwdAlgorithm + SpecifiesWmma
│ │
│ └─── BwdWmmaAlgorithm
│ │
│ └─ Requirements: Base + SpecifiesNumPrefetchStages + SpecifiesGemmPipeline + SpecifiesGenericInstance
│ └─ Requirements: Base + SpecifiesGemmPipeline + SpecifiesGenericInstance
└─── BwdWmmaV3AlgorithmBase (Based on BwdAlgorithmV3)
@@ -169,7 +169,7 @@ BwdAlgorithm + SpecifiesWmma
├─── BwdWmmaV3Algorithm
│ │
│ └─ Requirements: Base + SpecifiesTransposeTransfer + SpecifiesGenericInstance
│ └─ Requirements: Base + SpecifiesTransposeTransfer
└─── BwdTwoStageWmmaV3Algorithm

View File

@@ -108,8 +108,8 @@ concept BwdTwoStageXdlAlgorithm =
// BWD weight WMMA algorithm concepts
template <auto Value>
concept BwdWmmaAlgorithm =
BwdWmmaAlgorithmBase<Value> && SpecifiesNumPrefetchStages<decltype(Value)> &&
SpecifiesGemmPipeline<decltype(Value)> && SpecifiesGenericInstance<decltype(Value)>;
BwdWmmaAlgorithmBase<Value> && SpecifiesGemmPipeline<decltype(Value)> &&
SpecifiesGenericInstance<decltype(Value)>;
template <auto Value>
concept BwdMultiDWmmaV3Algorithm =
@@ -117,8 +117,7 @@ concept BwdMultiDWmmaV3Algorithm =
template <auto Value>
concept BwdWmmaV3Algorithm =
BwdWmmaV3AlgorithmBase<Value> && SpecifiesTransposeTransfer<decltype(Value)> &&
SpecifiesGenericInstance<decltype(Value)>;
BwdWmmaV3AlgorithmBase<Value> && SpecifiesTransposeTransfer<decltype(Value)>;
template <auto Value>
concept BwdTwoStageWmmaV3Algorithm =

View File

@@ -19,7 +19,7 @@ constexpr auto SIGNATURE = ckt::ConvSignature{.spatial_dim = 2,
.weight = {.config = {.layout = GKYXC}},
.output = {.config = {.layout = NGKHW}}};
constexpr auto ALGORITHM = cku::ConvAlgorithm_DeviceGroupedConvBwdWeight_TwoStage_CShuffle{}
constexpr auto ALGORITHM = cku::ConvAlgorithm_DeviceGroupedConvBwdWeight_TwoStage_CShuffle_V3{}
.with_thread_block(cku::ThreadBlock_64_32x32x32)
.with_gemm_config(cku::GemmParams_Wmma_16x16_2x1_per_wave)
.with_transfer(cku::BwdTransfer_4x8x1_4x16x1_v3)