cubecl_runtime/config/
compilation.rs

1#[cfg(std_io)]
2use super::cache::CacheConfig;
3use super::logger::{LogLevel, LoggerConfig};
4
5/// Configuration for compilation settings in CubeCL.
6#[derive(Default, Clone, Debug, serde::Serialize, serde::Deserialize)]
7pub struct CompilationConfig {
8    /// Logger configuration for compilation logs, using binary log levels.
9    #[serde(default)]
10    pub logger: LoggerConfig<CompilationLogLevel>,
11    /// Cache location for storing compiled kernels.
12    #[serde(default)]
13    #[cfg(std_io)]
14    pub cache: Option<CacheConfig>,
15}
16
17/// Log levels for compilation in CubeCL.
18#[derive(Default, Clone, Copy, Debug, serde::Serialize, serde::Deserialize)]
19pub enum CompilationLogLevel {
20    /// Compilation logging is disabled.
21    #[default]
22    #[serde(rename = "disabled")]
23    Disabled,
24
25    /// Basic compilation information is logged such as when kernels are compiled.
26    #[serde(rename = "basic")]
27    Basic,
28
29    /// Full compilation details are logged including source code.
30    #[serde(rename = "full")]
31    Full,
32}
33
34impl LogLevel for CompilationLogLevel {}