Trait tract_hir::prelude::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;