29#include "stage/fusion.h"
92 bool (*
matches)(
const std::vector<Stage*>& group);
100 const std::vector<Stage*>& group,
bool include_experimental =
false);
const FusedImpl * findFusedImpl(const std::vector< Stage * > &group, bool include_experimental=false)
A registered fused implementation and its matcher.
Definition fusion_registry.h:86
bool auto_enabled
Definition fusion_registry.h:90
size_t(* run)(const FusedRunContext &ctx)
Run the fused compress; return the archive length written to d_output.
Definition fusion_registry.h:94
bool(* matches)(const std::vector< Stage * > &group)
True if this strategy handles the group's declarations and geometry.
Definition fusion_registry.h:92
Everything a fused runner needs to compress one group in place.
Definition fusion_registry.h:65
const void * d_input
the group's input buffer
Definition fusion_registry.h:67
MemoryPool * pool
pool for the runner's scratch
Definition fusion_registry.h:71
void * d_output
the group's MAIN output buffer (tail port 0, >= worst case)
Definition fusion_registry.h:69
const std::vector< Stage * > * stages
group stages, producer→consumer
Definition fusion_registry.h:66
fz::stream_t stream
Definition fusion_registry.h:72
size_t output_capacity
allocated bytes available at d_output
Definition fusion_registry.h:70
std::vector< FusedSideOutput > * side_outputs
Definition fusion_registry.h:76
size_t input_bytes
bytes of d_input
Definition fusion_registry.h:68
const std::vector< FusedSideInput > * side_inputs
Definition fusion_registry.h:79
std::string * execution_path
Definition fusion_registry.h:82
Definition fusion_registry.h:45
void * d_ptr
pre-allocated buffer for the port
Definition fusion_registry.h:48
size_t size
OUT: bytes the runner wrote (DAG sets the buffer size from this)
Definition fusion_registry.h:50
FusedAuxOutputDecl declaration
semantic identity/sizing rule, if declared
Definition fusion_registry.h:51
int output_index
which of the producer's output ports this is
Definition fusion_registry.h:47
Stage * producer
the group member that owns this output port
Definition fusion_registry.h:46
size_t capacity
its allocated size in bytes
Definition fusion_registry.h:49
Backend-neutral GPU type aliases.