28#include "stage/fusion.h"
73 bool (*
matches)(
const std::vector<Stage*>& group);
81 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:67
bool auto_enabled
Definition fusion_registry.h:71
size_t(* run)(const FusedRunContext &ctx)
Run the fused compress; return the archive length written to d_output.
Definition fusion_registry.h:75
bool(* matches)(const std::vector< Stage * > &group)
True if this impl handles group exactly (types + relevant config).
Definition fusion_registry.h:73
Everything a fused runner needs to compress one group in place.
Definition fusion_registry.h:53
const void * d_input
the group's input buffer
Definition fusion_registry.h:55
MemoryPool * pool
pool for the runner's scratch
Definition fusion_registry.h:58
void * d_output
the group's MAIN output buffer (tail port 0, >= worst case)
Definition fusion_registry.h:57
const std::vector< Stage * > * stages
group stages, producer→consumer
Definition fusion_registry.h:54
fz::stream_t stream
Definition fusion_registry.h:59
std::vector< FusedSideOutput > * side_outputs
Definition fusion_registry.h:63
size_t input_bytes
bytes of d_input
Definition fusion_registry.h:56
Definition fusion_registry.h:43
void * d_ptr
pre-allocated buffer for the port
Definition fusion_registry.h:46
size_t size
OUT: bytes the runner wrote (DAG sets the buffer size from this)
Definition fusion_registry.h:48
FusedAuxOutputDecl declaration
semantic identity/sizing rule, if declared
Definition fusion_registry.h:49
int output_index
which of the producer's output ports this is
Definition fusion_registry.h:45
Stage * producer
the group member that owns this output port
Definition fusion_registry.h:44
size_t capacity
its allocated size in bytes
Definition fusion_registry.h:47
Backend-neutral GPU type aliases.