pub enum PlaneFlowPartition {
MainFlowOnly,
LoadOnlyFirst(PartitionThreshold),
LoadOnlyLast(PartitionThreshold),
}Expand description
Runtime view of PlaneFlowPartitionRule: distinguishes a plane’s role
based on its plane id.
Variants§
MainFlowOnly
All planes are in the main flow (no specialization).
LoadOnlyFirst(PartitionThreshold)
Load-only planes: [0, Threshold); main-flow planes: [Threshold, total).
LoadOnlyLast(PartitionThreshold)
Main-flow planes: [0, Threshold); load-only planes: [Threshold, total).
Implementations§
Source§impl PlaneFlowPartition
impl PlaneFlowPartition
pub fn new_MainFlowOnly() -> Self
pub fn __expand_new_MainFlowOnly(_: &Scope) -> PlaneFlowPartitionExpand
pub fn new_LoadOnlyFirst(_0: PartitionThreshold) -> Self
pub fn __expand_new_LoadOnlyFirst( _: &Scope, _0: <PartitionThreshold as CubeType>::ExpandType, ) -> PlaneFlowPartitionExpand
pub fn new_LoadOnlyLast(_0: PartitionThreshold) -> Self
pub fn __expand_new_LoadOnlyLast( _: &Scope, _0: <PartitionThreshold as CubeType>::ExpandType, ) -> PlaneFlowPartitionExpand
Source§impl PlaneFlowPartition
impl PlaneFlowPartition
Sourcepub fn new(comptime_rule: PlaneFlowPartitionRule) -> PlaneFlowPartition
pub fn new(comptime_rule: PlaneFlowPartitionRule) -> PlaneFlowPartition
Construct from comptime rule.
Sourcepub fn compute_index(self) -> u32
pub fn compute_index(self) -> u32
The index of the current plane among planes that perform compute, ignoring load-only planes.
Sourcepub fn load_index(self, specialization_tensor_config: InputLoadFlow) -> u32
pub fn load_index(self, specialization_tensor_config: InputLoadFlow) -> u32
The index of the current plane among planes that perform loading,
ignoring any plane that does not participate for this ident.
Sourcepub fn elect_load_leader(&self) -> bool
pub fn elect_load_leader(&self) -> bool
Whether this unit is the leader of the loading units. Always the lowest
unit in the correct group. Used by TMA; plane_broadcast / plane_elect
keep the value warp-uniform.
Sourcepub fn is_load_plane(self) -> bool
pub fn is_load_plane(self) -> bool
Whether the current plane is a load-only plane.
Sourcepub fn is_compute_plane(self) -> bool
pub fn is_compute_plane(self) -> bool
Whether this plane is part of the compute planes. Used in specialized
kernels; plane_broadcast keeps the value warp-uniform.
Sourcepub fn __expand_new(
scope: &Scope,
comptime_rule: PlaneFlowPartitionRule,
) -> <PlaneFlowPartition as CubeType>::ExpandType
pub fn __expand_new( scope: &Scope, comptime_rule: PlaneFlowPartitionRule, ) -> <PlaneFlowPartition as CubeType>::ExpandType
Construct from comptime rule.
Sourcepub fn __expand_compute_index(
scope: &Scope,
this: <Self as CubeType>::ExpandType,
) -> <u32 as CubeType>::ExpandType
pub fn __expand_compute_index( scope: &Scope, this: <Self as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
The index of the current plane among planes that perform compute, ignoring load-only planes.
Sourcepub fn __expand_load_index(
scope: &Scope,
this: <Self as CubeType>::ExpandType,
specialization_tensor_config: InputLoadFlow,
) -> <u32 as CubeType>::ExpandType
pub fn __expand_load_index( scope: &Scope, this: <Self as CubeType>::ExpandType, specialization_tensor_config: InputLoadFlow, ) -> <u32 as CubeType>::ExpandType
The index of the current plane among planes that perform loading,
ignoring any plane that does not participate for this ident.
Sourcepub fn __expand_elect_load_leader(
scope: &Scope,
this: &<Self as CubeType>::ExpandType,
) -> <bool as CubeType>::ExpandType
pub fn __expand_elect_load_leader( scope: &Scope, this: &<Self as CubeType>::ExpandType, ) -> <bool as CubeType>::ExpandType
Whether this unit is the leader of the loading units. Always the lowest
unit in the correct group. Used by TMA; plane_broadcast / plane_elect
keep the value warp-uniform.
Sourcepub fn __expand_is_load_plane(
scope: &Scope,
this: <Self as CubeType>::ExpandType,
) -> <bool as CubeType>::ExpandType
pub fn __expand_is_load_plane( scope: &Scope, this: <Self as CubeType>::ExpandType, ) -> <bool as CubeType>::ExpandType
Whether the current plane is a load-only plane.
Sourcepub fn __expand_is_compute_plane(
scope: &Scope,
this: <Self as CubeType>::ExpandType,
) -> <bool as CubeType>::ExpandType
pub fn __expand_is_compute_plane( scope: &Scope, this: <Self as CubeType>::ExpandType, ) -> <bool as CubeType>::ExpandType
Whether this plane is part of the compute planes. Used in specialized
kernels; plane_broadcast keeps the value warp-uniform.
Trait Implementations§
Source§impl Clone for PlaneFlowPartition
impl Clone for PlaneFlowPartition
Source§fn clone(&self) -> PlaneFlowPartition
fn clone(&self) -> PlaneFlowPartition
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for PlaneFlowPartition
Source§impl CubeDebug for PlaneFlowPartition
impl CubeDebug for PlaneFlowPartition
Source§fn set_debug_name(&self, scope: &Scope, name: &'static str)
fn set_debug_name(&self, scope: &Scope, name: &'static str)
Source§impl Debug for PlaneFlowPartition
impl Debug for PlaneFlowPartition
impl Eq for PlaneFlowPartition
Source§impl Hash for PlaneFlowPartition
impl Hash for PlaneFlowPartition
Source§impl PartialEq for PlaneFlowPartition
impl PartialEq for PlaneFlowPartition
impl StructuralPartialEq for PlaneFlowPartition
Auto Trait Implementations§
impl Freeze for PlaneFlowPartition
impl RefUnwindSafe for PlaneFlowPartition
impl Send for PlaneFlowPartition
impl Sync for PlaneFlowPartition
impl Unpin for PlaneFlowPartition
impl UnsafeUnpin for PlaneFlowPartition
impl UnwindSafe for PlaneFlowPartition
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneExpand for Twhere
T: Clone,
impl<T> CloneExpand for Twhere
T: Clone,
fn __expand_clone_method(&self, _: &Scope) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CompilationArg for T
impl<T> CompilationArg for T
Source§fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
impl<T> CubeComptime for T
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
key and return true if they are equal.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> ⓘ
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> ⓘ
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