Trait tract_hir::prelude::tract_linalg::frame::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 + 'static) ) -> bool; unsafe fn run_with_scratch_space( &self, m: usize, n: usize, scratch: &mut (dyn ScratchSpace + 'static), non_linear: &[FusedSpec<'_>] ) -> Result<(), Error>; // Provided method unsafe fn run( &self, m: usize, n: usize, non_linear: &[FusedSpec<'_>] ) -> Result<(), Error> { ... }
}

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 + 'static) ) -> bool

source

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

Provided Methods§

source

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

Trait Implementations§

source§

impl<'clone> Clone for Box<dyn MatMatMul + 'clone>

source§

fn clone(&self) -> Box<dyn MatMatMul + 'clone>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'clone> Clone for Box<dyn MatMatMul + Send + 'clone>

source§

fn clone(&self) -> Box<dyn MatMatMul + Send + 'clone>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'clone> Clone for Box<dyn MatMatMul + Sync + Send + 'clone>

source§

fn clone(&self) -> Box<dyn MatMatMul + Sync + Send + 'clone>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'clone> Clone for Box<dyn MatMatMul + Sync + 'clone>

source§

fn clone(&self) -> Box<dyn MatMatMul + Sync + 'clone>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Hash for Box<dyn MatMatMul>

source§

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

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,