pub struct SpMMOperation<'c> { /* private fields */ }
Expand description

A spmm operation. SpMM operation.

The gpu.spmm operation performs the SpMM operation on the given sparse and dense matrix, and buffer. The operation expects handles returned by previous sparse operations to construct an environment and the operands for SpMM. The buffer must have been allocated on the device.

If the async keyword is present, the op is executed asynchronously (i.e. it does not block until the execution has finished on the device). In that case, it returns a !gpu.async.token in addition to the environment.

The matrix arguments can also be associated with one of the following operators: NON_TRANSPOSE, TRANSPOSE, CONJUGATE_TRANSPOSE. The default value is NON_TRANSPOSE.

Example:

%token = gpu.spmm async [%dep] %spmatA{TRANSPOSE}, %dnmatB{TRANSPOSE}, %dnmatC, %buffers : type($buffers) into f32

Implementations§

source§

impl<'c> SpMMOperation<'c>

source

pub fn name() -> &'static str

Returns a name.

source

pub fn as_operation(&self) -> &Operation<'c>

Returns a generic operation.

source

pub fn builder( context: &'c Context, location: Location<'c> ) -> SpMMOperationBuilder<'c, Unset, Unset, Unset, Unset, Unset, Unset>

Creates a builder.

source

pub fn async_token(&self) -> Result<OperationResult<'c, '_>, Error>

source

pub fn async_dependencies( &self ) -> Result<impl Iterator<Item = Value<'c, '_>>, Error>

source

pub fn spmat_a(&self) -> Result<Value<'c, '_>, Error>

source

pub fn dnmat_b(&self) -> Result<Value<'c, '_>, Error>

source

pub fn dnmat_c(&self) -> Result<Value<'c, '_>, Error>

source

pub fn buffers(&self) -> Result<impl Iterator<Item = Value<'c, '_>>, Error>

source

pub fn mode_a(&self) -> Result<Attribute<'c>, Error>

source

pub fn set_mode_a(&mut self, value: Attribute<'c>)

source

pub fn remove_mode_a(&mut self) -> Result<(), Error>

source

pub fn mode_b(&self) -> Result<Attribute<'c>, Error>

source

pub fn set_mode_b(&mut self, value: Attribute<'c>)

source

pub fn remove_mode_b(&mut self) -> Result<(), Error>

source

pub fn compute_type(&self) -> Result<TypeAttribute<'c>, Error>

source

pub fn set_compute_type(&mut self, value: TypeAttribute<'c>)

Trait Implementations§

source§

impl<'c> From<SpMMOperation<'c>> for Operation<'c>

source§

fn from(operation: SpMMOperation<'c>) -> Self

Converts to this type from the input type.
source§

impl<'c> TryFrom<Operation<'c>> for SpMMOperation<'c>

§

type Error = Error

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

fn try_from(operation: Operation<'c>) -> Result<Self, Self::Error>

Performs the conversion.

Auto Trait Implementations§

§

impl<'c> RefUnwindSafe for SpMMOperation<'c>

§

impl<'c> !Send for SpMMOperation<'c>

§

impl<'c> !Sync for SpMMOperation<'c>

§

impl<'c> Unpin for SpMMOperation<'c>

§

impl<'c> UnwindSafe for SpMMOperation<'c>

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>,

§

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>,

§

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.