pub enum OpKind {
Show 92 variants
Input,
Param,
Constant,
Activation,
Cast,
Quantize,
Dequantize,
FakeQuantize,
FakeQuantizeLSQ,
FakeQuantizeLSQBackwardX,
FakeQuantizeLSQBackwardScale,
Binary,
Compare,
Where,
ElementwiseRegion,
MatMul,
DotGeneral,
DenseSolve,
BatchedDenseSolve,
LayerNorm,
LayerNorm2d,
GroupNorm,
RmsNorm,
ResizeNearest2x,
Attention,
Rope,
AxialRope2d,
Reshape,
Transpose,
Narrow,
Concat,
Expand,
Gather,
Reduce,
Softmax,
Cumsum,
TopK,
Sample,
Conv,
ConvTranspose2d,
Pool,
ReluBackward,
ActivationBackward,
FakeQuantizeBackward,
ComplexNormSq,
ComplexNormSqBackward,
Conjugate,
MaxPool2dBackward,
Conv2dBackwardInput,
Conv2dBackwardWeight,
SoftmaxCrossEntropyWithLogits,
SoftmaxCrossEntropyBackward,
AttentionBackward,
LayerNormBackwardInput,
LayerNormBackwardGamma,
RmsNormBackwardInput,
RmsNormBackwardGamma,
RmsNormBackwardBeta,
RopeBackward,
GroupNormBackwardInput,
GroupNormBackwardGamma,
GroupNormBackwardBeta,
CumsumBackward,
GatherBackward,
GroupedMatMul,
DequantGroupedMatMul,
DequantMoEWeights,
ScatterAdd,
LoraMatMul,
DequantMatMul,
QMatMul,
QConv2d,
SelectiveScan,
GatedDeltaNet,
FusedSwiGLU,
FusedMatMulBiasAct,
FusedResidualLN,
FusedResidualRmsNorm,
FusedAttentionBlock,
FusedTransformerLayer,
If,
While,
Scan,
ScanBackward,
ScanBackwardXs,
GaussianSplatRender,
GaussianSplatRenderBackward,
GaussianSplatPrepare,
GaussianSplatRasterize,
Custom,
CustomFn,
Fft,
}Expand description
PLAN L4: discriminant for each Op variant. Used by
Op::kind + the Backend::supported_ops trait method to declare
which ops a backend can lower; the LegalizeForBackend pass in
rlx-opt checks the graph against this set and fails the compile
when an unsupported op is present (instead of silent fallback).
Variants§
Input
Param
Constant
Activation
Cast
Quantize
Dequantize
FakeQuantize
FakeQuantizeLSQ
FakeQuantizeLSQBackwardX
FakeQuantizeLSQBackwardScale
Binary
Compare
Where
ElementwiseRegion
MatMul
DotGeneral
DenseSolve
BatchedDenseSolve
LayerNorm
LayerNorm2d
GroupNorm
RmsNorm
ResizeNearest2x
Attention
Rope
AxialRope2d
Reshape
Transpose
Narrow
Concat
Expand
Gather
Reduce
Softmax
Cumsum
TopK
Sample
Conv
ConvTranspose2d
Pool
ReluBackward
ActivationBackward
FakeQuantizeBackward
ComplexNormSq
ComplexNormSqBackward
Conjugate
MaxPool2dBackward
Conv2dBackwardInput
Conv2dBackwardWeight
SoftmaxCrossEntropyWithLogits
SoftmaxCrossEntropyBackward
AttentionBackward
LayerNormBackwardInput
LayerNormBackwardGamma
RmsNormBackwardInput
RmsNormBackwardGamma
RmsNormBackwardBeta
RopeBackward
GroupNormBackwardInput
GroupNormBackwardGamma
GroupNormBackwardBeta
CumsumBackward
GatherBackward
GroupedMatMul
DequantGroupedMatMul
DequantMoEWeights
ScatterAdd
LoraMatMul
DequantMatMul
QMatMul
QConv2d
SelectiveScan
GatedDeltaNet
FusedSwiGLU
FusedMatMulBiasAct
FusedResidualLN
FusedResidualRmsNorm
FusedAttentionBlock
FusedTransformerLayer
If
While
Scan
ScanBackward
ScanBackwardXs
GaussianSplatRender
CPU reference 3D Gaussian splat raster (project → bin → sort → raster).
See Op::GaussianSplatRender.
GaussianSplatRenderBackward
Backward of Op::GaussianSplatRender — packed scene parameter gradients.
GaussianSplatPrepare
Project + tile bin + sort + ray grid (strict IR splat stage 1).
GaussianSplatRasterize
Per-pixel raster from prepared buffers (strict IR splat stage 2).
Custom
User-registered op dispatched through op_registry. All
custom ops (Sparse-LU, FFT, eigensolve, …) share this kind;
the per-op identity lives in Op::Custom::name.
CustomFn
User-defined sub-graph with optional override AD rules. See
Op::CustomFn / crate::Graph::custom_fn.
Fft
1D FFT primitive (forward or inverse) — see Op::Fft.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for OpKind
impl<'de> Deserialize<'de> for OpKind
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<OpKind, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<OpKind, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for OpKind
impl Serialize for OpKind
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,
impl Copy for OpKind
impl Eq for OpKind
impl StructuralPartialEq for OpKind
Auto Trait Implementations§
impl Freeze for OpKind
impl RefUnwindSafe for OpKind
impl Send for OpKind
impl Sync for OpKind
impl Unpin for OpKind
impl UnsafeUnpin for OpKind
impl UnwindSafe for OpKind
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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>
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>
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