31#include "stage/fusion.h"
56 MultipleTileSelectors,
57 TileInteriorStageUnsupported,
58 StandardBlockMismatch,
59 TileCoderUnitMismatch,
75 bool has_tile_adaptive =
false;
FusionCompatibility
Exact reason a stage spec cannot extend an accumulated group geometry.
Definition fusion_planner.h:51
FusionCompatibility extendFusionGeometry(FusionGeometry &geometry, const FusionSpec &next)
Validate and, on success, extend geometry with next.
std::vector< FusionGroup > planFusionGroups(const CompressionDAG &dag)
Geometry accumulated while extending one candidate fusion chain.
Definition fusion_planner.h:42
uint32_t coder_unit_size
coder units nested in selector tile
Definition fusion_planner.h:45
uint32_t block_size
legacy same-size block/chunk path
Definition fusion_planner.h:43
uint32_t selector_tile_size
TileAdaptive selector unit.
Definition fusion_planner.h:44
One maximal fusion-legality domain, in producer→consumer order.
Definition fusion_planner.h:69
bool has_coder
ends in a Cooperative coder
Definition fusion_planner.h:76
uint32_t selector_tile_size
TileAdaptive unit, else 0.
Definition fusion_planner.h:73
uint32_t coder_unit_size
nested coder unit, else 0
Definition fusion_planner.h:74
std::vector< std::string > stage_names
node names, parallel to stages
Definition fusion_planner.h:71
uint32_t block_size
shared block size (0 if all Map)
Definition fusion_planner.h:72
std::vector< Stage * > stages
the fused chain, front = producer
Definition fusion_planner.h:70
A stage's fusion contract. Stages that can participate in a fused kernel override Stage::getFusionSpe...
Definition fusion.h:52