← Back

Module energy_optim

struct EnergyAwareOptimizer

Wrapper that adds energy awareness to any optimizer

Source: energy_optim.joule:20

enum EnergyOptimMode

Source: energy_optim.joule:60

struct EnergyOptimConfig

Source: energy_optim.joule:75

fn default() -> Self

Source: energy_optim.joule:102

fn new(inner: O, energy_tracker: Arc<EnergyTracker>) -> Self

Create new energy-aware optimizer

Source: energy_optim.joule:118

fn with_budget(mut self, budget: EnergyBudget) -> Self

Set energy budget

Source: energy_optim.joule:136

fn with_target_efficiency(mut self, efficiency: f64) -> Self

Set target efficiency

Source: energy_optim.joule:143

fn with_mode(mut self, mode: EnergyOptimMode) -> Self

Set mode

Source: energy_optim.joule:150

fn with_config(mut self, config: EnergyOptimConfig) -> Self

Set 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) -> bool

Should skip this update (if inefficient)?

Source: energy_optim.joule:179

fn step_energy(&self) -> Joules

Get energy consumed this step

Source: energy_optim.joule:192

fn current_efficiency(&self) -> f64

Get current efficiency estimate

Source: energy_optim.joule:197

fn total_energy(&self) -> Joules

Get total energy consumed

Source: energy_optim.joule:202

fn lr_scale(&self) -> f64

Get 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) -> f64

Source: 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 ScheduledPowerOptimizer

Optimizer with scheduled power states (like GPU P-states)

Source: energy_optim.joule:366

struct PowerPhase

Source: energy_optim.joule:376

fn new(inner: O, energy_tracker: Arc<EnergyTracker>) -> Self

Source: energy_optim.joule:390

fn with_warmup(mut self, steps: u64) -> Self

Add warmup phase (low power, low learning rate)

Source: energy_optim.joule:409

fn with_cooldown(mut self, steps: u64) -> Self

Add cooldown phase (low power)

Source: energy_optim.joule:421

fn with_high_perf_phase(mut self, steps: u64) -> Self

Add high-performance phase

Source: energy_optim.joule:433

fn current_phase(&self) -> &PowerPhase

Get 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) -> f64

Source: 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 CheckpointingOptimizer

Optimizer that uses gradient checkpointing for memory/energy trade-off

Source: energy_optim.joule:518

fn new(inner: O, checkpoint_every: usize) -> Self

Source: energy_optim.joule:526

fn recompute_count(&self) -> u64

Get number of recomputes performed

Source: energy_optim.joule:536

fn saved_compute_energy(&self) -> Joules

Get 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) -> f64

Source: 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 LazyOptimizer

Optimizer that defers updates until beneficial

Source: energy_optim.joule:577

fn new(inner: O, energy_tracker: Arc<EnergyTracker>, update_threshold: f64) -> Self

Source: energy_optim.joule:588

fn total_deferred(&self) -> u64

Get number of deferred updates

Source: energy_optim.joule:601

fn energy_saved(&self) -> Joules

Get energy saved by deferring

Source: energy_optim.joule:606

fn should_update(&self, grad_norm: f64) -> bool

Check 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) -> f64

Source: 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 MixedPrecisionEnergyOptimizer

Optimizer that dynamically adjusts precision for energy efficiency

Source: energy_optim.joule:648

enum PrecisionMode

Source: energy_optim.joule:662

fn new(inner: O, energy_tracker: Arc<EnergyTracker>, mode: PrecisionMode) -> Self

Source: energy_optim.joule:674

fn loss_scale(&self) -> f64

Get current loss scale

Source: energy_optim.joule:689

fn precision_mode(&self) -> PrecisionMode

Get 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) -> f64

Source: 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