#pragma once #include "cutlass_extensions/aphrodite_collective_builder.cuh" #include "machete_mainloop.cuh" namespace cutlass::gemm::collective { using namespace cute; struct MacheteKernelTag {}; template struct APHRODITECollectiveBuilder< MacheteKernelTag, arch::Sm90, arch::OpClassTensorOp, ElementPairA_, GmemLayoutA_, AlignmentA, ElementPairB_, GmemLayoutB_, AlignmentB, ElementAccumulator, TileShape_MNK, ClusterShape_MNK, StageCountType, KernelScheduleType, cute::enable_if_t<( cute::is_same_v || cute::is_same_v || cute::is_same_v)>> { using CollectiveOp = machete::MacheteCollectiveMma< ElementPairA_, GmemLayoutA_, AlignmentA, ElementPairB_, GmemLayoutB_, AlignmentB, ElementAccumulator, TileShape_MNK, ClusterShape_MNK, StageCountType, KernelScheduleType>; }; }; // namespace cutlass::gemm::collective