Skip to main content

ShapeLayoutKind

Enum ShapeLayoutKind 

Source
#[non_exhaustive]
#[repr(u16)]
pub enum ShapeLayoutKind { Pad = 0, Concat = 1, Permute = 2, Repeat = 3, Flip = 4, Roll = 5, Meshgrid = 6, Fill = 7, WriteSlice = 8, Contiguize = 9, Triu = 10, Tril = 11, }
Expand description

Shape / layout op discriminant — Category N.

Tags the kernel SKU for telemetry / autotuner-cache keys. Each variant has its own Plan type today (PadPlan, ConcatPlan, …) because their descriptor / args shapes differ enough that one ShapeLayoutPlan<T, N> doesn’t fit. The enum exists so all of them populate KernelSku::op from a shared discriminant space.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Pad = 0

F.pad(x, pad, mode='constant', value=v) — Phase 3 trailblazer.

§

Concat = 1

torch.cat(tensors, dim) — variable-arity input. Reserved.

§

Permute = 2

Materialized torch.permute(x, dims) (strided-view materialization when needed). Reserved.

§

Repeat = 3

x.repeat(...) / torch.tile(x, ...). Reserved.

§

Flip = 4

torch.flip(x, dims) — reverse along axes. Reserved.

§

Roll = 5

torch.roll(x, shifts, dims) — shift along axes. Reserved.

§

Meshgrid = 6

torch.meshgrid(*tensors) — N rank-1 → N rank-N. Reserved.

§

Fill = 7

torch.full(shape, value) / Tensor.fill_(value) — fill every element of an output tensor with a scalar constant. Wired from fuel-cuda-kernels/fill.cu.

§

WriteSlice = 8

dest[start_0..end_0, ..., start_{N-1}..end_{N-1}] = source (assign, not accumulate). Per-axis range write. Phase 13.1 trailblazer — driven by Fuel team’s persistent KV-cache append (autoregressive decoding). See baracuda_kernels::WriteSlicePlan.

§

Contiguize = 9

Strided→contiguous materialization (torch.Tensor.contiguous). Phase 13.2: closes the D2H→CPU contiguize→H2D fallback cliff for non-contiguous CUDA inputs. Byte-level dtype-agnostic (sizeof-templated kernel) covering every byte-aligned dtype; nibble (S4 / U4) shipped behind a documented innermost-stride constraint. See baracuda_kernels::ContiguizePlan.

§

Triu = 10

torch.triu(input, diagonal) — keep upper triangular part of the last two dims of input; zero everything below the diagonal-th diagonal. Batch dims (anything before the last two) are independently masked. Phase 13.4 trailblazer — driven by Fuel team’s CPU-only triu/tril gap. See baracuda_kernels::TriuPlan.

§

Tril = 11

torch.tril(input, diagonal) — keep lower triangular part of the last two dims of input; zero everything above the diagonal-th diagonal. Sibling of Self::Triu with the predicate flipped. See baracuda_kernels::TrilPlan.

Trait Implementations§

Source§

impl Clone for ShapeLayoutKind

Source§

fn clone(&self) -> ShapeLayoutKind

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for ShapeLayoutKind

Source§

impl Debug for ShapeLayoutKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Eq for ShapeLayoutKind

Source§

impl Hash for ShapeLayoutKind

Source§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ShapeLayoutKind

Source§

fn eq(&self, other: &ShapeLayoutKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ShapeLayoutKind

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.