Skip to main content

ReduceOperation

Enum ReduceOperation 

Source
pub enum ReduceOperation {
    Sum(Sum),
    Prod(Prod),
    Mean(Mean),
    MaxAbs(MaxAbs),
    ArgMax(ArgMax),
    ArgMin(ArgMin),
    Max(Max),
    Min(Min),
    ArgTopK(ArgTopK),
    TopK(TopK),
}

Variants§

§

Sum(Sum)

§

Prod(Prod)

§

Mean(Mean)

§

MaxAbs(MaxAbs)

§

ArgMax(ArgMax)

§

ArgMin(ArgMin)

§

Max(Max)

§

Min(Min)

§

ArgTopK(ArgTopK)

§

TopK(TopK)

Implementations§

Source§

impl ReduceOperation

Source

pub fn new_Sum(_0: Sum) -> Self

Source

pub fn __expand_new_Sum( _: &mut Scope, _0: <Sum as RudaType>::ExpandType, ) -> ReduceOperationExpand

Source

pub fn new_Prod(_0: Prod) -> Self

Source

pub fn __expand_new_Prod( _: &mut Scope, _0: <Prod as RudaType>::ExpandType, ) -> ReduceOperationExpand

Source

pub fn new_Mean(_0: Mean) -> Self

Source

pub fn __expand_new_Mean( _: &mut Scope, _0: <Mean as RudaType>::ExpandType, ) -> ReduceOperationExpand

Source

pub fn new_MaxAbs(_0: MaxAbs) -> Self

Source

pub fn __expand_new_MaxAbs( _: &mut Scope, _0: <MaxAbs as RudaType>::ExpandType, ) -> ReduceOperationExpand

Source

pub fn new_ArgMax(_0: ArgMax) -> Self

Source

pub fn __expand_new_ArgMax( _: &mut Scope, _0: <ArgMax as RudaType>::ExpandType, ) -> ReduceOperationExpand

Source

pub fn new_ArgMin(_0: ArgMin) -> Self

Source

pub fn __expand_new_ArgMin( _: &mut Scope, _0: <ArgMin as RudaType>::ExpandType, ) -> ReduceOperationExpand

Source

pub fn new_Max(_0: Max) -> Self

Source

pub fn __expand_new_Max( _: &mut Scope, _0: <Max as RudaType>::ExpandType, ) -> ReduceOperationExpand

Source

pub fn new_Min(_0: Min) -> Self

Source

pub fn __expand_new_Min( _: &mut Scope, _0: <Min as RudaType>::ExpandType, ) -> ReduceOperationExpand

Source

pub fn new_ArgTopK(_0: ArgTopK) -> Self

Source

pub fn __expand_new_ArgTopK( _: &mut Scope, _0: <ArgTopK as RudaType>::ExpandType, ) -> ReduceOperationExpand

Source

pub fn new_TopK(_0: TopK) -> Self

Source

pub fn __expand_new_TopK( _: &mut Scope, _0: <TopK as RudaType>::ExpandType, ) -> ReduceOperationExpand

Trait Implementations§

Source§

impl Clone for ReduceOperation

Source§

fn clone(&self) -> ReduceOperation

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ReduceOperation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl ReduceFamily for ReduceOperation

Source§

impl<P: ReducePrecision> ReduceInstruction<P> for ReduceOperation

Source§

type SharedAccumulator = DynamicSharedAccumulator<P>

When multiple agents are collaborating to reduce a single slice, we need a share accumulator to store multiple AccumulatorItem. This is most likely a SharedMemory<Vector<T>> or a struct or tuple of vectorized shared memories.
Source§

type Config = ReduceOperationConfig

Source§

fn requirements(this: &Self) -> ReduceRequirements

Requirements of the reduce.
Source§

fn accumulator_format(this: &Self) -> AccumulatorFormat

Source§

fn from_config(config: Self::Config) -> Self

Source§

fn null_input(this: &Self) -> Vector<P::EI, P::SI>

A input such that Self::reduce(accumulator, Self::null_input(), coordinate, use_planes) is guaranteed to return accumulator unchanged for any choice of coordinate.
Source§

