cubecl_runtime/config/
streaming.rs

1use super::logger::{LogLevel, LoggerConfig};
2
3/// Configuration for streaming settings in CubeCL.
4#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
5pub struct StreamingConfig {
6    /// Logger configuration for streaming logs, using binary log levels.
7    #[serde(default)]
8    pub logger: LoggerConfig<StreamingLogLevel>,
9    /// The maximum number of streams to be used.
10    #[serde(default = "default_max_streams")]
11    pub max_streams: u8,
12}
13
14impl Default for StreamingConfig {
15    fn default() -> Self {
16        Self {
17            logger: Default::default(),
18            max_streams: default_max_streams(),
19        }
20    }
21}
22
23fn default_max_streams() -> u8 {
24    1
25}
26
27/// Log levels for streaming in CubeCL.
28#[derive(Default, Clone, Copy, Debug, serde::Serialize, serde::Deserialize)]
29pub enum StreamingLogLevel {
30    /// Compilation logging is disabled.
31    #[default]
32    #[serde(rename = "disabled")]
33    Disabled,
34
35    /// Basic streaming information is logged such as when streams are merged.
36    #[serde(rename = "basic")]
37    Basic,
38
39    /// Full streaming details are logged.
40    #[serde(rename = "full")]
41    Full,
42}
43
44impl LogLevel for StreamingLogLevel {}