pub struct WeightLayout {
pub padded_channels: FastDivmod<u32>,
pub rows: u32,
pub cols: u32,
pub params: ConvolutionParams,
pub config: GlobalLayoutConfig,
}Expand description
Maps a 4D weight tensor of shape (out_c, (k_h, k_w, in_c)) to a col-major 2D matmul tile with
shape (n, k)
Fields§
§padded_channels: FastDivmod<u32>Number of channels, including padding, used for decomposing k
rows: u32Shape of the combined kernel and channels dim, including padding
cols: u32Shape of the out_c dimension
params: ConvolutionParamsSize of the convolution kernel
config: GlobalLayoutConfigGlobal memory config for the backing tensor
Implementations§
Source§impl WeightLayout
impl WeightLayout
pub fn new<E: Numeric, G: GlobalConfig>( rows: u32, cols: u32, padded_channels: FastDivmod<u32>, config: GlobalLayoutConfig, params: ConvolutionParams, ) -> WeightLayout
pub fn __expand_new<E: Numeric, G: GlobalConfig>( scope: &mut Scope, rows: <u32 as RudaType>::ExpandType, cols: <u32 as RudaType>::ExpandType, padded_channels: <FastDivmod<u32> as RudaType>::ExpandType, config: GlobalLayoutConfig, params: ConvolutionParams, ) -> <WeightLayout as RudaType>::ExpandType
Trait Implementations§
Source§impl Clone for WeightLayout
impl Clone for WeightLayout
Source§impl LaunchArg for WeightLayout
impl LaunchArg for WeightLayout
Source§type RuntimeArg<R: LaunchMarker> = WeightLayoutLaunch<R>
type RuntimeArg<R: LaunchMarker> = WeightLayoutLaunch<R>
The runtime argument for the kernel.
Source§type CompilationArg = WeightLayoutCompilationArg
type CompilationArg = WeightLayoutCompilationArg
Compilation argument.
fn register<R: LaunchMarker>( arg: Self::RuntimeArg<R>, launcher: &mut KernelLauncher<R>, ) -> Self::CompilationArg
Source§fn expand(
arg: &Self::CompilationArg,
builder: &mut KernelBuilder,
) -> <Self as RudaType>::ExpandType
fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as RudaType>::ExpandType
Register an input variable during compilation that fill the
KernelBuilder.Source§fn expand_output(
arg: &Self::CompilationArg,
builder: &mut KernelBuilder,
) -> <Self as RudaType>::ExpandType
fn expand_output( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> <Self as RudaType>::ExpandType
Register an output variable during compilation that fill the
KernelBuilder.Source§impl Layout for WeightLayout
impl Layout for WeightLayout
Source§type Coordinates = (usize, u32, u32)
type Coordinates = (usize, u32, u32)
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 = NhwcCoords
type SourceCoordinates = NhwcCoords
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, coords: Self::Coordinates) -> NhwcCoords
fn to_source_pos(&self, coords: Self::Coordinates) -> NhwcCoords
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, coords: Self::Coordinates) -> (NhwcCoords, bool)
fn to_source_pos_checked(&self, coords: Self::Coordinates) -> (NhwcCoords, 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_posSource§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 is_in_bounds(&self, pos: Self::Coordinates) -> bool
fn __expand_to_source_pos( scope: &mut Scope, this: Self::ExpandType, pos: <Self::Coordinates as RudaType>::ExpandType, ) -> <Self::SourceCoordinates as RudaType>::ExpandType
fn __expand_to_source_pos_checked( scope: &mut Scope, this: Self::ExpandType, pos: <Self::Coordinates as RudaType>::ExpandType, ) -> <(Self::SourceCoordinates, bool) as RudaType>::ExpandType
fn __expand_shape( scope: &mut Scope, this: Self::ExpandType, ) -> <Self::Coordinates as RudaType>::ExpandType
fn __expand_is_in_bounds( scope: &mut Scope, this: Self::ExpandType, pos: <Self::Coordinates as RudaType>::ExpandType, ) -> <bool as RudaType>::ExpandType
Source§impl RudaType for WeightLayout
impl RudaType for WeightLayout
type ExpandType = WeightLayoutExpand
fn __expand_inactive_value(scope: &mut Scope) -> Self::ExpandType
fn __expand_absent_reference( _scope: &mut Scope, _writable: bool, ) -> Self::ExpandType
Auto Trait Implementations§
impl Freeze for WeightLayout
impl RefUnwindSafe for WeightLayout
impl Send for WeightLayout
impl Sync for WeightLayout
impl Unpin for WeightLayout
impl UnsafeUnpin for WeightLayout
impl UnwindSafe for WeightLayout
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> RuntimeConfig for T
Source§impl<T> TuneInputs for T
impl<T> TuneInputs for T
Source§impl<T> ViewLayoutLaunchArg for Twhere
T: LaunchArg,
impl<T> ViewLayoutLaunchArg for Twhere
T: LaunchArg,
Source§type RuntimeArg<R: LaunchMarker> = <T as LaunchArg>::RuntimeArg<R>
type RuntimeArg<R: LaunchMarker> = <T as LaunchArg>::RuntimeArg<R>
The runtime argument for the kernel.
Source§type CompilationArg = <T as LaunchArg>::CompilationArg
type CompilationArg = <T as LaunchArg>::CompilationArg
Compilation argument.
fn register<R, B>(
arg: <T as ViewLayoutLaunchArg>::RuntimeArg<R>,
_buffer: &B,
_ty: Type,
launcher: &mut KernelLauncher<R>,
) -> <T as ViewLayoutLaunchArg>::CompilationArgwhere
R: LaunchMarker,
B: BufferArg,
Source§fn expand(
arg: &<T as ViewLayoutLaunchArg>::CompilationArg,
_ty: Type,
builder: &mut KernelBuilder,
) -> <T as RudaType>::ExpandType
fn expand( arg: &<T as ViewLayoutLaunchArg>::CompilationArg, _ty: Type, builder: &mut KernelBuilder, ) -> <T as RudaType>::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 RudaType>::ExpandType
fn expand_output( arg: &<T as ViewLayoutLaunchArg>::CompilationArg, _ty: Type, builder: &mut KernelBuilder, ) -> <T as RudaType>::ExpandType
Register an output variable during compilation that fill the
KernelBuilder.