pub struct CompilationRecord {
pub kernel: String,
pub key: KernelCacheKey,
pub ir: Option<String>,
pub outcome: CompilationOutcome,
pub duration: Duration,
pub source: Option<String>,
}Expand description
One kernel’s trip through a backend’s compilation path, as the environment records it: compiled fresh, or loaded from the compilation store.
A hit in a server’s in-memory cache is not a trip and is not recorded: nothing here runs per launch. Neither is a trip that fails: the launch error carries that account, and the environment holds nothing of it.
Fields§
§kernel: StringThe kernel’s type.
key: KernelCacheKeyThe store entry naming the artifact: what tells two instances of one kernel type apart.
ir: Option<String>The kernel as cubecl defined it, before the backend’s compiler — the
IR’s textual form, for a reader to render — at RecordLevel::Full.
Only a trip that misses the store defines the kernel, so a
Loaded one carries none.
outcome: CompilationOutcomeHow the artifact was obtained.
duration: DurationWhat obtaining it took, from where the trip started to the artifact loaded on the device.
source: Option<String>The source the backend compiled, at RecordLevel::Full.
Trait Implementations§
Source§impl Clone for CompilationRecord
impl Clone for CompilationRecord
Source§impl Debug for CompilationRecord
impl Debug for CompilationRecord
Source§impl<'de> Deserialize<'de> for CompilationRecord
impl<'de> Deserialize<'de> for CompilationRecord
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for CompilationRecord
Source§impl PartialEq for CompilationRecord
impl PartialEq for CompilationRecord
Source§impl Record for CompilationRecord
impl Record for CompilationRecord
Source§impl Serialize for CompilationRecord
impl Serialize for CompilationRecord
impl StructuralPartialEq for CompilationRecord
Auto Trait Implementations§
impl Freeze for CompilationRecord
impl RefUnwindSafe for CompilationRecord
impl Send for CompilationRecord
impl Sync for CompilationRecord
impl Unpin for CompilationRecord
impl UnsafeUnpin for CompilationRecord
impl UnwindSafe for CompilationRecord
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
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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<K, Q> Equivalent<Q> for K
impl<K, Q> Equivalent<Q> for K
Source§fn equivalent(&self, key: &Q) -> bool
fn equivalent(&self, key: &Q) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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