use crate::{Backend, tensor::FloatTensor};
use core::fmt::Debug;
pub trait TensorCollective<B: Backend>: Clone + Debug + Send + 'static {
type Error: Debug;
fn world_size(&self) -> u32;
fn all_gather_float(&self, value: FloatTensor<B>) -> Result<FloatTensor<B>, Self::Error>;
fn reduce_scatter_sum(&self, value: FloatTensor<B>) -> Result<FloatTensor<B>, Self::Error>;
}