pub enum BarrierOps {
Show 16 variants
Declare {
barrier: Variable,
},
Init {
barrier: Variable,
is_elected: Variable,
arrival_count: Variable,
},
InitManual {
barrier: Variable,
arrival_count: Variable,
},
MemCopyAsync {
barrier: Variable,
source: Variable,
source_length: Variable,
offset_source: Variable,
offset_out: Variable,
},
MemCopyAsyncCooperative {
barrier: Variable,
source: Variable,
source_length: Variable,
offset_source: Variable,
offset_out: Variable,
},
MemCopyAsyncTx {
barrier: Variable,
source: Variable,
source_length: Variable,
offset_source: Variable,
offset_out: Variable,
},
CopyAsync {
source: Variable,
source_length: Variable,
offset_source: Variable,
offset_out: Variable,
copy_length: u32,
checked: bool,
},
TmaLoad {
barrier: Variable,
tensor_map: Variable,
indices: Vec<Variable>,
offset_out: Variable,
},
TmaLoadIm2col {
barrier: Variable,
tensor_map: Variable,
indices: Vec<Variable>,
offsets: Vec<Variable>,
offset_out: Variable,
},
Arrive {
barrier: Variable,
},
ArriveTx {
barrier: Variable,
arrive_count_update: Variable,
transaction_count_update: Variable,
},
CommitCopyAsync {
barrier: Variable,
},
ExpectTx {
barrier: Variable,
transaction_count_update: Variable,
},
Wait {
barrier: Variable,
token: Variable,
},
WaitParity {
barrier: Variable,
phase: Variable,
},
ArriveAndWait {
barrier: Variable,
},
}Expand description
Operations available on a barrier
Variants§
Declare
Declare the barrier, without doing any initialization
Init
Initialize the barrier, optionally with a cta proxy fence
InitManual
Manually initialize the barrier with an arrival count, without any sync or election handling
MemCopyAsync
Copy source to destination
Fields
MemCopyAsyncCooperative
Copy source to destination, with cooperative behaviour
Fields
MemCopyAsyncTx
Copy source to destination, with transaction count
Fields
CopyAsync
Copy source to destination
Fields
TmaLoad
TmaLoadIm2col
Fields
Arrive
Arrives at the barrier (decrements barrier count)
ArriveTx
CommitCopyAsync
ExpectTx
Wait
WaitParity
ArriveAndWait
Waits until data is loaded
Trait Implementations§
Source§impl Clone for BarrierOps
impl Clone for BarrierOps
Source§fn clone(&self) -> BarrierOps
fn clone(&self) -> BarrierOps
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BarrierOps
impl Debug for BarrierOps
Source§impl<'de> Deserialize<'de> for BarrierOps
impl<'de> Deserialize<'de> for BarrierOps
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<BarrierOps, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<BarrierOps, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for BarrierOps
impl Display for BarrierOps
Source§impl From<<BarrierOps as OperationReflect>::OpCode> for OpCode
impl From<<BarrierOps as OperationReflect>::OpCode> for OpCode
Source§fn from(value: <BarrierOps as OperationReflect>::OpCode) -> OpCode
fn from(value: <BarrierOps as OperationReflect>::OpCode) -> OpCode
Converts to this type from the input type.
Source§impl From<BarrierOps> for Instruction
impl From<BarrierOps> for Instruction
Source§fn from(value: BarrierOps) -> Instruction
fn from(value: BarrierOps) -> Instruction
Converts to this type from the input type.
Source§impl From<BarrierOps> for Operation
impl From<BarrierOps> for Operation
Source§fn from(value: BarrierOps) -> Operation
fn from(value: BarrierOps) -> Operation
Converts to this type from the input type.
Source§impl Hash for BarrierOps
impl Hash for BarrierOps
Source§impl OperationReflect for BarrierOps
impl OperationReflect for BarrierOps
Source§type OpCode = BarrierOpCode
type OpCode = BarrierOpCode
Type of the op codes for this operation
Source§fn op_code(&self) -> <BarrierOps as OperationReflect>::OpCode
fn op_code(&self) -> <BarrierOps as OperationReflect>::OpCode
Get the opcode for this operation
Source§fn args(&self) -> Option<Vec<Variable>>
fn args(&self) -> Option<Vec<Variable>>
Get the list of arguments for this operation. If not all arguments are
Variable, returns
None instead.Source§fn from_code_and_args(
op_code: <BarrierOps as OperationReflect>::OpCode,
args: &[Variable],
) -> Option<BarrierOps>
fn from_code_and_args( op_code: <BarrierOps as OperationReflect>::OpCode, args: &[Variable], ) -> Option<BarrierOps>
Create typed operation from an opcode and a list of arguments. Returns
None if not all
arguments are Variable.Source§fn is_commutative(&self) -> bool
fn is_commutative(&self) -> bool
Whether this operation is commutative (arguments can be freely reordered). Ignored for
single argument operations.
Source§impl PartialEq for BarrierOps
impl PartialEq for BarrierOps
Source§fn eq(&self, other: &BarrierOps) -> bool
fn eq(&self, other: &BarrierOps) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for BarrierOps
impl Serialize for BarrierOps
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Source§impl TypeHash for BarrierOps
impl TypeHash for BarrierOps
impl Eq for BarrierOps
impl StructuralPartialEq for BarrierOps
Auto Trait Implementations§
impl Freeze for BarrierOps
impl RefUnwindSafe for BarrierOps
impl Send for BarrierOps
impl Sync for BarrierOps
impl Unpin for BarrierOps
impl UnsafeUnpin for BarrierOps
impl UnwindSafe for BarrierOps
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
Source§impl<C> CloneExpand for Cwhere
C: Clone,
impl<C> CloneExpand for Cwhere
C: Clone,
fn __expand_clone_method(&self, _scope: &mut Scope) -> C
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CompilationArg for T
impl<T> CompilationArg for T
Source§fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
Compilation args should be the same even with different element types. However, it isn’t
possible to enforce it with the type system. So, we make the compilation args serializable
and dynamically cast them. Read more
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.