Skip to main content

Synchronizes

Trait Synchronizes 

Source
pub trait Synchronizes: Op {
    // Required methods
    fn minimum_scope(&self, ctx: &Context) -> SyncScope;
    fn maximum_scope(&self, ctx: &Context) -> SyncScope;

    // Provided method
    fn verify(_op: &dyn Op, _ctx: &Context) -> Result<()>
       where Self: Sized { ... }
}

Required Methods§

Source

fn minimum_scope(&self, ctx: &Context) -> SyncScope

Synchronizes at least at this scope. Should be used for optimizations where smaller scopes are more conservative (i.e. marking shared memory as unused).

Source

fn maximum_scope(&self, ctx: &Context) -> SyncScope

Synchronizes at most at this scope. Should be used for optimizations where larger scopes are more conservative (i.e. making memory writes visible).

Provided Methods§

Source

fn verify(_op: &dyn Op, _ctx: &Context) -> Result<()>
where Self: Sized,

Trait Implementations§

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl Synchronizes for AllOp

Source§

impl Synchronizes for AnyOp

Source§

impl Synchronizes for ArriveAndWaitOp

Sync scope depends on init params and use, so can’t be trivially analyzed. So just be conservative.

Source§

impl Synchronizes for AtomicUniformLoadOp

Source§

impl Synchronizes for BallotOp

Source§

impl Synchronizes for BroadcastOp

Source§

impl Synchronizes for ElectOp

Source§

impl Synchronizes for ExclusiveFProdOp

Source§

impl Synchronizes for ExclusiveFSumOp

Source§

impl Synchronizes for ExclusiveIProdOp

Source§

impl Synchronizes for ExclusiveISumOp

Source§

impl Synchronizes for FMaxOp

Source§

impl Synchronizes for FMinOp

Source§

impl Synchronizes for FProdOp

Source§

impl Synchronizes for FSumOp

Source§

impl Synchronizes for IProdOp

Source§

impl Synchronizes for ISumOp

Source§

impl Synchronizes for InclusiveFProdOp

Source§

impl Synchronizes for InclusiveFSumOp

Source§

impl Synchronizes for InclusiveIProdOp

Source§

impl Synchronizes for InclusiveISumOp

Source§

impl Synchronizes for LdMatrixOp

Source§

impl Synchronizes for cubecl_ir::dialect::matrix::LoadOp

Source§

impl Synchronizes for cubecl_ir::dialect::ssa_matrix::LoadOp

Source§

impl Synchronizes for MmaManualOp

Source§

impl Synchronizes for MmaManualScaledOp

Source§

impl Synchronizes for cubecl_ir::dialect::matrix::MultiplyAccumulateOp

Source§

impl Synchronizes for cubecl_ir::dialect::ssa_matrix::MultiplyAccumulateOp

Source§

impl Synchronizes for SMaxOp

Source§

impl Synchronizes for SMinOp

Source§

impl Synchronizes for ShuffleDownOp

Source§

impl Synchronizes for ShuffleOp

Source§

impl Synchronizes for ShuffleUpOp

Source§

impl Synchronizes for ShuffleXorOp

Source§

impl Synchronizes for StMatrixOp

Source§

impl Synchronizes for cubecl_ir::dialect::matrix::StoreOp

Source§

impl Synchronizes for cubecl_ir::dialect::ssa_matrix::StoreOp

Source§

impl Synchronizes for SyncOp

Source§

impl Synchronizes for UMaxOp

Source§

impl Synchronizes for UMinOp

Source§

impl Synchronizes for UniformLoadOp

Source§

impl Synchronizes for WaitOp

Sync scope depends on init params and use, so can’t be trivially analyzed. So just be conservative.

Source§

impl Synchronizes for WaitParityOp

Sync scope depends on init params and use, so can’t be trivially analyzed. So just be conservative.