pub struct CheckpointConfig {
pub strategy: CheckpointStrategy,
pub checkpoint_attention: bool,
pub checkpoint_ffn: bool,
pub min_checkpoint_interval: usize,
}Expand description
Gradient checkpointing configuration
Fields§
§strategy: CheckpointStrategyCheckpointing strategy
checkpoint_attention: boolWhether to checkpoint attention
checkpoint_ffn: boolWhether to checkpoint feed-forward
min_checkpoint_interval: usizeMinimum layers between checkpoints
Implementations§
Source§impl CheckpointConfig
impl CheckpointConfig
Sourcepub fn uniform(interval: usize) -> Self
pub fn uniform(interval: usize) -> Self
Create a uniform checkpointing configuration
§Arguments
interval- Checkpoint every N layers (e.g., 2 means checkpoint layers 0, 2, 4, …)
Sourcepub fn selective(layers: Vec<usize>) -> Self
pub fn selective(layers: Vec<usize>) -> Self
Create a selective checkpointing configuration
§Arguments
layers- Specific layer indices to checkpoint
Sourcepub fn dynamic(num_layers: usize, memory_fraction: f64) -> Result<Self>
pub fn dynamic(num_layers: usize, memory_fraction: f64) -> Result<Self>
Create a dynamic checkpointing configuration
§Arguments
num_layers- Total number of layers in the modelmemory_fraction- Target memory usage as fraction of full storage (0.0 - 1.0)
Sourcepub fn with_checkpoint_attention(self, checkpoint: bool) -> Self
pub fn with_checkpoint_attention(self, checkpoint: bool) -> Self
Set whether to checkpoint attention sublayers
Sourcepub fn with_checkpoint_ffn(self, checkpoint: bool) -> Self
pub fn with_checkpoint_ffn(self, checkpoint: bool) -> Self
Set whether to checkpoint feed-forward sublayers
Sourcepub fn with_min_interval(self, interval: usize) -> Self
pub fn with_min_interval(self, interval: usize) -> Self
Set minimum interval between checkpoints
Sourcepub fn should_checkpoint(&self, layer_idx: usize) -> bool
pub fn should_checkpoint(&self, layer_idx: usize) -> bool
Check if a specific layer should be checkpointed
Sourcepub fn memory_savings(&self, num_layers: usize) -> f64
pub fn memory_savings(&self, num_layers: usize) -> f64
Calculate expected memory savings
Returns the fraction of activation memory saved (0.0 - 1.0)
Sourcepub fn compute_overhead(&self, num_layers: usize) -> f64
pub fn compute_overhead(&self, num_layers: usize) -> f64
Calculate expected compute overhead
Returns the multiplicative factor for compute (1.0 = no overhead)
Trait Implementations§
Source§impl Clone for CheckpointConfig
impl Clone for CheckpointConfig
Source§fn clone(&self) -> CheckpointConfig
fn clone(&self) -> CheckpointConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CheckpointConfig
impl Debug for CheckpointConfig
Source§impl Default for CheckpointConfig
impl Default for CheckpointConfig
Source§impl<'de> Deserialize<'de> for CheckpointConfig
impl<'de> Deserialize<'de> for CheckpointConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for CheckpointConfig
impl RefUnwindSafe for CheckpointConfig
impl Send for CheckpointConfig
impl Sync for CheckpointConfig
impl Unpin for CheckpointConfig
impl UnwindSafe for CheckpointConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more