#[non_exhaustive]#[repr(u16)]pub enum ConvKind {
Show 25 variants
Conv2d = 0,
Conv2dBackwardData = 1,
Conv2dBackwardFilter = 2,
Conv1d = 3,
Conv1dBackwardData = 4,
Conv1dBackwardFilter = 5,
Conv3d = 6,
Conv3dBackwardData = 7,
Conv3dBackwardFilter = 8,
ConvTranspose2d = 9,
ConvTranspose2dBackward = 10,
DepthwiseConv2d = 11,
Unfold = 12,
Fold = 13,
ConvTranspose1d = 14,
ConvTranspose1dBackwardData = 15,
ConvTranspose1dBackwardFilter = 16,
ConvTranspose2dBackwardData = 17,
ConvTranspose2dBackwardFilter = 18,
ConvTranspose3d = 19,
ConvTranspose3dBackwardData = 20,
ConvTranspose3dBackwardFilter = 21,
Im2Col2d = 22,
Im2Col1d = 23,
Col2Im1d = 24,
}Expand description
Convolution-family op discriminant — Category I from the comprehensive plan.
Stored as u16 in crate::KernelSku::op when
category == OpCategory::Convolution. Each variant maps to a
distinct cuDNN exec path (forward, data-gradient, filter-gradient)
of the underlying convolution descriptor. The dimensional axis
(1-D / 2-D / 3-D), padding / stride / dilation, and depthwise /
transposed flavors live on the per-plan descriptor — they don’t
fan out a separate enum slot here.
Today wired: Conv2d × {f32, f64, f16, bf16} (FW + BW data +
BW filter) via cuDNN. Conv1d / Conv3d / ConvTranspose* / depthwise
/ unfold / fold are reserved discriminants for fanout
milestones.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Conv2d = 0
2-D convolution forward pass. PyTorch
torch.nn.functional.conv2d. Trailblazer for Phase 7.
Conv2dBackwardData = 1
2-D convolution data-gradient pass (computes dx from dy
and the filter w). PyTorch’s autograd-internal
conv2d_backward_input.
Conv2dBackwardFilter = 2
2-D convolution filter-gradient pass (computes dw from x
and dy). PyTorch’s autograd-internal
conv2d_backward_weight.
Conv1d = 3
1-D convolution forward. Reserved.
Conv1dBackwardData = 4
1-D convolution data-gradient. Reserved.
Conv1dBackwardFilter = 5
1-D convolution filter-gradient. Reserved.
Conv3d = 6
3-D convolution forward. Reserved.
Conv3dBackwardData = 7
3-D convolution data-gradient. Reserved.
Conv3dBackwardFilter = 8
3-D convolution filter-gradient. Reserved.
ConvTranspose2d = 9
2-D transposed convolution (fractionally-strided / “deconv”). Forward pass.
ConvTranspose2dBackward = 10
2-D transposed convolution backward. Reserved — backward is
dispatched through the same plan via run_bw_data / run_dw.
DepthwiseConv2d = 11
Depthwise 2-D convolution (groups == c_in). Today callers
route through the generic Conv2dPlan with groups set on
the descriptor — cuDNN’s cudnnSetConvolutionGroupCount
detects the depthwise path automatically.
Unfold = 12
torch.nn.functional.unfold — extract sliding windows. Reserved.
Fold = 13
torch.nn.functional.fold — inverse of unfold. Reserved.
ConvTranspose1d = 14
1-D transposed convolution forward.
ConvTranspose1dBackwardData = 15
1-D transposed convolution data-gradient.
ConvTranspose1dBackwardFilter = 16
1-D transposed convolution filter-gradient.
ConvTranspose2dBackwardData = 17
2-D transposed convolution data-gradient.
ConvTranspose2dBackwardFilter = 18
2-D transposed convolution filter-gradient.
ConvTranspose3d = 19
3-D transposed convolution forward.
ConvTranspose3dBackwardData = 20
3-D transposed convolution data-gradient.
ConvTranspose3dBackwardFilter = 21
3-D transposed convolution filter-gradient.
Im2Col2d = 22
2-D im2col — torch.nn.functional.unfold (Phase 19.3). Extracts
sliding windows from an NCHW input into an
[N, C·kh·kw, h_out·w_out] column-shaped matrix. Distinct from
the reserved Self::Unfold discriminant for forward-source-
compat; the 19.3 wiring routes through this discriminant.
Im2Col1d = 23
1-D im2col (NCL → [N, C·kl, l_out]).
Col2Im1d = 24
1-D col2im — inverse of Self::Im2Col1d. Atomic-add scatter.