Skip to main content

Matrix

Struct Matrix 

Source
pub struct Matrix<C, S = Plane>
where C: CubeType, S: MatrixScope,
{ /* private fields */ }
Expand description

A matrix represent a 2D grid of numbers.

They can either be in a row major or a column major format.

Implementations§

Source§

impl<C, S> Matrix<C, S>

Source

pub unsafe fn uninitialized( ident: MatrixIdent, m: usize, n: usize, k: usize, layout: MatrixLayout, ) -> Matrix<C, S>

Create a new uninitialized matrix that is going to be used in the matrix-multiply and accumulate function.

§Safety

Must be initialized with load or fill before use. Using it without initialization is undefined behaviour on CUDA, and completely invalid on Vulkan.

You have to declare the shape used for the execution. The shape of the current matrix is determined using the MatrixIdent.

Not all shapes are supported, and the permitted shapes depend on the element type.

Refer to nvidia documentation.

Source

pub fn from_value( ident: MatrixIdent, m: usize, n: usize, k: usize, layout: MatrixLayout, value: C, ) -> Matrix<C, S>
where C: Scalar,

Create a new matrix that is going to be used in the matrix-multiply and accumulate function and is filled with value.

You have to declare the shape used for the execution. The shape of the current matrix is determined using the MatrixIdent.

Not all shapes are supported, and the permitted shapes depend on the element type.

Refer to nvidia documentation.

Source

pub fn from_slice( ident: MatrixIdent, m: usize, n: usize, k: usize, layout: MatrixLayout, value: &[C], stride: u32, ) -> Matrix<C, S>

Create a new matrix that is going to be used in the matrix-multiply and accumulate function and is loaded from value with stride.

You have to declare the shape used for the execution. The shape of the current matrix is determined using the MatrixIdent.

Not all shapes are supported, and the permitted shapes depend on the element type.

Refer to nvidia documentation.

Source

pub fn from_tensor( ident: MatrixIdent, m: usize, n: usize, k: usize, value: &TensorView<C>, ) -> Matrix<C, S>

Create a new matrix that is going to be used in the matrix-multiply and accumulate function and is loaded from value with stride.

You have to declare the shape used for the execution. The shape of the current matrix is determined using the MatrixIdent.

Not all shapes are supported, and the permitted shapes depend on the element type.

Refer to nvidia documentation.

Source

pub fn __expand_uninitialized( scope: &Scope, ident: MatrixIdent, m: usize, n: usize, k: usize, layout: <MatrixLayout as CubeType>::ExpandType, ) -> <Matrix<C, S> as CubeType>::ExpandType

Create a new uninitialized matrix that is going to be used in the matrix-multiply and accumulate function.

§Safety

Must be initialized with load or fill before use. Using it without initialization is undefined behaviour on CUDA, and completely invalid on Vulkan.

You have to declare the shape used for the execution. The shape of the current matrix is determined using the MatrixIdent.

Not all shapes are supported, and the permitted shapes depend on the element type.

Refer to nvidia documentation.

Source

pub fn __expand_from_value( scope: &Scope, ident: MatrixIdent, m: usize, n: usize, k: usize, layout: <MatrixLayout as CubeType>::ExpandType, value: <C as CubeType>::ExpandType, ) -> <Matrix<C, S> as CubeType>::ExpandType
where C: Scalar,

Create a new matrix that is going to be used in the matrix-multiply and accumulate function and is filled with value.

You have to declare the shape used for the execution. The shape of the current matrix is determined using the MatrixIdent.

Not all shapes are supported, and the permitted shapes depend on the element type.

Refer to nvidia documentation.

Source

pub fn __expand_from_slice( scope: &Scope, ident: MatrixIdent, m: usize, n: usize, k: usize, layout: <MatrixLayout as CubeType>::ExpandType, value: &<[C] as CubeType>::ExpandType, stride: <u32 as CubeType>::ExpandType, ) -> <Matrix<C, S> as CubeType>::ExpandType

Create a new matrix that is going to be used in the matrix-multiply and accumulate function and is loaded from value with stride.

You have to declare the shape used for the execution. The shape of the current matrix is determined using the MatrixIdent.

Not all shapes are supported, and the permitted shapes depend on the element type.

Refer to nvidia documentation.

Source

pub fn __expand_from_tensor( scope: &Scope, ident: MatrixIdent, m: usize, n: usize, k: usize, value: &<TensorView<C> as CubeType>::ExpandType, ) -> <Matrix<C, S> as CubeType>::ExpandType

Create a new matrix that is going to be used in the matrix-multiply and accumulate function and is loaded from value with stride.

You have to declare the shape used for the execution. The shape of the current matrix is determined using the MatrixIdent.

Not all shapes are supported, and the permitted shapes depend on the element type.

Refer to nvidia documentation.

Trait Implementations§

Source§

impl<C, S> Clone for Matrix<C, S>
where C: Clone + CubeType, S: Clone + MatrixScope,

Source§

fn clone(&self) -> Matrix<C, S>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<C, S> Copy for Matrix<C, S>
where C: Copy + CubeType, S: Copy + MatrixScope,

Source§

impl<C, S> CubeType for Matrix<C, S>
where C: CubeType, S: MatrixScope,

Auto Trait Implementations§

§

impl<C, S> Freeze for Matrix<C, S>

§

impl<C, S> RefUnwindSafe for Matrix<C, S>

§

impl<C, S> Send for Matrix<C, S>

§

impl<C, S> Sync for Matrix<C, S>

§

impl<C, S> Unpin for Matrix<C, S>

§

impl<C, S> UnsafeUnpin for Matrix<C, S>

§

impl<C, S> UnwindSafe for Matrix<C, S>

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneExpand for T
where T: Clone,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Sync + Send>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> IntoComptime for T

Source§

fn comptime(self) -> Self

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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<T> TuneInputs for T
where T: Clone + Send + Sync + 'static,

Source§

type At<'a> = T

The concrete input type at lifetime 'a.