pub enum ScalesLayout {
PerTensor(PerTensorLayout),
BlockScaled(BlockScaledLayout),
}Expand description
Layout for quantization scales, indexed by quant element index and returns the corresponding scale based on the quantization type.
Variants§
PerTensor(PerTensorLayout)
BlockScaled(BlockScaledLayout)
Implementations§
Source§impl ScalesLayout
impl ScalesLayout
pub fn new_PerTensor(_0: PerTensorLayout) -> Self
pub fn __expand_new_PerTensor( _: &mut Scope, _0: <PerTensorLayout as CubeType>::ExpandType, ) -> ScalesLayoutExpand
pub fn new_BlockScaled(_0: BlockScaledLayout) -> Self
pub fn __expand_new_BlockScaled( _: &mut Scope, _0: <BlockScaledLayout as CubeType>::ExpandType, ) -> ScalesLayoutExpand
Source§impl ScalesLayout
impl ScalesLayout
Sourcepub fn is_block_start(&self, pos: u32) -> bool
pub fn is_block_start(&self, pos: u32) -> bool
Whether the position is at the start of a new block. Used for electing a unit to write each scale.
pub fn __expand_is_block_start( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <u32 as CubeType>::ExpandType, ) -> <bool as CubeType>::ExpandType
Trait Implementations§
Source§impl CubeDebug for ScalesLayout
impl CubeDebug for ScalesLayout
Source§fn set_debug_name(&self, scope: &mut Scope, name: &'static str)
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 CubeType for ScalesLayout
impl CubeType for ScalesLayout
type ExpandType = ScalesLayoutExpand
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 ScalesLayout
impl LaunchArg for ScalesLayout
Source§type RuntimeArg<'a, R: Runtime> = ScalesLayoutArgs<'a, R>
type RuntimeArg<'a, R: Runtime> = ScalesLayoutArgs<'a, R>
The runtime argument for the kernel.
Source§type CompilationArg = ScalesLayoutCompilationArg
type CompilationArg = ScalesLayoutCompilationArg
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 ScalesLayout
impl Layout for ScalesLayout
Source§type Coordinates = u32
type Coordinates = 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 = 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 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
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 __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 ScalesLayout
impl RefUnwindSafe for ScalesLayout
impl Send for ScalesLayout
impl Sync for ScalesLayout
impl Unpin for ScalesLayout
impl UnwindSafe for ScalesLayout
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