pub enum CubeOptimization<R: Runtime> {
ElementWise(ElemwiseOptimization<R>),
Matmul(MatmulOptimization<R>),
Reduce(ReduceOptimization<R>),
}
Expand description
Fusion optimization type for cubecl.
More optimization variants should be added here.
Variants§
ElementWise(ElemwiseOptimization<R>)
Element wise optimization.
Matmul(MatmulOptimization<R>)
Matrix multiplication optimization.
Reduce(ReduceOptimization<R>)
Implementations§
Source§impl<R: Runtime> CubeOptimization<R>
impl<R: Runtime> CubeOptimization<R>
pub fn to_opt_state(&self) -> CubeOptimizationState
Trait Implementations§
Source§impl<R: Runtime> Debug for CubeOptimization<R>
impl<R: Runtime> Debug for CubeOptimization<R>
Source§impl<R: Runtime> NumOperations for CubeOptimization<R>
impl<R: Runtime> NumOperations for CubeOptimization<R>
Source§impl<R: Runtime> OptimizationBuilder<CubeOptimization<R>> for ElementWiseBuilder<R>
impl<R: Runtime> OptimizationBuilder<CubeOptimization<R>> for ElementWiseBuilder<R>
Source§fn register(&mut self, operation: &OperationIr)
fn register(&mut self, operation: &OperationIr)
Register a new tensor operation.
Source§fn build(&self) -> CubeOptimization<R>
fn build(&self) -> CubeOptimization<R>
Finish the optimization and create a fusion operation.
Source§fn status(&self) -> OptimizationStatus
fn status(&self) -> OptimizationStatus
Return the builder status.
Source§fn properties(&self) -> OptimizationProperties
fn properties(&self) -> OptimizationProperties
Return the builder properties.
Source§fn clone_dyn(&self) -> Box<dyn OptimizationBuilder<CubeOptimization<R>>>
fn clone_dyn(&self) -> Box<dyn OptimizationBuilder<CubeOptimization<R>>>
Clone the optimization builder.
Source§impl<R: Runtime> OptimizationBuilder<CubeOptimization<R>> for MatmulBuilder<R>
impl<R: Runtime> OptimizationBuilder<CubeOptimization<R>> for MatmulBuilder<R>
Source§fn register(&mut self, operation: &OperationIr)
fn register(&mut self, operation: &OperationIr)
Register a new tensor operation.
Source§fn build(&self) -> CubeOptimization<R>
fn build(&self) -> CubeOptimization<R>
Finish the optimization and create a fusion operation.
Source§fn status(&self) -> OptimizationStatus
fn status(&self) -> OptimizationStatus
Return the builder status.
Source§fn properties(&self) -> OptimizationProperties
fn properties(&self) -> OptimizationProperties
Return the builder properties.
Source§fn clone_dyn(&self) -> Box<dyn OptimizationBuilder<CubeOptimization<R>>>
fn clone_dyn(&self) -> Box<dyn OptimizationBuilder<CubeOptimization<R>>>
Clone the optimization builder.
Source§impl<R: Runtime> OptimizationBuilder<CubeOptimization<R>> for ReduceBuilder<R>
impl<R: Runtime> OptimizationBuilder<CubeOptimization<R>> for ReduceBuilder<R>
Source§fn register(&mut self, operation: &OperationIr)
fn register(&mut self, operation: &OperationIr)
Register a new tensor operation.
Source§fn build(&self) -> CubeOptimization<R>
fn build(&self) -> CubeOptimization<R>
Finish the optimization and create a fusion operation.
Source§fn status(&self) -> OptimizationStatus
fn status(&self) -> OptimizationStatus
Return the builder status.
Source§fn properties(&self) -> OptimizationProperties
fn properties(&self) -> OptimizationProperties
Return the builder properties.
Source§fn clone_dyn(&self) -> Box<dyn OptimizationBuilder<CubeOptimization<R>>>
fn clone_dyn(&self) -> Box<dyn OptimizationBuilder<CubeOptimization<R>>>
Clone the optimization builder.
Auto Trait Implementations§
impl<R> Freeze for CubeOptimization<R>
impl<R> !RefUnwindSafe for CubeOptimization<R>
impl<R> Send for CubeOptimization<R>
impl<R> Sync for CubeOptimization<R>
impl<R> Unpin for CubeOptimization<R>
impl<R> !UnwindSafe for CubeOptimization<R>
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more