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

A sddmm operation. SDDMM operation.

The gpu.sddmm operation performs the SDDMM operation on the given sparse and dense matrices, and buffer. The operation expects handles returned by previous sparse operations to construct an environment and the operands for SDDMM. 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.

Example:

%token = gpu.sddmm async [%dep] %dnmatA{TRANSPOSE}, %dnmatB{TRANSPOSE}, %spmatC, %buffer into f32

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

Implementations§

source§

impl<'c> SDDMMOperation<'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> ) -> SDDMMOperationBuilder<'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 dnmat_a(&self) -> Result<Value<'c, '_>, Error>

source

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

source

pub fn spmat_c(&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 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<SDDMMOperation<'c>> for Operation<'c>

source§

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

Converts to this type from the input type.
source§

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

§

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

§

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

§

impl<'c> Unpin for SDDMMOperation<'c>

§

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