pub struct ExecutionNode {
pub id: u64,
pub device: DeviceSpec,
pub inputs: Vec<BufferId>,
pub outputs: Vec<BufferId>,
pub predecessors: Vec<u64>,
pub is_transfer: bool,
pub buffer_access: Option<KernelBufferAccess>,
}Expand description
A node in the execution graph representing a kernel or transfer operation.
Fields§
§id: u64Unique identifier for this node (typically the kernel AST ID).
device: DeviceSpecDevice this operation executes on.
inputs: Vec<BufferId>Buffer IDs read by this operation.
outputs: Vec<BufferId>Buffer IDs written by this operation.
predecessors: Vec<u64>IDs of nodes that must complete before this one (dependencies).
is_transfer: boolWhether this is a data transfer (COPY) or a computational kernel.
buffer_access: Option<KernelBufferAccess>Buffer access information for parallel execution. Contains the full buffer list and output indices for dependency tracking.
Trait Implementations§
Source§impl Clone for ExecutionNode
impl Clone for ExecutionNode
Source§fn clone(&self) -> ExecutionNode
fn clone(&self) -> ExecutionNode
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ExecutionNode
impl RefUnwindSafe for ExecutionNode
impl Send for ExecutionNode
impl Sync for ExecutionNode
impl Unpin for ExecutionNode
impl UnsafeUnpin for ExecutionNode
impl UnwindSafe for ExecutionNode
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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