pub struct AccumulateArg<'a, E: Numeric> {
pub tensor: &'a Tensor<Atomic<E>>,
pub width: usize,
pub spec: TileSpec,
}Expand description
An output several instances accumulate into, as a single launch argument, in lines of
width. The buffer must arrive holding zero: the atomic only ever adds.
Fields§
§tensor: &'a Tensor<Atomic<E>>§width: usizeThe width a line is added in: the buffer’s own elements are scalar.
spec: TileSpecImplementations§
Source§impl<'a, E: Numeric> AccumulateArg<'a, E>
impl<'a, E: Numeric> AccumulateArg<'a, E>
Sourcepub fn tile(&self, partitioning: &Partitioning) -> Tile
pub fn tile(&self, partitioning: &Partitioning) -> Tile
Serve the output as a Tile that accumulates into it in lines of its width.
Sourcepub fn __expand_tile(
scope: &Scope,
this: &<Self as CubeType>::ExpandType,
partitioning: &<Partitioning as CubeType>::ExpandType,
) -> <Tile as CubeType>::ExpandType
pub fn __expand_tile( scope: &Scope, this: &<Self as CubeType>::ExpandType, partitioning: &<Partitioning as CubeType>::ExpandType, ) -> <Tile as CubeType>::ExpandType
Serve the output as a Tile that accumulates into it in lines of its width.
Trait Implementations§
Source§impl<'a, E: Numeric> CubeType for AccumulateArg<'a, E>
impl<'a, E: Numeric> CubeType for AccumulateArg<'a, E>
type ExpandType = AccumulateArgExpand<'a, E>
Source§impl<'a, E: Numeric> LaunchArg for AccumulateArg<'a, E>
impl<'a, E: Numeric> LaunchArg for AccumulateArg<'a, E>
Source§type RuntimeArg = AccumulateArgLaunch<'a, E>
type RuntimeArg = AccumulateArgLaunch<'a, E>
The runtime argument for the kernel.
Source§type CompilationArg = AccumulateArgCompilationArg<'a, E>
type CompilationArg = AccumulateArgCompilationArg<'a, E>
Compilation argument.
fn register( arg: Self::RuntimeArg, launcher: &mut KernelLauncher, ) -> Self::CompilationArg
Source§fn expand(
arg: &Self::CompilationArg,
builder: &mut KernelBuilder,
) -> <Self as CubeType>::ExpandType
fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as CubeType>::ExpandType
Register a variable during compilation that fill the
KernelBuilder.Auto Trait Implementations§
impl<'a, E> Freeze for AccumulateArg<'a, E>
impl<'a, E> RefUnwindSafe for AccumulateArg<'a, E>
impl<'a, E> Send for AccumulateArg<'a, E>
impl<'a, E> Sync for AccumulateArg<'a, E>
impl<'a, E> Unpin for AccumulateArg<'a, E>
impl<'a, E> UnsafeUnpin for AccumulateArg<'a, E>
impl<'a, E> UnwindSafe for AccumulateArg<'a, E>
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ViewLayoutLaunchArg for T
impl<T> ViewLayoutLaunchArg for T
Source§type RuntimeArg = <T as LaunchArg>::RuntimeArg
type RuntimeArg = <T as LaunchArg>::RuntimeArg
The runtime argument for the kernel.
Source§type CompilationArg = <T as LaunchArg>::CompilationArg
type CompilationArg = <T as LaunchArg>::CompilationArg
Compilation argument.
fn register<B>(
arg: <T as ViewLayoutLaunchArg>::RuntimeArg,
_buffer: &B,
_ty: Type,
launcher: &mut KernelLauncher,
) -> <T as ViewLayoutLaunchArg>::CompilationArgwhere
B: MemoryArg,
Source§fn expand(
arg: &<T as ViewLayoutLaunchArg>::CompilationArg,
_ty: Type,
builder: &mut KernelBuilder,
) -> <T as CubeType>::ExpandType
fn expand( arg: &<T as ViewLayoutLaunchArg>::CompilationArg, _ty: Type, builder: &mut KernelBuilder, ) -> <T as CubeType>::ExpandType
Register an input variable during compilation that fill the
KernelBuilder.Source§fn expand_output(
arg: &Self::CompilationArg,
ty: Type,
builder: &mut KernelBuilder,
) -> Self::ExpandType
fn expand_output( arg: &Self::CompilationArg, ty: Type, builder: &mut KernelBuilder, ) -> Self::ExpandType
Register an output variable during compilation that fill the
KernelBuilder.