Trait tract_hir::internal::tract_linalg::frame::mmm::MatMatMul     [−][src]
pub trait MatMatMul: Debug + Display + DynClone + Send + Sync + Any {
Show 16 methods
    fn kernel_name(&self) -> &'static str;
    fn mr(&self) -> usize;
    fn nr(&self) -> usize;
    fn a_pack(&self, k: usize) -> Packer;
    fn b_pack(&self, k: usize) -> Packer;
    fn internal_type(&self) -> DatumType;
    unsafe fn a_packed(&self, item_size: usize, k: usize) -> MatrixStoreSpec;
    unsafe fn b_packed(&self, item_size: usize, k: usize) -> MatrixStoreSpec;
    unsafe fn b_from_data_and_offsets(
        &self, 
        item_size: usize, 
        rows_offsets: &[isize], 
        cols_offsets: &[isize]
    ) -> MatrixStoreSpec;
    unsafe fn c_view(&self) -> MatrixStoreSpec;
    unsafe fn c_view_with_axis(
        &self, 
        m_axis: usize, 
        n_axis: usize
    ) -> MatrixStoreSpec;
    unsafe fn c_from_data_and_strides(
        &self, 
        item_size: usize, 
        row_stride: isize, 
        col_stride: isize
    ) -> MatrixStoreSpec;
    unsafe fn allocate_scratch_space(
        &self
    ) -> Box<dyn ScratchSpace + 'static, Global>ⓘimpl<W> Write for Box<W, Global> where
    W: Write + ?Sized, impl<R> Read for Box<R, Global> where
    R: Read + ?Sized, impl<F, A> Future for Box<F, A> where
    F: Future + Unpin + ?Sized,
    A: Allocator + 'static,     type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
    I: Iterator + ?Sized,
    A: Allocator,     type Item = <I as Iterator>::Item;;
    unsafe fn can_use_scratch_space(
        &self, 
        scratch: &(dyn ScratchSpace + 'static)
    ) -> bool;
    unsafe fn run_with_scratch_space(
        &self, 
        m: usize, 
        k: usize, 
        n: usize, 
        scratch: &mut (dyn ScratchSpace + 'static), 
        a: &MatrixStore<'_, '_>, 
        b: &MatrixStore<'_, '_>, 
        c: &mut MatrixStore<'_, '_>, 
        non_linear: &[FusedSpec<'_>]
    ) -> Result<(), Error>;
    unsafe fn run(
        &self, 
        m: usize, 
        k: usize, 
        n: usize, 
        a: &MatrixStore<'_, '_>, 
        b: &MatrixStore<'_, '_>, 
        c: &mut MatrixStore<'_, '_>, 
        non_linear: &[FusedSpec<'_>]
    ) -> Result<(), Error> { ... }
}Required methods
fn kernel_name(&self) -> &'static str
fn internal_type(&self) -> DatumType
unsafe fn a_packed(&self, item_size: usize, k: usize) -> MatrixStoreSpec
unsafe fn b_packed(&self, item_size: usize, k: usize) -> MatrixStoreSpec
unsafe fn b_from_data_and_offsets(
    &self, 
    item_size: usize, 
    rows_offsets: &[isize], 
    cols_offsets: &[isize]
) -> MatrixStoreSpec
unsafe fn c_view(&self) -> MatrixStoreSpec
unsafe fn c_view_with_axis(
    &self, 
    m_axis: usize, 
    n_axis: usize
) -> MatrixStoreSpec
unsafe fn c_from_data_and_strides(
    &self, 
    item_size: usize, 
    row_stride: isize, 
    col_stride: isize
) -> MatrixStoreSpec
unsafe fn allocate_scratch_space(
    &self
) -> Box<dyn ScratchSpace + 'static, Global>ⓘimpl<W> Write for Box<W, Global> where
    W: Write + ?Sized, impl<R> Read for Box<R, Global> where
    R: Read + ?Sized, impl<F, A> Future for Box<F, A> where
    F: Future + Unpin + ?Sized,
    A: Allocator + 'static,     type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
    I: Iterator + ?Sized,
    A: Allocator,     type Item = <I as Iterator>::Item;
impl<W> Write for Box<W, Global> where
    W: Write + ?Sized, impl<R> Read for Box<R, Global> where
    R: Read + ?Sized, impl<F, A> Future for Box<F, A> where
    F: Future + Unpin + ?Sized,
    A: Allocator + 'static,     type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
    I: Iterator + ?Sized,
    A: Allocator,     type Item = <I as Iterator>::Item;