struct EnergyAwareOptimizer
Wrapper that adds energy awareness to any optimizer
Source: energy_optim.joule:20
struct EnergyAwareOptimizerWrapper that adds energy awareness to any optimizer
Source: energy_optim.joule:20
enum EnergyOptimModeSource: energy_optim.joule:60
struct EnergyOptimConfigSource: energy_optim.joule:75
fn default() -> SelfSource: energy_optim.joule:102
fn new(inner: O, energy_tracker: Arc<EnergyTracker>) -> SelfCreate new energy-aware optimizer
Source: energy_optim.joule:118
fn with_budget(mut self, budget: EnergyBudget) -> SelfSet energy budget
Source: energy_optim.joule:136
fn with_target_efficiency(mut self, efficiency: f64) -> SelfSet target efficiency
Source: energy_optim.joule:143
fn with_mode(mut self, mode: EnergyOptimMode) -> SelfSet mode
Source: energy_optim.joule:150
fn with_config(mut self, config: EnergyOptimConfig) -> SelfSet configuration
Source: energy_optim.joule:156
fn begin_step(&mut self)Begin step (call before forward/backward)
Source: energy_optim.joule:162
fn record_loss(&mut self, loss: f64, prev_loss: f64)Record loss for efficiency calculation
Source: energy_optim.joule:168
fn should_skip(&self) -> boolShould skip this update (if inefficient)?
Source: energy_optim.joule:179
fn step_energy(&self) -> JoulesGet energy consumed this step
Source: energy_optim.joule:192
fn current_efficiency(&self) -> f64Get current efficiency estimate
Source: energy_optim.joule:197
fn total_energy(&self) -> JoulesGet total energy consumed
Source: energy_optim.joule:202
fn lr_scale(&self) -> f64Get learning rate scale
Source: energy_optim.joule:207
fn remaining_budget(&self) -> Option<Joules>Get remaining budget
Source: energy_optim.joule:212
fn step(&mut self)Source: energy_optim.joule:219
fn zero_grad(&mut self)Source: energy_optim.joule:289
fn get_lr(&self) -> f64Source: energy_optim.joule:293
fn set_lr(&mut self, lr: f64)Source: energy_optim.joule:297
fn state_dict(&self) -> HashMap<String, Tensor>Source: energy_optim.joule:301
fn load_state_dict(&mut self, state: &HashMap<String, Tensor>)Source: energy_optim.joule:305
fn adapt_learning_rate(&mut self)Adapt learning rate based on efficiency
Source: energy_optim.joule:312
struct ScheduledPowerOptimizerOptimizer with scheduled power states (like GPU P-states)
Source: energy_optim.joule:366
struct PowerPhaseSource: energy_optim.joule:376
fn new(inner: O, energy_tracker: Arc<EnergyTracker>) -> SelfSource: energy_optim.joule:390
fn with_warmup(mut self, steps: u64) -> SelfAdd warmup phase (low power, low learning rate)
Source: energy_optim.joule:409
fn with_cooldown(mut self, steps: u64) -> SelfAdd cooldown phase (low power)
Source: energy_optim.joule:421
fn with_high_perf_phase(mut self, steps: u64) -> SelfAdd high-performance phase
Source: energy_optim.joule:433
fn current_phase(&self) -> &PowerPhaseGet current phase
Source: energy_optim.joule:452
fn advance_phase(&mut self)Source: energy_optim.joule:456
fn step(&mut self)Source: energy_optim.joule:476
fn zero_grad(&mut self)Source: energy_optim.joule:492
fn get_lr(&self) -> f64Source: energy_optim.joule:496
fn set_lr(&mut self, lr: f64)Source: energy_optim.joule:500
fn state_dict(&self) -> HashMap<String, Tensor>Source: energy_optim.joule:504
fn load_state_dict(&mut self, state: &HashMap<String, Tensor>)Source: energy_optim.joule:508
struct CheckpointingOptimizerOptimizer that uses gradient checkpointing for memory/energy trade-off
Source: energy_optim.joule:518
fn new(inner: O, checkpoint_every: usize) -> SelfSource: energy_optim.joule:526
fn recompute_count(&self) -> u64Get number of recomputes performed
Source: energy_optim.joule:536
fn saved_compute_energy(&self) -> JoulesGet estimated saved compute energy (from not storing all activations)
Source: energy_optim.joule:541
fn step(&mut self)Source: energy_optim.joule:547
fn zero_grad(&mut self)Source: energy_optim.joule:551
fn get_lr(&self) -> f64Source: energy_optim.joule:555
fn set_lr(&mut self, lr: f64)Source: energy_optim.joule:559
fn state_dict(&self) -> HashMap<String, Tensor>Source: energy_optim.joule:563
fn load_state_dict(&mut self, state: &HashMap<String, Tensor>)Source: energy_optim.joule:567
struct LazyOptimizerOptimizer that defers updates until beneficial
Source: energy_optim.joule:577
fn new(inner: O, energy_tracker: Arc<EnergyTracker>, update_threshold: f64) -> SelfSource: energy_optim.joule:588
fn total_deferred(&self) -> u64Get number of deferred updates
Source: energy_optim.joule:601
fn energy_saved(&self) -> JoulesGet energy saved by deferring
Source: energy_optim.joule:606
fn should_update(&self, grad_norm: f64) -> boolCheck if gradients are significant enough to update
Source: energy_optim.joule:611
fn step(&mut self)Source: energy_optim.joule:617
fn zero_grad(&mut self)Source: energy_optim.joule:622
fn get_lr(&self) -> f64Source: energy_optim.joule:626
fn set_lr(&mut self, lr: f64)Source: energy_optim.joule:630
fn state_dict(&self) -> HashMap<String, Tensor>Source: energy_optim.joule:634
fn load_state_dict(&mut self, state: &HashMap<String, Tensor>)Source: energy_optim.joule:638
struct MixedPrecisionEnergyOptimizerOptimizer that dynamically adjusts precision for energy efficiency
Source: energy_optim.joule:648
enum PrecisionModeSource: energy_optim.joule:662
fn new(inner: O, energy_tracker: Arc<EnergyTracker>, mode: PrecisionMode) -> SelfSource: energy_optim.joule:674
fn loss_scale(&self) -> f64Get current loss scale
Source: energy_optim.joule:689
fn precision_mode(&self) -> PrecisionModeGet current precision mode
Source: energy_optim.joule:694
fn update_scale(&mut self, found_inf: bool)Update loss scale based on gradient health
Source: energy_optim.joule:699
fn step(&mut self)Source: energy_optim.joule:721
fn zero_grad(&mut self)Source: energy_optim.joule:726
fn get_lr(&self) -> f64Source: energy_optim.joule:730
fn set_lr(&mut self, lr: f64)Source: energy_optim.joule:734
fn state_dict(&self) -> HashMap<String, Tensor>Source: energy_optim.joule:738
fn load_state_dict(&mut self, state: &HashMap<String, Tensor>)Source: energy_optim.joule:742
fn energy_adam(Create energy-aware Adam optimizer
Source: energy_optim.joule:752
fn energy_adamw(Create energy-aware AdamW optimizer
Source: energy_optim.joule:762
fn energy_sgd(Create energy-aware SGD optimizer
Source: energy_optim.joule:773
fn budget_optimizer<O: Optimizer>(Create budget-constrained optimizer
Source: energy_optim.joule:784
fn max_efficiency_optimizer<O: Optimizer>(Create efficiency-maximizing optimizer
Source: energy_optim.joule:794
fn test_energy_aware_optimizer()Source: energy_optim.joule:814
fn test_power_phases()Source: energy_optim.joule:824