| #pragma once |
|
|
| #include "cutlass/gemm/dispatch_policy.hpp" |
|
|
| namespace cutlass::gemm { |
|
|
| |
|
|
| |
| |
| |
| |
| template <int ScaleGranularityM = 0> |
| struct KernelTmaWarpSpecializedCooperativeFP8BlockScaledSubGroupMAccum |
| : KernelTmaWarpSpecializedCooperative {}; |
|
|
| |
| |
| template <int Stages_, class ClusterShape_ = Shape<_1, _1, _1>, |
| class KernelSchedule = KernelTmaWarpSpecialized, |
| int ScaleGranularityM = |
| 0 |
| |
| |
| > |
| struct MainloopSm90TmaGmmaWarpSpecializedBlockScalingSubGroupMFP8 |
| : MainloopSm90TmaGmmaWarpSpecialized<Stages_, ClusterShape_, |
| KernelSchedule> { |
| static_assert( |
| cute::is_same_v< |
| KernelSchedule, |
| KernelTmaWarpSpecializedCooperativeFP8BlockScaledSubGroupMAccum< |
| ScaleGranularityM>>, |
| "KernelSchedule must be one of the warp specialized policies"); |
| }; |
|
|
| |
|
|
| } |