pub trait VariableTensorCollective<B>: IntegerTensorCollective<B>where
B: Backend,{
// Required methods
fn all_to_all_v_float(
&self,
value: <B as BackendTypes>::FloatTensorPrimitive,
send_counts: &[usize],
) -> Result<VariableTensorExchange<<B as BackendTypes>::FloatTensorPrimitive>, Self::Error>;
fn all_to_all_v_int(
&self,
value: <B as BackendTypes>::IntTensorPrimitive,
send_counts: &[usize],
) -> Result<VariableTensorExchange<<B as BackendTypes>::IntTensorPrimitive>, Self::Error>;
}Expand description
Variable row exchange for routed/sharded graphs through an explicit original communicator. Every rank enters even with zero rows. Input blocks are in destination-rank order; received blocks are in source-rank order. Trailing axes must be nonzero and match across peers; no implicit expert-to-rank assignment is defined here.
Required Methods§
Sourcefn all_to_all_v_float(
&self,
value: <B as BackendTypes>::FloatTensorPrimitive,
send_counts: &[usize],
) -> Result<VariableTensorExchange<<B as BackendTypes>::FloatTensorPrimitive>, Self::Error>
fn all_to_all_v_float( &self, value: <B as BackendTypes>::FloatTensorPrimitive, send_counts: &[usize], ) -> Result<VariableTensorExchange<<B as BackendTypes>::FloatTensorPrimitive>, Self::Error>
Exchange actual floating row blocks, retaining original floating storage.
Sourcefn all_to_all_v_int(
&self,
value: <B as BackendTypes>::IntTensorPrimitive,
send_counts: &[usize],
) -> Result<VariableTensorExchange<<B as BackendTypes>::IntTensorPrimitive>, Self::Error>
fn all_to_all_v_int( &self, value: <B as BackendTypes>::IntTensorPrimitive, send_counts: &[usize], ) -> Result<VariableTensorExchange<<B as BackendTypes>::IntTensorPrimitive>, Self::Error>
Exchange original U8/U32/I32/I64 row blocks without a floating surrogate.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".