Struct GlobalConfig

Source
pub struct GlobalConfig {
    pub profiling: ProfilingConfig,
    pub autotune: AutotuneConfig,
    pub compilation: CompilationConfig,
}
Expand description

Represents the global configuration for CubeCL, combining profiling, autotuning, and compilation settings.

Fields§

§profiling: ProfilingConfig

Configuration for profiling CubeCL operations.

§autotune: AutotuneConfig

Configuration for autotuning performance parameters.

§compilation: CompilationConfig

Configuration for compilation settings.

Implementations§

Source§

impl GlobalConfig

Source

pub fn get() -> Arc<Self>

Retrieves the current global configuration, loading it from the current directory if not set.

If no configuration is set, it attempts to load one from cubecl.toml or CubeCL.toml in the current directory or its parents. If no file is found, a default configuration is used.

§Notes

Calling this function is somewhat expensive, because of a global static lock. The config format is optimized for parsing, not for consumption. A good practice is to use a local static atomic value that you can populate with the appropriate value from the global config during initialization of the atomic value.

For example, the autotune level uses a core::sync::atomic::AtomicI32 with an initial value of -1 to indicate an uninitialized state. It is then set to the proper value based on the super::autotune::AutotuneLevel config. All subsequent fetches of the value are lock-free.

Source

pub fn save_default<P: AsRef<Path>>(path: P) -> Result<()>

Save the default configuration to the provided file path.

Source

pub fn set(config: Self)

Sets the global configuration to the provided value.

§Panics

Panics if the configuration has already been set or read, as it cannot be overridden.

§Warning

This method must be called at the start of the program, before any calls to get. Attempting to set the configuration after it has been initialized will cause a panic.

Source

pub fn override_from_env(self) -> Self

Overrides configuration fields based on environment variables.

Trait Implementations§

Source§

impl Clone for GlobalConfig

Source§

fn clone(&self) -> GlobalConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for GlobalConfig

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for GlobalConfig

Source§

fn default() -> GlobalConfig

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for GlobalConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for GlobalConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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> 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,