class
SushiAI::Graph::Lowering
Translates IR graph operations into recorded SushiBLAS work.
- Declared in
include/SushiAI/graph/lowering.hpp
Records device execution tasks in topological node order.
Public member functions
Lowering(SushiBLAS::Engine &engine, TensorPool &pool, const IFusionSelector *selector=nullptr) noexceptConstructs a lowering coordinator bound to engine and pool.
Parameters
engineTarget SushiBLAS engine for recorded work.
poolMemory pool supplying buffer allocations.
selectorOptional fused kernel selection strategy.
void record(const Graph &graph)Records graph operations into the engine task graph.
Parameters
graphIR graph to lower.
Exceptions
ErrorIf an operand shape is invalid or leaf is unbound.
std::size_t emitted_operations() const noexceptReturns the count of SushiBLAS operations recorded.
Returns
Number of operations emitted during the last lowering.
SushiRuntime::span< const FusionSelection > selections() const noexceptReturns fusion selector decisions recorded during lowering.
Returns
Span of chosen fusion configurations in execution order.
Static public member functions
static std::vector< ValueId > values_needing_own_allocation(const Graph &graph)Identifies values that cannot be safely packed into arenas.
Parameters
graphGraph to inspect for unpinnable values.
Returns
Vector of value ids requiring standalone allocations.

