Skip to main content

ConcreteLayout

Struct ConcreteLayout 

Source
pub struct ConcreteLayout<L: Layout + ViewLayoutLaunchArg> { /* private fields */ }

Trait Implementations§

Source§

impl<L: Layout + ViewLayoutLaunchArg> CubeType for ConcreteLayout<L>

Source§

impl<L: Layout + ViewLayoutLaunchArg> Deref for ConcreteLayout<L>

Source§

type Target = L

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<L: Layout + ViewLayoutLaunchArg> LaunchArg for ConcreteLayout<L>

Source§

type RuntimeArg<R: Runtime> = ConcreteLayoutLaunch<L, R>

The runtime argument for the kernel.
Source§

type CompilationArg = ConcreteLayoutCompilationArg<L>

Compilation argument.
Source§

fn register<R: Runtime>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg

Source§

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as CubeType>::ExpandType

Register an input variable during compilation that fill the KernelBuilder.
Source§

fn expand_output( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as CubeType>::ExpandType

Register an output variable during compilation that fill the KernelBuilder.
Source§

impl<L: Layout + ViewLayoutLaunchArg> Layout for ConcreteLayout<L>

Source§

type Coordinates = <L as Layout>::Coordinates

The coordinate type used by the conceptual tensor represented by this layout, i.e. (u32, u32, u32) for a fixed-rank 3D tensor. This does not have to match the rank of the underlying storage (if applicable). It’s only how the tensor is interpreted (viewed) by the code.
Source§

type SourceCoordinates = <L as Layout>::SourceCoordinates

The coordinate type used by the inner storage wrapped in this layout, i.e. u32 for Array, or (u32, u32) for a 2D view.
Source§

fn to_source_pos(&self, pos: Self::Coordinates) -> Self::SourceCoordinates

Transform a set of n-dimensional coordinates to a source coordinate space. It is recommended to use absolute positions here, and handle the translation into vectors at the lowest level (global memory layout).
Source§

fn to_source_pos_checked( &self, pos: Self::Coordinates, ) -> (Self::SourceCoordinates, bool)

Transform a set of n-dimensional coordinates to an offset into the underlying storage, and return whether the position is in bounds of this layout. See also Layout::to_source_pos
Source§

fn shape(&self) -> Self::Coordinates

The shape of the conceptual tensor represented by this layout. Not necessarily the extent of the underlying storage, but only this view of it.
Source§

fn is_in_bounds(&self, pos: Self::Coordinates) -> bool

Source§

fn __expand_to_source_pos( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <Self::Coordinates as CubeType>::ExpandType, ) -> <Self::SourceCoordinates as CubeType>::ExpandType

Source§

fn __expand_to_source_pos_checked( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <Self::Coordinates as CubeType>::ExpandType, ) -> <(Self::SourceCoordinates, bool) as CubeType>::ExpandType

Source§

fn __expand_shape( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> <Self::Coordinates as CubeType>::ExpandType

Source§

fn __expand_is_in_bounds( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <Self::Coordinates as CubeType>::ExpandType, ) -> <bool as CubeType>::ExpandType

Auto Trait Implementations§

§

impl<L> Freeze for ConcreteLayout<L>
where <L as CubeType>::ExpandType: Sized, L: Freeze,

§

impl<L> RefUnwindSafe for ConcreteLayout<L>

§

impl<L> Send for ConcreteLayout<L>
where <L as CubeType>::ExpandType: Sized,

§

impl<L> Sync for ConcreteLayout<L>
where <L as CubeType>::ExpandType: Sized,

§

impl<L> Unpin for ConcreteLayout<L>
where <L as CubeType>::ExpandType: Sized, L: Unpin,

§

impl<L> UnsafeUnpin for ConcreteLayout<L>
where <L as CubeType>::ExpandType: Sized, L: UnsafeUnpin,

§

impl<L> UnwindSafe for ConcreteLayout<L>
where <L as CubeType>::ExpandType: Sized, L: UnwindSafe,

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<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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.
Source§

impl<T> ViewLayoutLaunchArg for T
where T: LaunchArg,

Source§

type RuntimeArg<R: Runtime> = <T as LaunchArg>::RuntimeArg<R>

The runtime argument for the kernel.
Source§

type CompilationArg = <T as LaunchArg>::CompilationArg

Compilation argument.
Source§

fn register<R, B>( arg: <T as ViewLayoutLaunchArg>::RuntimeArg<R>, _buffer: &B, _ty: Type, launcher: &mut KernelLauncher<R>, ) -> <T as ViewLayoutLaunchArg>::CompilationArg
where R: Runtime, B: BufferArg,

Source§

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: &<T as ViewLayoutLaunchArg>::CompilationArg, _ty: Type, builder: &mut KernelBuilder, ) -> <T as CubeType>::ExpandType

Register an output variable during compilation that fill the KernelBuilder.