fn null_accumulator(this: &Self) -> Accumulator<P>

A accumulator such that Self::fuse_accumulators(accumulator, Self::null_accumulator() always returns is guaranteed to return accumulator unchanged.
Source§

fn reduce( this: &Self, accumulator: &mut Accumulator<P>, item: Item<P>, reduce_step: ReduceStep, )

If ReduceStep is Plane, reduce all the item and coordinate within the accumulator. if ReduceStep is Identity, reduce the given item and coordinate into the accumulator.
Source§

fn plane_reduce_inplace(this: &Self, accumulator: &mut Accumulator<P>)

Source§

fn fuse_accumulators( this: &Self, accumulator: &mut Accumulator<P>, other: &Accumulator<P>, )

Reduce a whole accumulator (other) in accumulator.
Source§

fn to_output_parallel<Out: Numeric>( this: &Self, accumulator: Accumulator<P>, shape_axis_reduce: usize, ) -> Value<Out>

Reduce all elements of the accumulator into a single output element of type Out.
Source§

fn to_output_perpendicular<Out: Numeric>( this: &Self, accumulator: Accumulator<P>, shape_axis_reduce: usize, ) -> Value<Vector<Out, P::SI>>

Convert each element of the accumulator into the expected output element of type Out.
Source§

fn __expand_requirements( scope: &mut Scope, this: <Self as RudaType>::ExpandType, ) -> <ReduceRequirements as RudaType>::ExpandType

Source§

fn __expand_accumulator_format( scope: &mut Scope, this: <Self as RudaType>::ExpandType, ) -> AccumulatorFormat

Source§

fn __expand_from_config( scope: &mut Scope, config: Self::Config, ) -> <Self as RudaType>::ExpandType

Source§

fn __expand_null_input( scope: &mut Scope, this: <Self as RudaType>::ExpandType, ) -> <Vector<P::EI, P::SI> as RudaType>::ExpandType

Source§

fn __expand_null_accumulator( scope: &mut Scope, this: <Self as RudaType>::ExpandType, ) -> <Accumulator<P> as RudaType>::ExpandType

Source§

fn __expand_reduce( scope: &mut Scope, this: <Self as RudaType>::ExpandType, accumulator: <Accumulator<P> as RudaType>::ExpandType, item: <Item<P> as RudaType>::ExpandType, reduce_step: ReduceStep, ) -> <() as RudaType>::ExpandType

Source§

fn __expand_plane_reduce_inplace( scope: &mut Scope, this: <Self as RudaType>::ExpandType, accumulator: <Accumulator<P> as RudaType>::ExpandType, ) -> <() as RudaType>::ExpandType

Source§

fn __expand_fuse_accumulators( scope: &mut Scope, this: <Self as RudaType>::ExpandType, accumulator: <Accumulator<P> as RudaType>::ExpandType, other: <Accumulator<P> as RudaType>::ExpandType, ) -> <() as RudaType>::ExpandType

Source§

fn __expand_to_output_parallel<Out: Numeric>( scope: &mut Scope, this: <Self as RudaType>::ExpandType, accumulator: <Accumulator<P> as RudaType>::ExpandType, shape_axis_reduce: <usize as RudaType>::ExpandType, ) -> <Value<Out> as RudaType>::ExpandType

Source§

fn __expand_to_output_perpendicular<Out: Numeric>( scope: &mut Scope, this: <Self as RudaType>::ExpandType, accumulator: <Accumulator<P> as RudaType>::ExpandType, shape_axis_reduce: <usize as RudaType>::ExpandType, ) -> <Value<Vector<Out, P::SI>> as RudaType>::ExpandType

Source§

impl RudaDebug for ReduceOperation

Source§

fn set_debug_name(&self, scope: &mut 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 RudaType for ReduceOperation

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<C> CloneExpand for C
where C: Clone,

Source§

fn __expand_clone_method(&self, _scope: &mut Scope) -> C

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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

impl<T> TuneInputs for T
where T: Clone + Send + Sync + 'static,

Source§

type At<'a> = T

The concrete input type at lifetime 'a.