#include <sdfg/targets/gpu/gpu_mma_einsum_transform.h>
|
| | 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 |
| einsum::ReplaceOutcome | replace (einsum::EinsumReplacementContext &context, const einsum::EinsumCluster &cluster) const override |
| bool | can_be_applied (const einsum::EinsumCluster &cluster) const override |
| | Checks whether this replacer could be applied to the given cluster.
|
| std::string | name () const override |
| math::tensor::TensorLayout | build_tensor_layout (const EinsumIndexing &indexing, bool swapped, const symbolic::Expression &outer_dim, const symbolic::Expression &inner_dim, const symbolic::Expression &outer_offset, const symbolic::Expression &inner_offset, const symbolic::Expression &external_offset) const |
| bool | analyze (const EinsumCluster &cluster, MatMulAnalysis &result) const |
| | Runs the applicability analysis for the canonical MatMul form.
|
| virtual | ~EinsumReplacer ()=default |
◆ GpuMmaEinsumReplacer()
| sdfg::gpu::GpuMmaEinsumReplacer::GpuMmaEinsumReplacer |
( |
const GpuArch * | arch, |
|
|
const MmaBlockSize * | block_size_hint = nullptr, |
|
|
const BlockCounts * | wave_tile_hint = nullptr, |
|
|
int | k_block_multiple = 1 ) |
◆ analyze()
◆ can_be_applied()
Checks whether this replacer could be applied to the given cluster.
Runs the same applicability analysis as replace() but discards the result.
Reimplemented from sdfg::einsum::Einsum2MatMul.
◆ matches_possible_mma_pattern()
| bool sdfg::gpu::GpuMmaEinsumReplacer::matches_possible_mma_pattern |
( |
EinsumMmaAnalysis & | analysis | ) |
const |
|
protected |
◆ replace()
◆ select_tiling()
The MMA tiling for analysis: exact if the extents divide, else (if the target supports it) ragged.
The documentation for this class was generated from the following file: