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§
Implementations§
Source§impl CubeCountInput
impl CubeCountInput
pub fn new_FromProblem() -> Self
pub fn __expand_new_FromProblem(_: &mut Scope) -> CubeCountInputExpand
pub fn new_SmFirst(m_cubes: u32, n_cubes: u32, batch_cubes: u32) -> Self
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
pub fn new_CubeFirst(m_cubes: u32, n_cubes: u32, batch_cubes: u32) -> Self
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
pub fn new_Flattened(m_cubes: u32, n_cubes: u32) -> Self
pub fn __expand_new_Flattened( _: &mut Scope, m_cubes: <u32 as CubeType>::ExpandType, n_cubes: <u32 as CubeType>::ExpandType, ) -> CubeCountInputExpand
pub fn new_Spread(m_cubes: u32, n_cubes: u32, batch_cubes: u32) -> Self
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
impl CubeCountInput
Sourcepub fn num_valid_cubes(&self) -> u32
pub fn num_valid_cubes(&self) -> u32
Returns the number of valid cubes
Sourcepub fn cube_pos_to_tensor_pos(
&self,
global_order: GlobalOrder,
) -> (u32, u32, u32)
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).
pub fn __expand_num_valid_cubes( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
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
impl CubeDebug for CubeCountInput
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 CubeCountInput
impl CubeType for CubeCountInput
type ExpandType = CubeCountInputExpand
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 CubeCountInput
impl LaunchArg for CubeCountInput
Source§type RuntimeArg<'a, R: Runtime> = CubeCountInputArgs<'a, R>
type RuntimeArg<'a, R: Runtime> = CubeCountInputArgs<'a, R>
The runtime argument for the kernel.
fn compilation_arg<'a, R: Runtime>( runtime_arg: &Self::RuntimeArg<'a, R>, ) -> Self::CompilationArg
Source§impl LaunchArgExpand for CubeCountInput
impl LaunchArgExpand for CubeCountInput
Source§type CompilationArg = CubeCountInputCompilationArg
type CompilationArg = CubeCountInputCompilationArg
Compilation argument.
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.
Auto Trait Implementations§
impl Freeze for CubeCountInput
impl RefUnwindSafe for CubeCountInput
impl Send for CubeCountInput
impl Sync for CubeCountInput
impl Unpin for CubeCountInput
impl UnwindSafe for CubeCountInput
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