1use cubecl_common::config::RuntimeConfig;
2use cubecl_common::stub::Arc;
3
4use super::autodiff::AutodiffConfig;
5use super::fusion::FusionConfig;
6
7static BURN_GLOBAL_CONFIG: spin::Mutex<Option<Arc<BurnConfig>>> = spin::Mutex::new(None);
9
10#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
12pub struct BurnConfig {
13 #[serde(default)]
15 pub fusion: FusionConfig,
16
17 #[serde(default)]
19 pub autodiff: AutodiffConfig,
20}
21
22impl RuntimeConfig for BurnConfig {
23 fn storage() -> &'static spin::Mutex<Option<Arc<Self>>> {
24 &BURN_GLOBAL_CONFIG
25 }
26
27 fn file_names() -> &'static [&'static str] {
28 &["burn.toml", "Burn.toml"]
29 }
30}