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

A spmv operation. SpMV operation.

The gpu.spmv operation performs the SpMV operation on the given sparse matrix, dense vectors, and buffer. The operation expects handles returned by previous sparse operations to construct an environment and the operands for SpMV. 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.spmv async [%dep] %spmatA{TRANSPOSE}, %dnX, %dnY : memref<?xf64> into bf16

Implementations§

source§

impl<'c> SpMVOperation<'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> ) -> SpMVOperationBuilder<'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) -> impl Iterator<Item = Value<'c, '_>>

source

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

source

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

source

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

source

pub fn buffer(&self) -> Result<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 compute_type(&self) -> Result<TypeAttribute<'c>, Error>

source

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

Trait Implementations§

source§

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

source§

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

Converts to this type from the input type.
source§

impl<'c> TryFrom<Operation<'c>> for SpMVOperation<'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 SpMVOperation<'c>

§

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

§

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

§

impl<'c> Unpin for SpMVOperation<'c>

§

impl<'c> UnwindSafe for SpMVOperation<'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.