Enum cubecl_cuda::compiler::Instruction

source ·
pub enum Instruction {
Show 67 variants Length { input: Variable, out: Variable, num_inputs: usize, num_outputs: usize, }, SliceLength { input: Variable, out: Variable, }, DeclareVariable { var: Variable, }, Modulo(BinaryInstruction), Remainder(BinaryInstruction), Add(BinaryInstruction), Fma { a: Variable, b: Variable, c: Variable, out: Variable, }, Div(BinaryInstruction), Mul(BinaryInstruction), Sub(BinaryInstruction), Index(BinaryInstruction), IndexAssign(BinaryInstruction), CheckedIndexAssign(BinaryInstruction), Assign(UnaryInstruction), RangeLoop { i: Variable, start: Variable, end: Variable, step: Option<Variable>, instructions: Vec<Self>, }, Loop { instructions: Vec<Self>, }, If { cond: Variable, instructions: Vec<Self>, }, IfElse { cond: Variable, instructions_if: Vec<Self>, instructions_else: Vec<Self>, }, Slice { input: Variable, start: Variable, end: Variable, out: Variable, }, Return, Break, Stride { dim: Variable, position: usize, out: Variable, }, Shape { dim: Variable, position: usize, out: Variable, }, Equal(BinaryInstruction), NotEqual(BinaryInstruction), Lower(BinaryInstruction), Greater(BinaryInstruction), LowerEqual(BinaryInstruction), GreaterEqual(BinaryInstruction), Erf(UnaryInstruction), BitwiseAnd(BinaryInstruction), BitwiseXor(BinaryInstruction), ShiftLeft(BinaryInstruction), ShiftRight(BinaryInstruction), Abs(UnaryInstruction), Exp(UnaryInstruction), Log(UnaryInstruction), Log1p(UnaryInstruction), Cos(UnaryInstruction), Sin(UnaryInstruction), Tanh(UnaryInstruction), Powf(BinaryInstruction), Sqrt(UnaryInstruction), Min(BinaryInstruction), Max(BinaryInstruction), Not(UnaryInstruction), Or(BinaryInstruction), And(BinaryInstruction), Clamp { input: Variable, min_value: Variable, max_value: Variable, out: Variable, }, SyncThreads, ThreadFence, Ceil(UnaryInstruction), Floor(UnaryInstruction), Wrap(WarpInstruction), Wmma(WmmaInstruction), Bitcast(UnaryInstruction), AtomicLoad(UnaryInstruction), AtomicStore(UnaryInstruction), AtomicSwap(BinaryInstruction), AtomicAdd(BinaryInstruction), AtomicSub(BinaryInstruction), AtomicMax(BinaryInstruction), AtomicMin(BinaryInstruction), AtomicAnd(BinaryInstruction), AtomicOr(BinaryInstruction), AtomicXor(BinaryInstruction), AtomicCAS { input: Variable, cmp: Variable, val: Variable, out: Variable, },
}

Variants§

§

Length

Fields

§input: Variable
§num_inputs: usize
§num_outputs: usize
§

SliceLength

Fields

§input: Variable
§

DeclareVariable

Fields

§

Modulo(BinaryInstruction)

§

Remainder(BinaryInstruction)

§

Add(BinaryInstruction)

§

Fma

§

Div(BinaryInstruction)

§

Mul(BinaryInstruction)

§

Sub(BinaryInstruction)

§

Index(BinaryInstruction)

§

IndexAssign(BinaryInstruction)

§

CheckedIndexAssign(BinaryInstruction)

§

Assign(UnaryInstruction)

§

RangeLoop

Fields

§start: Variable
§instructions: Vec<Self>
§

Loop

Fields

§instructions: Vec<Self>
§

If

Fields

§instructions: Vec<Self>
§

IfElse

Fields

§instructions_if: Vec<Self>
§instructions_else: Vec<Self>
§

Slice

Fields

§input: Variable
§start: Variable
§

Return

§

Break

§

Stride

Fields

§position: usize
§

Shape

Fields

§position: usize
§

Equal(BinaryInstruction)

§

NotEqual(BinaryInstruction)

§

Lower(BinaryInstruction)

§

Greater(BinaryInstruction)

§

LowerEqual(BinaryInstruction)

§

GreaterEqual(BinaryInstruction)

§

Erf(UnaryInstruction)

§

BitwiseAnd(BinaryInstruction)

§

BitwiseXor(BinaryInstruction)

§

ShiftLeft(BinaryInstruction)

§

ShiftRight(BinaryInstruction)

§

Abs(UnaryInstruction)

§

Exp(UnaryInstruction)

§

Log(UnaryInstruction)

§

Log1p(UnaryInstruction)

§

Cos(UnaryInstruction)

§

Sin(UnaryInstruction)

§

Tanh(UnaryInstruction)

§

Powf(BinaryInstruction)

§

Sqrt(UnaryInstruction)

§

Min(BinaryInstruction)

§

Max(BinaryInstruction)

§

Not(UnaryInstruction)

§

Or(BinaryInstruction)

§

And(BinaryInstruction)

§

Clamp

Fields

§input: Variable
§min_value: Variable
§max_value: Variable
§

SyncThreads

§

ThreadFence

§

Ceil(UnaryInstruction)

§

Floor(UnaryInstruction)

§

Wrap(WarpInstruction)

§

Wmma(WmmaInstruction)

§

Bitcast(UnaryInstruction)

§

AtomicLoad(UnaryInstruction)

§

AtomicStore(UnaryInstruction)

§

AtomicSwap(BinaryInstruction)

§

AtomicAdd(BinaryInstruction)

§

AtomicSub(BinaryInstruction)

§

AtomicMax(BinaryInstruction)

§

AtomicMin(BinaryInstruction)

§

AtomicAnd(BinaryInstruction)

§

AtomicOr(BinaryInstruction)

§

AtomicXor(BinaryInstruction)

§

AtomicCAS

Fields

§input: Variable

Trait Implementations§

source§

impl Clone for Instruction

source§

fn clone(&self) -> Instruction

Returns a copy 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 Debug for Instruction

source§

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

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

impl Display for Instruction

source§

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

Formats the value using the given formatter. Read more

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> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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,

§

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> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V