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;
}