Trait Backend

Source
pub trait Backend:
    Sync
    + Send
    + 'static {
    type Error;

Show 13 methods // Required methods fn allreduce<'life0, 'life1, 'async_trait>( &'life0 self, tensors: &'life1 CxxVector<Tensor>, opts: AllreduceOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn allgather<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, output: &'life1 CxxVector<Tensor>, input: &'life2 Tensor, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn _allgather_base<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, output: &'life1 Tensor, input: &'life2 Tensor, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn barrier<'life0, 'async_trait>( &'life0 self, opts: BarrierOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn reduce<'life0, 'life1, 'async_trait>( &'life0 self, input: &'life1 Tensor, opts: ReduceOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn _reduce_scatter_base<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, output: &'life1 Tensor, input: &'life2 Tensor, opts: ReduceScatterOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn send<'life0, 'life1, 'async_trait>( &'life0 self, tensors: &'life1 CxxVector<Tensor>, dst_rank: i32, tag: i32, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn recv<'life0, 'life1, 'async_trait>( &'life0 self, tensors: &'life1 CxxVector<Tensor>, src_rank: i32, tag: i32, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn gather<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, outputs: &'life1 CxxVector<Tensor>, input: &'life2 Tensor, opts: GatherOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn scatter<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, output: &'life1 Tensor, inputs: &'life2 CxxVector<Tensor>, opts: ScatterOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn broadcast<'life0, 'life1, 'async_trait>( &'life0 self, tensors: &'life1 CxxVector<Tensor>, opts: BroadcastOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn alltoall_base<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, output_buffer: &'life1 Tensor, input_buffer: &'life2 Tensor, opts: AllToAllOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn alltoall<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, output_tensors: &'life1 CxxVector<Tensor>, input_tensors: &'life2 CxxVector<Tensor>, opts: AllToAllOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait;
}

Required Associated Types§

Required Methods§

Source

fn allreduce<'life0, 'life1, 'async_trait>( &'life0 self, tensors: &'life1 CxxVector<Tensor>, opts: AllreduceOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn allgather<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, output: &'life1 CxxVector<Tensor>, input: &'life2 Tensor, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn _allgather_base<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, output: &'life1 Tensor, input: &'life2 Tensor, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn barrier<'life0, 'async_trait>( &'life0 self, opts: BarrierOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn reduce<'life0, 'life1, 'async_trait>( &'life0 self, input: &'life1 Tensor, opts: ReduceOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn _reduce_scatter_base<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, output: &'life1 Tensor, input: &'life2 Tensor, opts: ReduceScatterOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn send<'life0, 'life1, 'async_trait>( &'life0 self, tensors: &'life1 CxxVector<Tensor>, dst_rank: i32, tag: i32, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn recv<'life0, 'life1, 'async_trait>( &'life0 self, tensors: &'life1 CxxVector<Tensor>, src_rank: i32, tag: i32, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn gather<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, outputs: &'life1 CxxVector<Tensor>, input: &'life2 Tensor, opts: GatherOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn scatter<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, output: &'life1 Tensor, inputs: &'life2 CxxVector<Tensor>, opts: ScatterOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn broadcast<'life0, 'life1, 'async_trait>( &'life0 self, tensors: &'life1 CxxVector<Tensor>, opts: BroadcastOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn alltoall_base<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, output_buffer: &'life1 Tensor, input_buffer: &'life2 Tensor, opts: AllToAllOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source

fn alltoall<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, output_tensors: &'life1 CxxVector<Tensor>, input_tensors: &'life2 CxxVector<Tensor>, opts: AllToAllOptions, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Work<Error = Self::Error>>, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Implementors§