#include <sdfg/targets/gpu/gpu_mma_einsum_transform.h>
|
| | 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 |
| virtual | ~Transformation ()=default |
| virtual void | set_report (PassReportConsumer *report) |
| | Set the report consumer for transformation feedback.
|
◆ 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]
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".
◆ apply()
◆ can_be_applied()
Check if this transformation can be safely applied.
- Parameters
-
| builder | The SDFG builder |
| analysis_manager | The analysis manager providing necessary analyses |
- Returns
- true if all preconditions are met
Implements sdfg::transformations::Transformation.
◆ from_json()
◆ matched()
| bool sdfg::gpu::GpuMmaEinsumTransform::matched |
( |
| ) |
const |
|
inline |
◆ name()
| std::string sdfg::gpu::GpuMmaEinsumTransform::name |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ run_internal()
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
-
| j | JSON object to populate with transformation description |
- Exceptions
-
| std::logic_error | if not implemented |
Implements sdfg::transformations::Transformation.
◆ try_apply()
The documentation for this class was generated from the following file: