CustomOperation

Struct CustomOperation 

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

A custom operation. Custom operator wrapper for Tosa.

Hardware implementing TOSA may choose to add additional custom operators that are not expressed in the existing TOSA operations. These operators are not expected to be portable across TOSA implementations. The input and output signatures must be expressed in the corresponding TOSA node.

operator_name is a string that tells the backend which custom operator is being called.

domain_name is a string identifier which can help avoid name collisions on the identifier field.

implementation_attrs is a string which is a backend and identifier specific set of attributes to the custom operator.

input_list is the set of tensor inputs to the custom operator.

output_list is the list of tensors returned by the operator. The number of operators is backend specific.

Example:

%out = tosa.custom %in {domain_name = "tosa_mlir_test", operator_name =
       "custom_test", implementation_attrs = ""}: (tensor<10xi32>) ->
       (tensor<10xi32>)

Implementations§

Source§

impl<'c> CustomOperation<'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>, ) -> CustomOperationBuilder<'c, Unset, Unset, Unset, Unset, Unset>

Creates a builder.

Source

pub fn output_list(&self) -> impl Iterator<Item = OperationResult<'c, '_>>

Source

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

Source

pub fn operator_name(&self) -> Result<StringAttribute<'c>, Error>

Source

pub fn set_operator_name(&mut self, value: StringAttribute<'c>)

Source

pub fn domain_name(&self) -> Result<StringAttribute<'c>, Error>

Source

pub fn set_domain_name(&mut self, value: StringAttribute<'c>)

Source

pub fn implementation_attrs(&self) -> Result<StringAttribute<'c>, Error>

Source

pub fn set_implementation_attrs(&mut self, value: StringAttribute<'c>)

Trait Implementations§

Source§

impl<'c> Clone for CustomOperation<'c>

Source§

fn clone(&self) -> CustomOperation<'c>

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<'c> Debug for CustomOperation<'c>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'b> From<CustomOperation<'b>> for TosaDialectOperation<'b>

Source§

fn from(op: CustomOperation<'b>) -> Self

Converts to this type from the input type.
Source§

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

Source§

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

Converts to this type from the input type.
Source§

impl<'c> PartialEq for CustomOperation<'c>

Source§

fn eq(&self, other: &CustomOperation<'c>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

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

Source§

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.
Source§

impl<'c> Eq for CustomOperation<'c>

Source§

impl<'c> StructuralPartialEq for CustomOperation<'c>

Auto Trait Implementations§

§

impl<'c> Freeze for CustomOperation<'c>

§

impl<'c> RefUnwindSafe for CustomOperation<'c>

§

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

§

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

§

impl<'c> Unpin for CustomOperation<'c>

§

impl<'c> UnwindSafe for CustomOperation<'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> 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> 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> 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 = 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>,

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.