pub struct NoOpCommunicator;Expand description
No-op communicator for single-device operation (world_size=1).
- In-place collectives (
all_reduce,broadcast): true no-ops - Separate-buffer collectives (
all_gather,reduce_scatter): memcpy send→recv - Point-to-point (
send,recv): no-ops (nothing to communicate) sync,barrier: no-ops
Trait Implementations§
Source§impl Clone for NoOpCommunicator
impl Clone for NoOpCommunicator
Source§fn clone(&self) -> NoOpCommunicator
fn clone(&self) -> NoOpCommunicator
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Communicator for NoOpCommunicator
impl Communicator for NoOpCommunicator
Source§fn world_size(&self) -> usize
fn world_size(&self) -> usize
Number of participants
Source§unsafe fn all_reduce(
&self,
_ptr: u64,
_count: usize,
_dtype: DType,
_op: ReduceOp,
) -> Result<()>
unsafe fn all_reduce( &self, _ptr: u64, _count: usize, _dtype: DType, _op: ReduceOp, ) -> Result<()>
AllReduce in-place: reduce across all ranks, result on all ranks. Read more
Source§unsafe fn broadcast(
&self,
_ptr: u64,
_count: usize,
_dtype: DType,
_root: usize,
) -> Result<()>
unsafe fn broadcast( &self, _ptr: u64, _count: usize, _dtype: DType, _root: usize, ) -> Result<()>
Broadcast from root rank to all other ranks. Read more
Source§unsafe fn all_gather(
&self,
send_ptr: u64,
recv_ptr: u64,
count: usize,
dtype: DType,
) -> Result<()>
unsafe fn all_gather( &self, send_ptr: u64, recv_ptr: u64, count: usize, dtype: DType, ) -> Result<()>
AllGather: each rank contributes
count elements, result is
count * world_size elements on all ranks. Read moreSource§unsafe fn reduce_scatter(
&self,
send_ptr: u64,
recv_ptr: u64,
count: usize,
dtype: DType,
_op: ReduceOp,
) -> Result<()>
unsafe fn reduce_scatter( &self, send_ptr: u64, recv_ptr: u64, count: usize, dtype: DType, _op: ReduceOp, ) -> Result<()>
ReduceScatter: reduce + scatter. Each rank gets a different slice
of the reduced result. Read more
Source§unsafe fn send(
&self,
_ptr: u64,
_count: usize,
_dtype: DType,
_dest: usize,
_tag: u32,
) -> Result<()>
unsafe fn send( &self, _ptr: u64, _count: usize, _dtype: DType, _dest: usize, _tag: u32, ) -> Result<()>
Point-to-point send to a specific rank (non-blocking). Read more
Source§unsafe fn recv(
&self,
_ptr: u64,
_count: usize,
_dtype: DType,
_src: usize,
_tag: u32,
) -> Result<()>
unsafe fn recv( &self, _ptr: u64, _count: usize, _dtype: DType, _src: usize, _tag: u32, ) -> Result<()>
Point-to-point receive from a specific rank (non-blocking). Read more
Source§fn split(&self, _color: u32, _key: u32) -> Result<Option<Box<dyn Communicator>>>
fn split(&self, _color: u32, _key: u32) -> Result<Option<Box<dyn Communicator>>>
Split this communicator into sub-communicators by color and key. Read more
Source§fn as_stream_sync(&self) -> Option<&dyn StreamSyncOps>
fn as_stream_sync(&self) -> Option<&dyn StreamSyncOps>
Downcast to
StreamSyncOps if this communicator supports CUDA
stream/event synchronization for compute-communication overlap. Read moreSource§impl Debug for NoOpCommunicator
impl Debug for NoOpCommunicator
Source§impl Default for NoOpCommunicator
impl Default for NoOpCommunicator
Source§fn default() -> NoOpCommunicator
fn default() -> NoOpCommunicator
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for NoOpCommunicator
impl RefUnwindSafe for NoOpCommunicator
impl Send for NoOpCommunicator
impl Sync for NoOpCommunicator
impl Unpin for NoOpCommunicator
impl UnsafeUnpin for NoOpCommunicator
impl UnwindSafe for NoOpCommunicator
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.