Enum CubeCountInput

Source
pub enum CubeCountInput {
    FromProblem,
    SmFirst {
        m_cubes: u32,
        n_cubes: u32,
        batch_cubes: u32,
    },
    CubeFirst {
        m_cubes: u32,
        n_cubes: u32,
        batch_cubes: u32,
    },
    Flattened {
        m_cubes: u32,
        n_cubes: u32,
    },
    Spread {
        m_cubes: u32,
        n_cubes: u32,
        batch_cubes: u32,
    },
}
Expand description

CubeCountPlan stripped of non-essential runtime information

This enum is given as runtime input to the matmul

Variants§

§

FromProblem

§

SmFirst

Fields

§m_cubes: u32
§n_cubes: u32
§batch_cubes: u32
§

CubeFirst

Fields

§m_cubes: u32
§n_cubes: u32
§batch_cubes: u32
§

Flattened

Fields

§m_cubes: u32
§n_cubes: u32
§

Spread

Fields

§m_cubes: u32
§n_cubes: u32
§batch_cubes: u32

Implementations§

Source§

impl CubeCountInput

Source

pub fn new_FromProblem() -> Self

Source

pub fn __expand_new_FromProblem(_: &mut Scope) -> CubeCountInputExpand

Source

pub fn new_SmFirst(m_cubes: u32, n_cubes: u32, batch_cubes: u32) -> Self

Source

pub fn __expand_new_SmFirst( _: &mut Scope, m_cubes: <u32 as CubeType>::ExpandType, n_cubes: <u32 as CubeType>::ExpandType, batch_cubes: <u32 as CubeType>::ExpandType, ) -> CubeCountInputExpand

Source

pub fn new_CubeFirst(m_cubes: u32, n_cubes: u32, batch_cubes: u32) -> Self

Source

pub fn __expand_new_CubeFirst( _: &mut Scope, m_cubes: <u32 as CubeType>::ExpandType, n_cubes: <u32 as CubeType>::ExpandType, batch_cubes: <u32 as CubeType>::ExpandType, ) -> CubeCountInputExpand

Source

pub fn new_Flattened(m_cubes: u32, n_cubes: u32) -> Self

Source

pub fn __expand_new_Flattened( _: &mut Scope, m_cubes: <u32 as CubeType>::ExpandType, n_cubes: <u32 as CubeType>::ExpandType, ) -> CubeCountInputExpand

Source

pub fn new_Spread(m_cubes: u32, n_cubes: u32, batch_cubes: u32) -> Self

Source

pub fn __expand_new_Spread( _: &mut Scope, m_cubes: <u32 as CubeType>::ExpandType, n_cubes: <u32 as CubeType>::ExpandType, batch_cubes: <u32 as CubeType>::ExpandType, ) -> CubeCountInputExpand

Source§

impl CubeCountInput

Source

pub fn num_valid_cubes(&self) -> u32

Returns the number of valid cubes

Source

pub fn cube_pos_to_tensor_pos( &self, global_order: GlobalOrder, ) -> (u32, u32, u32)

Given a cube position (SM ID, local index), returns the tensor coordinates (m, n, batch).

Source

pub fn __expand_num_valid_cubes( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType

Source

pub fn __expand_cube_pos_to_tensor_pos( scope: &mut Scope, this: <Self as CubeType>::ExpandType, global_order: GlobalOrder, ) -> <(u32, u32, u32) as CubeType>::ExpandType

Trait Implementations§

Source§

impl CubeDebug for CubeCountInput

Source§

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 CubeCountInput

Source§

type ExpandType = CubeCountInputExpand

Source§

fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType

Wrapper around the init method, necessary to type inference.
Source§

impl LaunchArg for CubeCountInput

Source§

type RuntimeArg<'a, R: Runtime> = CubeCountInputArgs<'a, R>

The runtime argument for the kernel.
Source§

fn compilation_arg<'a, R: Runtime>( runtime_arg: &Self::RuntimeArg<'a, R>, ) -> Self::CompilationArg

Source§

impl LaunchArgExpand for CubeCountInput

Source§

type CompilationArg = CubeCountInputCompilationArg

Compilation argument.
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.

Auto Trait Implementations§

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, 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> CubeLaunch for T