pub enum ShardingStrategy {
FullShard,
ShardGradOp,
NoShard,
HybridShard {
num_model_replicas: usize,
},
}Expand description
Sharding strategy for FSDP — analogous to ZeRO stages.
Variants§
FullShard
ZeRO-3: shard params + grads + opt state (maximum memory savings).
ShardGradOp
ZeRO-2: shard grads + opt state only; parameters are replicated.
NoShard
DDP: replicate everything — no sharding.
HybridShard
ZeRO-3 within a node, replicate model across nodes.
Trait Implementations§
Source§impl Clone for ShardingStrategy
impl Clone for ShardingStrategy
Source§fn clone(&self) -> ShardingStrategy
fn clone(&self) -> ShardingStrategy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ShardingStrategy
impl Debug for ShardingStrategy
Source§impl PartialEq for ShardingStrategy
impl PartialEq for ShardingStrategy
Source§fn eq(&self, other: &ShardingStrategy) -> bool
fn eq(&self, other: &ShardingStrategy) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ShardingStrategy
Auto Trait Implementations§
impl Freeze for ShardingStrategy
impl RefUnwindSafe for ShardingStrategy
impl Send for ShardingStrategy
impl Sync for ShardingStrategy
impl Unpin for ShardingStrategy
impl UnsafeUnpin for ShardingStrategy
impl UnwindSafe for ShardingStrategy
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 more