Skip to main content

CommunicationBackend

Trait CommunicationBackend 

Source
pub trait CommunicationBackend: SubmissionBackend {
    type CommunicationGroup: ?Sized;
    type CommunicationRoute: ?Sized;
    type CommunicationCompletion: Completion<Error = Self::CommunicationError> + BoundedCompletion<Error = Self::CommunicationError>;
    type CommunicationError: Error + Send + Sync + 'static;

    // Required method
    fn submit_local_dependencies<'a, I>(
        values: I,
        executor: &Self::Executor,
    ) -> Result<Submission<(), Self::CommunicationCompletion>, Self::CommunicationError>
       where Self::Tensor: 'a,
             I: IntoIterator<Item = &'a Self::Tensor>;
}
Expand description

Common opaque handles and exact completion used by communication extensions.

This trait deliberately declares no operation. Backends implement only the fine-grained operation traits selected for a concrete architecture.

Required Associated Types§

Source

type CommunicationGroup: ?Sized

Backend-native realization of one opaque communication group.

Source

type CommunicationRoute: ?Sized

Backend-native realization of one opaque directed route.

Source

type CommunicationCompletion: Completion<Error = Self::CommunicationError> + BoundedCompletion<Error = Self::CommunicationError>

Exact completion retaining tensors, buffers, groups, routes, and streams.

Source

type CommunicationError: Error + Send + Sync + 'static

Stable mechanism failure with no architecture-family policy.

Required Methods§

Source

fn submit_local_dependencies<'a, I>( values: I, executor: &Self::Executor, ) -> Result<Submission<(), Self::CommunicationCompletion>, Self::CommunicationError>
where Self::Tensor: 'a, I: IntoIterator<Item = &'a Self::Tensor>,

Submits evaluation of rank-local tensor dependencies before a communication-readiness agreement.

The returned communication completion must retain every submitted tensor and native execution resource through exact completion or safe cancellation teardown. This operation does not select or infer a collective group.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§