Struct OneToManyMatmul

Source
pub struct OneToManyMatmul<MP: MatmulPrecision, GMM: GlobalMatmul<MP>, S: SpanMatmul, C: CubeDispatch> { /* private fields */ }
Expand description

Executes matrix multiplication at the batch level, assigning each cube to handle multiple global matmuls.

The algorithm supports any number of cubes, looping as needed to process all data.

Trait Implementations§

Source§

impl<MP: MatmulPrecision, GMM: GlobalMatmul<MP>, S: SpanMatmul, C: CubeDispatch> BatchMatmul<MP> for OneToManyMatmul<MP, GMM, S, C>

Source§

type Config = Config<<GMM as GlobalMatmul<MP>>::Config, C>

Source§

fn execute( lhs: VirtualTensor<MP::EI>, rhs: VirtualTensor<MP::EI>, out: VirtualTensor<MP::EO, ReadWrite>, _size_k: u32, quantization: CubeOption<Quantization<MP>>, config: Self::Config, )

Performs batchwise matrix multiplication over tensors.
Source§

fn __expand_execute( context: &mut Scope, lhs: <VirtualTensor<MP::EI> as CubeType>::ExpandType, rhs: <VirtualTensor<MP::EI> as CubeType>::ExpandType, out: <VirtualTensor<MP::EO, ReadWrite> as CubeType>::ExpandType, _size_k: <u32 as CubeType>::ExpandType, quantization: <CubeOption<Quantization<MP>> as CubeType>::ExpandType, config: Self::Config, ) -> <() as CubeType>::ExpandType

Auto Trait Implementations§

§

impl<MP, GMM, S, C> Freeze for OneToManyMatmul<MP, GMM, S, C>

§

impl<MP, GMM, S, C> RefUnwindSafe for OneToManyMatmul<MP, GMM, S, C>

§

impl<MP, GMM, S, C> Send for OneToManyMatmul<MP, GMM, S, C>

§

impl<MP, GMM, S, C> Sync for OneToManyMatmul<MP, GMM, S, C>

§

impl<MP, GMM, S, C> Unpin for OneToManyMatmul<MP, GMM, S, C>
where MP: Unpin, GMM: Unpin, S: Unpin, C: Unpin,

§

impl<MP, GMM, S, C> UnwindSafe for OneToManyMatmul<MP, GMM, S, C>
where MP: UnwindSafe, GMM: UnwindSafe, S: UnwindSafe, C: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V