Skip to main content

ErasedFusedPlan

Struct ErasedFusedPlan 

Source
pub struct ErasedFusedPlan { /* private fields */ }
Expand description

Dtype-erased single-output wrapper around FusedPlan.

This is the erased replay boundary for unary map and zip-map elementwise families. It supports the same runtime op-code vocabulary as FusedPlan, but only for the scalar dtypes currently implementing FusedScalar.

Implementations§

Source§

impl ErasedFusedPlan

Source

pub fn compile(dtype: KernelDType, plan: FusedPlan) -> Result<Self>

Validate and store a single-output fused elementwise plan for one dtype.

Source

pub fn dtype(&self) -> KernelDType

Source

pub fn plan(&self) -> &FusedPlan

Source

pub fn execute( &self, ctx: &ExecContext, dest: &mut ErasedRawStridedMut<'_>, inputs: &[ErasedRawStridedRef<'_>], ) -> Result<()>

Execute a single-output fused elementwise plan through erased descriptors.

Source

pub fn execute_uninit( &self, ctx: &ExecContext, dest: &mut ErasedRawStridedUninitMut<'_>, inputs: &[ErasedRawStridedPtr<'_>], ) -> Result<()>

Execute a single-output fused plan into fully overwritten uninitialized storage.

Dtype, shape, destination injectivity, bounds, and input/output overlap are validated before any shared typed input descriptor is formed or any destination byte is written. On Ok(()), every logical destination element is initialized. An error leaves the destination untouched; a panic during execution may leave partial initialization, but the backing MaybeUninit storage remains safe to drop.

§Errors

Returns a typed dtype, input-count, shape, bounds, destination injectivity, unsupported-operation, or input/output-overlap error. All error-producing validation completes before execution starts. On success, every reachable destination slot is fully overwritten; unreachable holes are neither read nor initialized. Validation errors are returned before any destination write. A panic during execution may leave a partially initialized MaybeUninit destination, which is still safely droppable; no readable value is promised for unwritten reachable slots.

Trait Implementations§

Source§

impl Clone for ErasedFusedPlan

Source§

fn clone(&self) -> ErasedFusedPlan

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 Debug for ErasedFusedPlan

Source§

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

Formats the value using the given formatter. Read more

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> MaybeSend for T

Source§

impl<T> MaybeSendSync for T

Source§

impl<T> MaybeSync for T

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.