pub struct TensorMapArgs;
Expand description
Type implementing MatmulArgs where all inputs and the output are materialized tensor maps.
Other types might implement MatmulArgs for fused matrix multiplication kernels.
Trait Implementations§
Source§impl Clone for TensorMapArgs
impl Clone for TensorMapArgs
Source§fn clone(&self) -> TensorMapArgs
fn clone(&self) -> TensorMapArgs
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 MatmulArgs for TensorMapArgs
impl MatmulArgs for TensorMapArgs
Source§fn read_window_rhs<EI: Numeric, EO: Numeric>(
state: &Self::State<EI, EO>,
start: u32,
end: u32,
) -> Slice<Line<EI>>
fn read_window_rhs<EI: Numeric, EO: Numeric>( state: &Self::State<EI, EO>, start: u32, end: u32, ) -> Slice<Line<EI>>
Read the line of the rhs tensor using the state at the given coordinate.
Source§type Input<EI: Numeric> = TensorMapInputs<EI>
type Input<EI: Numeric> = TensorMapInputs<EI>
Type used for the input.
Source§type State<EI: Numeric, EO: Numeric> = (*const TensorMap<EI>, *const TensorMap<EI>, *mut Tensor<Line<EO>>)
type State<EI: Numeric, EO: Numeric> = (*const TensorMap<EI>, *const TensorMap<EI>, *mut Tensor<Line<EO>>)
Inner state that is used to create tensor inputs and
tensor outputs .
Source§fn init_state<EI: Numeric, EO: Numeric>(
input: &Self::Input<EI>,
output: &mut Self::Output<EO>,
) -> Self::State<EI, EO>
fn init_state<EI: Numeric, EO: Numeric>( input: &Self::Input<EI>, output: &mut Self::Output<EO>, ) -> Self::State<EI, EO>
Init the state.
Source§fn read_lhs<EI: Numeric, EO: Numeric>(
_state: &Self::State<EI, EO>,
_coordinate: u32,
) -> Line<EI>
fn read_lhs<EI: Numeric, EO: Numeric>( _state: &Self::State<EI, EO>, _coordinate: u32, ) -> Line<EI>
Read the line of the lhs tensor using the state at the given coordinate.
Source§fn read_rhs<EI: Numeric, EO: Numeric>(
_state: &Self::State<EI, EO>,
_coordinate: u32,
) -> Line<EI>
fn read_rhs<EI: Numeric, EO: Numeric>( _state: &Self::State<EI, EO>, _coordinate: u32, ) -> Line<EI>
Read the line of the rhs tensor using the state at the given coordinate.
Source§fn read_window_lhs<EI: Numeric, EO: Numeric>(
state: &Self::State<EI, EO>,
start: u32,
end: u32,
) -> Slice<Line<EI>>
fn read_window_lhs<EI: Numeric, EO: Numeric>( state: &Self::State<EI, EO>, start: u32, end: u32, ) -> Slice<Line<EI>>
Read the line of the lhs tensor using the state at the given coordinate.
Source§fn as_tensor_map_lhs<EI: Numeric, EO: Numeric>(
state: &Self::State<EI, EO>,
) -> TensorMap<EI>
fn as_tensor_map_lhs<EI: Numeric, EO: Numeric>( state: &Self::State<EI, EO>, ) -> TensorMap<EI>
Reinterpret lhs as tensor map
Source§fn as_tensor_map_rhs<EI: Numeric, EO: Numeric>(
state: &Self::State<EI, EO>,
) -> TensorMap<EI>
fn as_tensor_map_rhs<EI: Numeric, EO: Numeric>( state: &Self::State<EI, EO>, ) -> TensorMap<EI>
Reinterpret rhs as tensor map
Source§fn shape_lhs<EI: Numeric, EO: Numeric>(
state: &Self::State<EI, EO>,
dim: u32,
) -> u32
fn shape_lhs<EI: Numeric, EO: Numeric>( state: &Self::State<EI, EO>, dim: u32, ) -> u32
Get the shape of the lhs tensor using the state.
Source§fn shape_rhs<EI: Numeric, EO: Numeric>(
state: &Self::State<EI, EO>,
dim: u32,
) -> u32
fn shape_rhs<EI: Numeric, EO: Numeric>( state: &Self::State<EI, EO>, dim: u32, ) -> u32
Get the shape of the rhs tensor using the state.
Source§fn shape_out<EI: Numeric, EO: Numeric>(
state: &Self::State<EI, EO>,
dim: u32,
) -> u32
fn shape_out<EI: Numeric, EO: Numeric>( state: &Self::State<EI, EO>, dim: u32, ) -> u32
Get the shape of the out tensor using the state.
Source§fn stride_lhs<EI: Numeric, EO: Numeric>(
state: &Self::State<EI, EO>,
dim: u32,
) -> u32
fn stride_lhs<EI: Numeric, EO: Numeric>( state: &Self::State<EI, EO>, dim: u32, ) -> u32
Get the stride of the lhs tensor using the state.
Source§fn stride_rhs<EI: Numeric, EO: Numeric>(
state: &Self::State<EI, EO>,
dim: u32,
) -> u32
fn stride_rhs<EI: Numeric, EO: Numeric>( state: &Self::State<EI, EO>, dim: u32, ) -> u32
Get the stride of the rhs tensor using the state.
Source§fn stride_out<EI: Numeric, EO: Numeric>(
state: &Self::State<EI, EO>,
dim: u32,
) -> u32
fn stride_out<EI: Numeric, EO: Numeric>( state: &Self::State<EI, EO>, dim: u32, ) -> u32
Get the stride of the out tensor using the state.
Source§fn write_out<EI: Numeric, EO: Numeric>(
state: &mut Self::State<EI, EO>,
coordinate: u32,
value: Line<EO>,
)
fn write_out<EI: Numeric, EO: Numeric>( state: &mut Self::State<EI, EO>, coordinate: u32, value: Line<EO>, )
Write the line to the output at the given coordinate using the state.
Source§fn rank_lhs<EI: Numeric, EO: Numeric>(_state: &Self::State<EI, EO>) -> u32
fn rank_lhs<EI: Numeric, EO: Numeric>(_state: &Self::State<EI, EO>) -> u32
Get the rank of the lhs tensor using the state.
Source§fn rank_rhs<EI: Numeric, EO: Numeric>(_state: &Self::State<EI, EO>) -> u32
fn rank_rhs<EI: Numeric, EO: Numeric>(_state: &Self::State<EI, EO>) -> u32
Get the rank of the rhs tensor using the state.
Source§fn rank_out<EI: Numeric, EO: Numeric>(state: &Self::State<EI, EO>) -> u32
fn rank_out<EI: Numeric, EO: Numeric>(state: &Self::State<EI, EO>) -> u32
Get the rank of the out tensor using the state.
Source§fn len_lhs<EI: Numeric, EO: Numeric>(_state: &Self::State<EI, EO>) -> u32
fn len_lhs<EI: Numeric, EO: Numeric>(_state: &Self::State<EI, EO>) -> u32
Get the length of the lhs tensor using the state.
Source§fn len_rhs<EI: Numeric, EO: Numeric>(_state: &Self::State<EI, EO>) -> u32
fn len_rhs<EI: Numeric, EO: Numeric>(_state: &Self::State<EI, EO>) -> u32
Get the length of the rhs tensor using the state.
Source§fn len_out<EI: Numeric, EO: Numeric>(state: &Self::State<EI, EO>) -> u32
fn len_out<EI: Numeric, EO: Numeric>(state: &Self::State<EI, EO>) -> u32
Get the length of the out tensor using the state.
Source§fn buffer_len_lhs<EI: Numeric, EO: Numeric>(_state: &Self::State<EI, EO>) -> u32
fn buffer_len_lhs<EI: Numeric, EO: Numeric>(_state: &Self::State<EI, EO>) -> u32
Get the buffer length of the lhs tensor using the state.
Source§fn buffer_len_rhs<EI: Numeric, EO: Numeric>(_state: &Self::State<EI, EO>) -> u32
fn buffer_len_rhs<EI: Numeric, EO: Numeric>(_state: &Self::State<EI, EO>) -> u32
Get the buffer length of the rhs tensor using the state.
Source§fn buffer_len_out<EI: Numeric, EO: Numeric>(state: &Self::State<EI, EO>) -> u32
fn buffer_len_out<EI: Numeric, EO: Numeric>(state: &Self::State<EI, EO>) -> u32
Get the buffer length of the out tensor using the state.
Source§fn quantization<MP: MatmulPrecision>(
_state: &Self::State<MP::EI, MP::EO>,
) -> Quantization<MP>
fn quantization<MP: MatmulPrecision>( _state: &Self::State<MP::EI, MP::EO>, ) -> Quantization<MP>
It is the responsibility of the caller to ensure it is safe to call this function.
That is, when a matmul is indeed quantized. Else, it will most likely results in
out-of-bound memory access.
fn __expand_init_state<EI: Numeric, EO: Numeric>( context: &mut Scope, input: <Self::Input<EI> as CubeType>::ExpandType, output: <Self::Output<EO> as CubeType>::ExpandType, ) -> <Self::State<EI, EO> as CubeType>::ExpandType
fn __expand_read_lhs<EI: Numeric, EO: Numeric>( context: &mut Scope, _state: <Self::State<EI, EO> as CubeType>::ExpandType, _coordinate: <u32 as CubeType>::ExpandType, ) -> <Line<EI> as CubeType>::ExpandType
fn __expand_read_rhs<EI: Numeric, EO: Numeric>( context: &mut Scope, _state: <Self::State<EI, EO> as CubeType>::ExpandType, _coordinate: <u32 as CubeType>::ExpandType, ) -> <Line<EI> as CubeType>::ExpandType
fn __expand_read_window_lhs<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, start: <u32 as CubeType>::ExpandType, end: <u32 as CubeType>::ExpandType, ) -> <Slice<Line<EI>> as CubeType>::ExpandType
fn __expand_read_window_rhs<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, start: <u32 as CubeType>::ExpandType, end: <u32 as CubeType>::ExpandType, ) -> <Slice<Line<EI>> as CubeType>::ExpandType
fn __expand_as_tensor_map_lhs<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, ) -> <TensorMap<EI> as CubeType>::ExpandType
fn __expand_as_tensor_map_rhs<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, ) -> <TensorMap<EI> as CubeType>::ExpandType
fn __expand_shape_lhs<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, dim: <u32 as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_shape_rhs<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, dim: <u32 as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_shape_out<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, dim: <u32 as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_stride_lhs<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, dim: <u32 as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_stride_rhs<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, dim: <u32 as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_stride_out<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, dim: <u32 as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_write_out<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, coordinate: <u32 as CubeType>::ExpandType, value: <Line<EO> as CubeType>::ExpandType, ) -> <() as CubeType>::ExpandType
fn __expand_rank_lhs<EI: Numeric, EO: Numeric>( context: &mut Scope, _state: <Self::State<EI, EO> as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_rank_rhs<EI: Numeric, EO: Numeric>( context: &mut Scope, _state: <Self::State<EI, EO> as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_rank_out<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_len_lhs<EI: Numeric, EO: Numeric>( context: &mut Scope, _state: <Self::State<EI, EO> as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_len_rhs<EI: Numeric, EO: Numeric>( context: &mut Scope, _state: <Self::State<EI, EO> as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_len_out<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_buffer_len_lhs<EI: Numeric, EO: Numeric>( context: &mut Scope, _state: <Self::State<EI, EO> as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_buffer_len_rhs<EI: Numeric, EO: Numeric>( context: &mut Scope, _state: <Self::State<EI, EO> as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_buffer_len_out<EI: Numeric, EO: Numeric>( context: &mut Scope, state: <Self::State<EI, EO> as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
fn __expand_quantization<MP: MatmulPrecision>( context: &mut Scope, _state: <Self::State<MP::EI, MP::EO> as CubeType>::ExpandType, ) -> <Quantization<MP> as CubeType>::ExpandType
Auto Trait Implementations§
impl Freeze for TensorMapArgs
impl RefUnwindSafe for TensorMapArgs
impl Send for TensorMapArgs
impl Sync for TensorMapArgs
impl Unpin for TensorMapArgs
impl UnwindSafe for TensorMapArgs
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