Trait tract_linalg::frame::mmm::MatMatMul

source ·
pub trait MatMatMul: Debug + Display + DynClone + Send + Sync + Any {
Show 13 methods // Required methods fn kernel_name(&self) -> &'static str; fn mr(&self) -> usize; fn nr(&self) -> usize; fn a_pack(&self) -> Packer; fn b_pack(&self) -> Packer; fn internal_type(&self) -> DatumType; unsafe fn c_view(&self, m_axis: usize, n_axis: usize) -> OutputStoreSpec; unsafe fn c_from_data_and_strides( &self, item_size: usize, row_stride: isize, col_stride: isize ) -> OutputStoreSpec; fn can_fuse(&self, spec: &FusedSpec<'_>) -> bool; unsafe fn allocate_scratch_space(&self) -> Box<dyn ScratchSpace>; unsafe fn can_use_scratch_space(&self, scratch: &dyn ScratchSpace) -> bool; unsafe fn run_with_scratch_space( &self, m: usize, n: usize, scratch: &mut dyn ScratchSpace, non_linear: &[FusedSpec<'_>] ) -> Result<()>; // Provided method unsafe fn run( &self, m: usize, n: usize, non_linear: &[FusedSpec<'_>] ) -> Result<()> { ... }
}

Required Methods§

source

fn kernel_name(&self) -> &'static str

source

fn mr(&self) -> usize

source

fn nr(&self) -> usize

source

fn a_pack(&self) -> Packer

source

fn b_pack(&self) -> Packer

source

fn internal_type(&self) -> DatumType

source

unsafe fn c_view(&self, m_axis: usize, n_axis: usize) -> OutputStoreSpec

source

unsafe fn c_from_data_and_strides( &self, item_size: usize, row_stride: isize, col_stride: isize ) -> OutputStoreSpec

source

fn can_fuse(&self, spec: &FusedSpec<'_>) -> bool

source

unsafe fn allocate_scratch_space(&self) -> Box<dyn ScratchSpace>

source

unsafe fn can_use_scratch_space(&self, scratch: &dyn ScratchSpace) -> bool

source

unsafe fn run_with_scratch_space( &self, m: usize, n: usize, scratch: &mut dyn ScratchSpace, non_linear: &[FusedSpec<'_>] ) -> Result<()>

Provided Methods§

source

unsafe fn run( &self, m: usize, n: usize, non_linear: &[FusedSpec<'_>] ) -> Result<()>

Trait Implementations§

source§

impl Hash for Box<dyn MatMatMul>

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Box<dyn MatMatMul>

source§

fn eq(&self, other: &Box<dyn MatMatMul>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Implementors§

source§

impl<K, TI> MatMatMul for MatMatMulImpl<K, TI>
where TI: LADatum, K: MatMatMulKer<TI> + 'static,