pub struct PipelineConfig {
pub num_stages: usize,
pub num_micro_batches: usize,
}Expand description
Configuration of a pipeline: number of stages and micro-batches.
Fields§
§num_stages: usizeNumber of pipeline stages P (pipeline depth).
num_micro_batches: usizeNumber of micro-batches M the minibatch is split into.
Implementations§
Source§impl PipelineConfig
impl PipelineConfig
Sourcepub fn new(num_stages: usize, num_micro_batches: usize) -> Result<Self>
pub fn new(num_stages: usize, num_micro_batches: usize) -> Result<Self>
Create a configuration, validating that both counts are at least one.
Sourcepub fn analytical_bubble_fraction(&self) -> f64
pub fn analytical_bubble_fraction(&self) -> f64
Analytical GPipe bubble fraction (P-1)/(M+P-1).
This is the fraction of stage-time wasted to pipeline fill/drain under the idealised uniform-cost model. The generated schedule’s measured idle fraction equals this value when all stage costs are uniform.
Sourcepub fn analytical_utilization(&self) -> f64
pub fn analytical_utilization(&self) -> f64
Analytical pipeline utilisation M/(M+P-1) = 1 - bubble_fraction.
Trait Implementations§
Source§impl Clone for PipelineConfig
impl Clone for PipelineConfig
Source§fn clone(&self) -> PipelineConfig
fn clone(&self) -> PipelineConfig
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 moreimpl Copy for PipelineConfig
Source§impl Debug for PipelineConfig
impl Debug for PipelineConfig
impl Eq for PipelineConfig
Source§impl PartialEq for PipelineConfig
impl PartialEq for PipelineConfig
impl StructuralPartialEq for PipelineConfig
Auto Trait Implementations§
impl Freeze for PipelineConfig
impl RefUnwindSafe for PipelineConfig
impl Send for PipelineConfig
impl Sync for PipelineConfig
impl Unpin for PipelineConfig
impl UnsafeUnpin for PipelineConfig
impl UnwindSafe for PipelineConfig
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.