pub struct PersistentCacheValue {
pub fastest_index: usize,
pub results: Vec<AutotuneResult>,
pub bounds: Option<Bounds>,
pub limit: Option<Duration>,
}Expand description
Persistent cache entry
Only fastest_index is read back: hydration seeds the in-memory cache
from it and nothing else. Everything below it is stored so a cache entry can be inspected after
the fact — why a kernel won, against which measurements, and under which bounds — which is the
question that cannot be answered from a live process once tuning is over. That is also why the
type is pub: reading an entry back is the point.
Fields§
§fastest_index: usizeIndex of the fastest candidate operation.
results: Vec<AutotuneResult>Benchmarking results for all autotune candidates.
bounds: Option<Bounds>Optional input size bounds for which the autotune result applies.
Defaulted, so entries written before this field existed still decode. Without it every cached key on every existing installation would fail to read and re-tune from scratch.
limit: Option<Duration>Optional execution time limit for the autotune process.
Defaulted for the same reason as bounds.
Trait Implementations§
Source§impl Clone for PersistentCacheValue
impl Clone for PersistentCacheValue
Source§fn clone(&self) -> PersistentCacheValue
fn clone(&self) -> PersistentCacheValue
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PersistentCacheValue
impl Debug for PersistentCacheValue
Source§impl<'de> Deserialize<'de> for PersistentCacheValue
impl<'de> Deserialize<'de> for PersistentCacheValue
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 PersistentCacheValue
Source§impl PartialEq for PersistentCacheValue
impl PartialEq for PersistentCacheValue
Source§impl Serialize for PersistentCacheValue
impl Serialize for PersistentCacheValue
impl StructuralPartialEq for PersistentCacheValue
Auto Trait Implementations§
impl Freeze for PersistentCacheValue
impl RefUnwindSafe for PersistentCacheValue
impl Send for PersistentCacheValue
impl Sync for PersistentCacheValue
impl Unpin for PersistentCacheValue
impl UnsafeUnpin for PersistentCacheValue
impl UnwindSafe for PersistentCacheValue
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<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<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