pub struct NhwcLayout {
pub stride_batch: u32,
pub strides_spatial: Sequence<u32>,
pub stride_channel: u32,
pub shape_batch: u32,
pub shapes_spatial: Sequence<u32>,
pub shape_channel: u32,
pub line_size: u32,
pub check_spatial: bool,
}Expand description
Layout for a spatial (i.e. NHWC) tensor. Bounds check only applies to spatial dimensions, not channel or batch (because these are implicitly checked in the layouts used with spatial tensors).
Fields§
§stride_batch: u32Stride for N
strides_spatial: Sequence<u32>Strides for DHW
stride_channel: u32Stride for C
shape_batch: u32Shape of N
shapes_spatial: Sequence<u32>Shape of DHW
shape_channel: u32Shape of C
line_size: u32§check_spatial: boolImplementations§
Source§impl NhwcLayout
impl NhwcLayout
pub fn new<E: Numeric, IO: Clone>( tensor: VirtualTensor<E, IO>, dim: Dimensionality, check_spatial: bool, ) -> Self
pub fn __expand_new<E: Numeric, IO: Clone>( scope: &mut Scope, tensor: <VirtualTensor<E, IO> as CubeType>::ExpandType, dim: Dimensionality, check_spatial: bool, ) -> <Self as CubeType>::ExpandType
Trait Implementations§
Source§impl Clone for NhwcLayout
impl Clone for NhwcLayout
Source§fn clone(&self) -> NhwcLayout
fn clone(&self) -> NhwcLayout
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl CubeType for NhwcLayout
impl CubeType for NhwcLayout
type ExpandType = NhwcLayoutExpand
Source§fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
Wrapper around the init method, necessary to type inference.
Source§impl LaunchArg for NhwcLayout
impl LaunchArg for NhwcLayout
Source§type RuntimeArg<'a, R: Runtime> = NhwcLayoutLaunch<'a, R>
type RuntimeArg<'a, R: Runtime> = NhwcLayoutLaunch<'a, R>
The runtime argument for the kernel.
Source§type CompilationArg = NhwcLayoutCompilationArg
type CompilationArg = NhwcLayoutCompilationArg
Compilation argument.
fn compilation_arg<'a, R: Runtime>( runtime_arg: &Self::RuntimeArg<'a, R>, ) -> 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 an input variable during compilation that fill the KernelBuilder.
Source§fn expand_output(
arg: &Self::CompilationArg,
builder: &mut KernelBuilder,
) -> <Self as CubeType>::ExpandType
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 Layout for NhwcLayout
impl Layout for NhwcLayout
Source§type Coordinates = NhwcCoords
type Coordinates = NhwcCoords
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 = u32
type SourceCoordinates = u32
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
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 lines
at the lowest level (global memory layout).
Source§fn to_source_pos_checked(
&self,
pos: Self::Coordinates,
) -> (Self::SourceCoordinates, bool)
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
fn is_in_bounds(&self, pos: Self::Coordinates) -> bool
Source§fn shape(&self) -> Self::Coordinates
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.
fn __expand_to_source_pos( scope: &mut Scope, this: Self::ExpandType, pos: <Self::Coordinates as CubeType>::ExpandType, ) -> <Self::SourceCoordinates as CubeType>::ExpandType
fn __expand_to_source_pos_checked( scope: &mut Scope, this: Self::ExpandType, pos: <Self::Coordinates as CubeType>::ExpandType, ) -> <(Self::SourceCoordinates, bool) as CubeType>::ExpandType
fn __expand_shape( scope: &mut Scope, this: Self::ExpandType, ) -> <Self::Coordinates as CubeType>::ExpandType
fn __expand_is_in_bounds( scope: &mut Scope, this: Self::ExpandType, pos: <Self::Coordinates as CubeType>::ExpandType, ) -> <bool as CubeType>::ExpandType
Auto Trait Implementations§
impl Freeze for NhwcLayout
impl RefUnwindSafe for NhwcLayout
impl Send for NhwcLayout
impl Sync for NhwcLayout
impl Unpin for NhwcLayout
impl UnwindSafe for NhwcLayout
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