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

A spmv_buffer_size operation. Precompute buffersize for SpMV operation.

The gpu.spmv_buffer_size operation returns the buffer size required to perform the SpMV operation on the given sparse matrix and dense vectors. The operation expects handles returned by previous sparse operations to construct an environment and the operands for SpMV.

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:

%buffersz, %token = gpu.spmv_buffer_size async [%dep] %spmatA{TRANSPOSE}, %dnX, %dnY into f32

Implementations§

source§

impl<'c> SpMVBufferSizeOperation<'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> ) -> SpMVBufferSizeOperationBuilder<'c, Unset, Unset, Unset, Unset, Unset, Unset>

Creates a builder.

source

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

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 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<SpMVBufferSizeOperation<'c>> for Operation<'c>

source§

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

Converts to this type from the input type.
source§

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

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.