pub enum Operation {
Copy(Variable),
Operator(Operator),
Atomic(AtomicOp),
Metadata(Metadata),
Branch(Branch),
Synchronization(Synchronization),
Plane(Plane),
CoopMma(CoopMma),
NonSemantic(NonSemantic),
}
Expand description
All operations that can be used in a GPU compute shader.
Notes:
Operator can be vectorized, but other operations can’t. Therefore, during tracing, only operators can be registered.
Variants§
Copy(Variable)
Operator(Operator)
Atomic(AtomicOp)
Metadata(Metadata)
Branch(Branch)
Synchronization(Synchronization)
Plane(Plane)
CoopMma(CoopMma)
NonSemantic(NonSemantic)
Non-semantic instructions (i.e. comments, debug info)
Implementations§
Source§impl Operation
impl Operation
Sourcepub fn is_pure(&self) -> bool
pub fn is_pure(&self) -> bool
Whether this operation is pure, aka has no side effects. Pure operations can be removed if their output is not needed, impure operations must be kept since their execution can affect things down the line. e.g. atomics.
Operations that operate across multiple units are always considered impure.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Operation
impl<'de> Deserialize<'de> for Operation
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<NonSemantic> for Operation
impl From<NonSemantic> for Operation
Source§fn from(val: NonSemantic) -> Self
fn from(val: NonSemantic) -> Self
Converts to this type from the input type.
Source§impl From<Synchronization> for Operation
impl From<Synchronization> for Operation
Source§fn from(value: Synchronization) -> Self
fn from(value: Synchronization) -> Self
Converts to this type from the input type.
impl StructuralPartialEq for Operation
Auto Trait Implementations§
impl Freeze for Operation
impl !RefUnwindSafe for Operation
impl !Send for Operation
impl !Sync for Operation
impl Unpin for Operation
impl !UnwindSafe for Operation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more