Skip to main content

PlaneFlowPartitionExpand

Enum PlaneFlowPartitionExpand 

Source
pub enum PlaneFlowPartitionExpand {
    MainFlowOnly,
    LoadOnlyFirst(<PartitionThreshold as CubeType>::ExpandType),
    LoadOnlyLast(<PartitionThreshold as CubeType>::ExpandType),
}

Variants§

§

MainFlowOnly

§

LoadOnlyFirst(<PartitionThreshold as CubeType>::ExpandType)

§

LoadOnlyLast(<PartitionThreshold as CubeType>::ExpandType)

Implementations§

Source§

impl PlaneFlowPartitionExpand

Source

pub fn __expand_compute_index_method( self, scope: &Scope, ) -> <u32 as CubeType>::ExpandType

The index of the current plane among planes that perform compute, ignoring load-only planes.

Source

pub fn __expand_load_index_method( self, scope: &Scope, 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.

Source

pub fn __expand_elect_load_leader_method( &self, scope: &Scope, ) -> <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.

Source

pub fn __expand_is_load_plane_method( self, scope: &Scope, ) -> <bool as CubeType>::ExpandType

Whether the current plane is a load-only plane.

Source

pub fn __expand_is_compute_plane_method( self, scope: &Scope, ) -> <bool as CubeType>::ExpandType

Whether this plane is part of the compute planes. Used in specialized kernels; plane_broadcast keeps the value warp-uniform.

Source

pub fn __expand_new( scope: &Scope, comptime_rule: PlaneFlowPartitionRule, ) -> <PlaneFlowPartition as CubeType>::ExpandType

Construct from comptime rule.

Source

pub fn __expand_compute_index( scope: &Scope, this: Self, ) -> <u32 as CubeType>::ExpandType

The index of the current plane among planes that perform compute, ignoring load-only planes.

Source

pub fn __expand_load_index( scope: &Scope, this: Self, 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.

Source

pub fn __expand_elect_load_leader( scope: &Scope, this: &Self, ) -> <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.

Source

pub fn __expand_is_load_plane( scope: &Scope, this: Self, ) -> <bool as CubeType>::ExpandType

Whether the current plane is a load-only plane.

Source

pub fn __expand_is_compute_plane( scope: &Scope, this: Self, ) -> <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 AsMutExpand for PlaneFlowPartitionExpand

Source§

fn __expand_ref_mut_method(&mut self, _: &Scope) -> &mut Self

Source§

fn __expand_as_mut_method(&mut self, scope: &Scope) -> &mut T

Source§

impl AsRefExpand for PlaneFlowPartitionExpand

Source§

fn __expand_ref_method(&self, _: &Scope) -> &Self

Source§

fn __expand_as_ref_method(&self, scope: &Scope) -> &T

Source§

impl CubeDebug for PlaneFlowPartitionExpand

Source§

fn set_debug_name(&self, scope: &Scope, name: &'static str)

Set the debug name of this type’s expansion. Should do nothing for types that don’t appear at runtime
Source§

impl CubeEnum for PlaneFlowPartitionExpand

Source§

type RuntimeValue = ()

Source§

fn discriminant(&self) -> NativeExpand<i32>

Source§

fn runtime_value(self) -> Self::RuntimeValue

Return the runtime value of this enum, if only one variant has a value. Should return () for all other cases.
Source§

fn discriminant_of(variant_name: &'static str) -> i32

Source§

fn discriminant_of_value(&self, variant_name: &'static str) -> i32

Source§

impl ExpandTypeClone for PlaneFlowPartitionExpand

Source§

fn clone_unchecked(&self) -> Self

Unchecked clone that only clones the conceptual runtime value. Should only be used in cases where each copy is used in a mutually exclusive branch (i.e. match, runtime enums). This is intentionally separated from Rust’s Clone semantics and should only be used for the conceptual expand values, never real data. Using two values in the same branch is undefined behaviour.
Source§

impl IntoExpand for PlaneFlowPartitionExpand

Source§

impl IntoMut for PlaneFlowPartitionExpand

Source§

fn into_mut(self, scope: &Scope) -> Self

Convert the variable into a potentially new mutable variable in scope, copying if needed.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoComptime for T

Source§

fn comptime(self) -> Self

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.