14 int k_block_multiple_ = 1;
21 int k_block_multiple = 1
46 bool matched_ =
false;
50 std::optional<MmaBlockSize> block_size_hint_;
51 std::optional<BlockCounts> wave_tiling_hint_;
54 int k_block_multiple_ = 1;
69 int k_block_multiple = 1
79 std::optional<MmaBlockSize> block_size_hint,
80 std::optional<BlockCounts> wave_tile_hint,
81 int k_block_multiple = 1
84 std::string
name()
const override {
85 return "GpuMmaEinsumTransform";
92 void to_json(nlohmann::json& j)
const override;
Note: Even though the class references unique_ptr, it will never delete an SDFG it has a reference to...
Definition structured_sdfg_builder.h:44
Proof-of-concept replacer that turns a matmul-shaped EinsumCluster into a MatMulNode.
Definition einsum2matmul.h:25
Non-destructive counterpart of an EinsumNode.
Definition einsum_detection.h:150
ExpandContext for replacing an EinsumCluster with a new implementation.
Definition einsum_replacer.h:32
bool can_be_applied(const einsum::EinsumCluster &cluster) const override
Checks whether this replacer could be applied to the given cluster.
einsum::ReplaceOutcome replace(einsum::EinsumReplacementContext &context, const einsum::EinsumCluster &cluster) const override
GpuMmaEinsumReplacer(const GpuArch *arch, const MmaBlockSize *block_size_hint=nullptr, const BlockCounts *wave_tile_hint=nullptr, int k_block_multiple=1)
bool analyze(const einsum::EinsumCluster &cluster, EinsumMmaAnalysis &result) const
std::optional< GpuMmaTiling > select_tiling(EinsumMmaAnalysis &analysis) const
The MMA tiling for analysis: exact if the extents divide, else (if the target supports it) ragged.
bool matches_possible_mma_pattern(EinsumMmaAnalysis &analysis) const
Base class for structured loop constructs.
Definition structured_loop.h:244
Definition function_builder.h:10
passes::LibNodeExpander::ExpandOutcome ReplaceOutcome
Definition einsum_replacer.h:18
Definition cuda_arch.h:11
PrimitiveType
Enumeration of all primitive data types supported by sdfglib.
Definition type.h:35
Results of the applicability analysis that are reused by the replacement step.
Definition einsum2matmul.h:51
Grouping of MMA blocks.
Definition gpu_mma_fragment.h:35
Definition gpu_mma_einsum_transform.h:24
types::PrimitiveType acc_type
Definition gpu_mma_einsum_transform.h:25
bool ragged
Some extent is not a constant multiple of the MMA block: the tiling covers the padded extents and the...
Definition gpu_mma_einsum_transform.h:28
Definition gpu_mma_fragment.h:16