pub struct AutotuneConfig {
pub logger: LoggerConfig<AutotuneLogLevel>,
pub decisions: LoggerConfig<DecisionLevel>,
pub level: AutotuneLevel,
pub disable_cache: bool,
pub disable_short_circuit: bool,
pub bench: BenchConfig,
}Expand description
Configuration for autotuning in CubeCL.
Fields§
§logger: LoggerConfig<AutotuneLogLevel>Logger configuration for autotune logs, using autotune-specific log levels.
decisions: LoggerConfig<DecisionLevel>Where to write one AutotuneDecision per tuning
decision, as JSON, for a tool to read back.
Independent of logger, because the two answer different questions and both
can be wanted at once: the logger’s level says how much to tell a human, decisions says
where to put the machine-readable account.
Also read under recorder.
level: AutotuneLevelAutotune level, controlling the intensity of autotuning.
disable_cache: boolWhether to disable the persistent cache of autotune results.
The in-memory cache is unaffected: a key is still tuned only once per process.
disable_short_circuit: boolWhether to disable the short circuit logic during autotuning.
bench: BenchConfigSampling budget and elimination thresholds used while benchmarking candidates.
Implementations§
Source§impl AutotuneConfig
impl AutotuneConfig
Sourcepub fn decisions_enabled(&self) -> bool
pub fn decisions_enabled(&self) -> bool
Whether tuning decisions have somewhere to be written.
Trait Implementations§
Source§impl Clone for AutotuneConfig
impl Clone for AutotuneConfig
Source§impl Debug for AutotuneConfig
impl Debug for AutotuneConfig
Source§impl Default for AutotuneConfig
impl Default for AutotuneConfig
Source§impl<'de> Deserialize<'de> for AutotuneConfig
impl<'de> Deserialize<'de> for AutotuneConfig
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>,
Auto Trait Implementations§
impl Freeze for AutotuneConfig
impl RefUnwindSafe for AutotuneConfig
impl Send for AutotuneConfig
impl Sync for AutotuneConfig
impl Unpin for AutotuneConfig
impl UnsafeUnpin for AutotuneConfig
impl UnwindSafe for AutotuneConfig
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
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