pub enum LayerwiseTraversalRuntime<Direct, Partitioned> {
Direct(Direct),
Partitioned(Partitioned),
}Expand description
Neutral choice between an ordinary local traversal and the same traversal installed in a selected partition runtime.
Concrete backends construct one of these alternatives but do not retain a parallel execution enum or select a separate forward implementation.
Variants§
Direct(Direct)
Replicated local traversal.
Partitioned(Partitioned)
Architecture-selected partition traversal.
Implementations§
Source§impl<Direct, Partitioned> LayerwiseTraversalRuntime<Direct, Partitioned>
impl<Direct, Partitioned> LayerwiseTraversalRuntime<Direct, Partitioned>
Sourcepub const fn partitioned(runtime: Partitioned) -> Self
pub const fn partitioned(runtime: Partitioned) -> Self
Wraps an architecture-selected partition runtime.
Source§impl<A, B, S, ExecutionPolicy, G, R, I, T, U, V> LayerwiseTraversalRuntime<LayerwiseRuntime<A, B, S, ExecutionPolicy>, Box<PartitionedTextRuntime<A, B, S, (), LayerwiseTraversalPartitionExecutor<A, B, S, ExecutionPolicy>, G, R, I, T, U, V>>>where
B: CommunicationBackend<Executor = <<B as NeuralBackend>::Tensor as Tensor>::Context>,
S: RuntimeState<B>,
A: ParallelLayeredArchitecture<B, S>,
ExecutionPolicy: LayerwisePolicy<B, A::Unit>,
G: Borrow<B::CommunicationGroup>,
R: Borrow<B::CommunicationRoute>,
I: CommunicationTensorMetadata<B>,
T: PartitionBoundaryTransport<B, G, R, I>,
U: PartitionOutputPublisher<B, G, R, I>,
V: PartitionCommitAgreement<B, G, R, I>,
B::ParallelContext: Sized,
A::Error: Display,
ExecutionPolicy::Error: Display,
impl<A, B, S, ExecutionPolicy, G, R, I, T, U, V> LayerwiseTraversalRuntime<LayerwiseRuntime<A, B, S, ExecutionPolicy>, Box<PartitionedTextRuntime<A, B, S, (), LayerwiseTraversalPartitionExecutor<A, B, S, ExecutionPolicy>, G, R, I, T, U, V>>>where
B: CommunicationBackend<Executor = <<B as NeuralBackend>::Tensor as Tensor>::Context>,
S: RuntimeState<B>,
A: ParallelLayeredArchitecture<B, S>,
ExecutionPolicy: LayerwisePolicy<B, A::Unit>,
G: Borrow<B::CommunicationGroup>,
R: Borrow<B::CommunicationRoute>,
I: CommunicationTensorMetadata<B>,
T: PartitionBoundaryTransport<B, G, R, I>,
U: PartitionOutputPublisher<B, G, R, I>,
V: PartitionCommitAgreement<B, G, R, I>,
B::ParallelContext: Sized,
A::Error: Display,
ExecutionPolicy::Error: Display,
Sourcepub fn forward_with_traversal_hook<'a, H>(
&mut self,
input: A::Input<'a>,
state: &mut S,
context: &<B::Tensor as Tensor>::Context,
hook: &mut H,
) -> PartitionedTraversalResult<B::Tensor, A::ForwardContext, A::Error, ExecutionPolicy::Error>
pub fn forward_with_traversal_hook<'a, H>( &mut self, input: A::Input<'a>, state: &mut S, context: &<B::Tensor as Tensor>::Context, hook: &mut H, ) -> PartitionedTraversalResult<B::Tensor, A::ForwardContext, A::Error, ExecutionPolicy::Error>
Runs the selected local traversal without exposing its realization kind to concrete composition.
Sourcepub fn policy(&self) -> &ExecutionPolicy
pub fn policy(&self) -> &ExecutionPolicy
Borrows the selected residency policy independently of realization kind.
Sourcepub fn architecture(&self) -> &A
pub fn architecture(&self) -> &A
Borrows the selected local architecture independently of realization kind.
Auto Trait Implementations§
impl<Direct, Partitioned> Freeze for LayerwiseTraversalRuntime<Direct, Partitioned>
impl<Direct, Partitioned> RefUnwindSafe for LayerwiseTraversalRuntime<Direct, Partitioned>where
Direct: RefUnwindSafe,
Partitioned: RefUnwindSafe,
impl<Direct, Partitioned> Send for LayerwiseTraversalRuntime<Direct, Partitioned>
impl<Direct, Partitioned> Sync for LayerwiseTraversalRuntime<Direct, Partitioned>
impl<Direct, Partitioned> Unpin for LayerwiseTraversalRuntime<Direct, Partitioned>
impl<Direct, Partitioned> UnsafeUnpin for LayerwiseTraversalRuntime<Direct, Partitioned>where
Direct: UnsafeUnpin,
Partitioned: UnsafeUnpin,
impl<Direct, Partitioned> UnwindSafe for LayerwiseTraversalRuntime<Direct, Partitioned>where
Direct: UnwindSafe,
Partitioned: UnwindSafe,
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