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

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

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

Public Member Functions

 GpuMmaEinsumTransform (StructuredLoop &outermoost_mma_loop, const gpu::GpuArch *arch=nullptr, const MmaBlockSize *block_size_hint=nullptr, const BlockCounts *wave_tiling_hint=nullptr, int k_block_multiple=1)
 GpuMmaEinsumTransform (StructuredLoop &outermoost_mma_loop, const gpu::GpuArch *arch, std::optional< MmaBlockSize > block_size_hint, std::optional< BlockCounts > wave_tile_hint, int k_block_multiple=1)
 Owning overload: takes the hints by value and stores them internally, so the caller does not have to keep separate hint objects alive.
std::string name () const override
 Get the name of this transformation.
bool try_apply (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
 Attempt to apply the transformation if possible.
bool can_be_applied (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
 Check if this transformation can be safely applied.
void apply (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
 Apply this transformation to the SDFG.
void to_json (nlohmann::json &j) const override
 Serialize this transformation to JSON.
bool matched () const
Public Member Functions inherited from sdfg::transformations::Transformation
virtual ~Transformation ()=default
virtual void set_report (PassReportConsumer *report)
 Set the report consumer for transformation feedback.

Static Public Member Functions

static GpuMmaEinsumTransform from_json (builder::StructuredSDFGBuilder &builder, const nlohmann::json &j)

Protected Member Functions

bool run_internal (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, bool verify_only)
 the einsum parts modify the SDFG in place, so WILL ALWAYS CHANGE IT.

Additional Inherited Members

Protected Attributes inherited from sdfg::transformations::Transformation
PassReportConsumer * report_ = nullptr

Constructor & Destructor Documentation

◆ GpuMmaEinsumTransform() [1/2]

sdfg::gpu::GpuMmaEinsumTransform::GpuMmaEinsumTransform ( StructuredLoop & outermoost_mma_loop,
const gpu::GpuArch * arch = nullptr,
const MmaBlockSize * block_size_hint = nullptr,
const BlockCounts * wave_tiling_hint = nullptr,
int k_block_multiple = 1 )

◆ GpuMmaEinsumTransform() [2/2]

sdfg::gpu::GpuMmaEinsumTransform::GpuMmaEinsumTransform ( StructuredLoop & outermoost_mma_loop,
const gpu::GpuArch * arch,
std::optional< MmaBlockSize > block_size_hint,
std::optional< BlockCounts > wave_tile_hint,
int k_block_multiple = 1 )

Owning overload: takes the hints by value and stores them internally, so the caller does not have to keep separate hint objects alive.

Intended for the backwards-compatible Python constructor, which synthesises the hints from scalar arguments. An empty optional means "no hint".

Member Function Documentation

◆ apply()

void sdfg::gpu::GpuMmaEinsumTransform::apply ( builder::StructuredSDFGBuilder & builder,
analysis::AnalysisManager & analysis_manager )
overridevirtual

Apply this transformation to the SDFG.

Parameters
builderThe SDFG builder
analysis_managerThe analysis manager (may be invalidated)

Implements sdfg::transformations::Transformation.

◆ can_be_applied()

bool sdfg::gpu::GpuMmaEinsumTransform::can_be_applied ( builder::StructuredSDFGBuilder & builder,
analysis::AnalysisManager & analysis_manager )
overridevirtual

Check if this transformation can be safely applied.

Parameters
builderThe SDFG builder
analysis_managerThe analysis manager providing necessary analyses
Returns
true if all preconditions are met

Implements sdfg::transformations::Transformation.

◆ from_json()

GpuMmaEinsumTransform sdfg::gpu::GpuMmaEinsumTransform::from_json ( builder::StructuredSDFGBuilder & builder,
const nlohmann::json & j )
static

◆ matched()

bool sdfg::gpu::GpuMmaEinsumTransform::matched ( ) const
inline

◆ name()

std::string sdfg::gpu::GpuMmaEinsumTransform::name ( ) const
inlineoverridevirtual

Get the name of this transformation.

Returns
The transformation name (e.g., "LoopInterchange")

Implements sdfg::transformations::Transformation.

◆ run_internal()

bool sdfg::gpu::GpuMmaEinsumTransform::run_internal ( builder::StructuredSDFGBuilder & builder,
analysis::AnalysisManager & analysis_manager,
bool verify_only )
protected

the einsum parts modify the SDFG in place, so WILL ALWAYS CHANGE IT.

We need to revert the changes if we did not get sth. we liked

◆ to_json()

void sdfg::gpu::GpuMmaEinsumTransform::to_json ( nlohmann::json & j) const
overridevirtual

Serialize this transformation to JSON.

Parameters
jJSON object to populate with transformation description
Exceptions
std::logic_errorif not implemented

Implements sdfg::transformations::Transformation.

◆ try_apply()

bool sdfg::gpu::GpuMmaEinsumTransform::try_apply ( builder::StructuredSDFGBuilder & builder,
analysis::AnalysisManager & analysis_manager )
overridevirtual

Attempt to apply the transformation if possible.

Bundles can_be_applied() and apply() into a single function so they can share state

Parameters
builderThe SDFG builder
analysis_managerThe analysis manager
Returns
true if the transformation was applied

Reimplemented from sdfg::transformations::Transformation.


The documentation for this class was generated from the following file: