pub struct KernelDefinition {
pub buffers: Vec<KernelArg>,
pub tensor_maps: Vec<KernelArg>,
pub scalars: Vec<ScalarKernelArg>,
pub cube_dim: CubeDim,
pub body: Scope,
pub options: KernelOptions,
}Fields§
§buffers: Vec<KernelArg>§tensor_maps: Vec<KernelArg>§scalars: Vec<ScalarKernelArg>§cube_dim: CubeDim§body: Scope§options: KernelOptionsImplementations§
Source§impl KernelDefinition
impl KernelDefinition
Sourcepub fn num_global_buffers(&self) -> usize
pub fn num_global_buffers(&self) -> usize
Returns the total number of global buffers (including tensor maps)
Sourcepub fn stable_hash(&self) -> u128
pub fn stable_hash(&self) -> u128
Hash the content of the kernel in a stable way that can be used between runs.
Two kernels with the same hash expand to the same IR, so a compiled artifact keyed on it
stays valid exactly as long as the code producing it is unchanged. This is what makes the
persistent compilation cache pick up edits to a kernel body, or to any #[cube] function it
reaches, without relying on a version bump.
Debug information is deliberately left out: it holds absolute source paths, which would make
the hash differ between machines and checkouts, and it never changes what the compiler emits
beyond KernelOptions::debug_symbols, which is hashed.
Trait Implementations§
Source§impl Clone for KernelDefinition
impl Clone for KernelDefinition
Source§fn clone(&self) -> KernelDefinition
fn clone(&self) -> KernelDefinition
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl !Freeze for KernelDefinition
impl !RefUnwindSafe for KernelDefinition
impl !Send for KernelDefinition
impl !Sync for KernelDefinition
impl !UnwindSafe for KernelDefinition
impl Unpin for KernelDefinition
impl UnsafeUnpin for KernelDefinition
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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