docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::gpu::GpuMmaEinsumReplacer Class Reference

#include <sdfg/targets/gpu/gpu_mma_einsum_transform.h>

Inheritance diagram for sdfg::gpu::GpuMmaEinsumReplacer:
[legend]

Classes

struct  EinsumMmaAnalysis

Public Member Functions

 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.
Public Member Functions inherited from sdfg::einsum::Einsum2MatMul
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.
Public Member Functions inherited from sdfg::einsum::EinsumReplacer
virtual ~EinsumReplacer ()=default

Protected Member Functions

bool matches_possible_mma_pattern (EinsumMmaAnalysis &analysis) 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.

Constructor & Destructor Documentation

◆ 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 )

Member Function Documentation

◆ analyze()

bool sdfg::gpu::GpuMmaEinsumReplacer::analyze ( const einsum::EinsumCluster & cluster,
EinsumMmaAnalysis & result ) const

◆ can_be_applied()

bool sdfg::gpu::GpuMmaEinsumReplacer::can_be_applied ( const einsum::EinsumCluster & cluster) const
overridevirtual

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()

einsum::ReplaceOutcome sdfg::gpu::GpuMmaEinsumReplacer::replace ( einsum::EinsumReplacementContext & context,
const einsum::EinsumCluster & cluster ) const
overridevirtual

Reimplemented from sdfg::einsum::Einsum2MatMul.

◆ select_tiling()

std::optional< GpuMmaTiling > sdfg::gpu::GpuMmaEinsumReplacer::select_tiling ( EinsumMmaAnalysis & analysis) const
protected

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: