pub struct RuntimeFusedSpec {
pub runtime_id: FusedOpId,
pub inputs: Vec<NodeId>,
pub primitive_sink: NodeId,
pub reconverge: NodeId,
pub backend: BackendId,
pub scalars: Vec<f64>,
}Expand description
A matched runtime-fused region the optimizer offers as an arm candidate. Arm 0
(primitive_sink, the region’s existing output) is already in the graph; this
describes how to build arm 1 (the fused kernel) and where to splice the branch.
inputs[0] is the branch diverge point (the primitive chain and the fused
node both depart from it); the other inputs are shared external operands.
primitive_sink is arm 0’s exit (same shape/dtype as the fused output).
reconverge is the sole consumer of primitive_sink (the merge).
Fields§
§runtime_id: FusedOpIdThe adopted runtime fused op (id >= RUNTIME_FUSED_BASE).
inputs: Vec<NodeId>The region’s bound external inputs, in bind-index order (from match_region).
primitive_sink: NodeIdArm 0’s exit — the region’s existing primitive-subgraph output.
reconverge: NodeIdThe sole consumer of primitive_sink (the merge / reconverge point).
backend: BackendIdThe backend the synthesized kernel is bound for; arm 1 is pinned to it.
scalars: Vec<f64>The extracted scalar args for the fused op (the extract: slots); empty
for a parameterless runtime op.
Trait Implementations§
Source§impl Clone for RuntimeFusedSpec
impl Clone for RuntimeFusedSpec
Auto Trait Implementations§
impl Freeze for RuntimeFusedSpec
impl RefUnwindSafe for RuntimeFusedSpec
impl Send for RuntimeFusedSpec
impl Sync for RuntimeFusedSpec
impl Unpin for RuntimeFusedSpec
impl UnsafeUnpin for RuntimeFusedSpec
impl UnwindSafe for RuntimeFusedSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more