optirs-tpu 0.3.2

OptiRS TPU coordination and pod management
Documentation
// Gradient Aggregation Module

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Default)]
pub struct AggregationConfig {
    pub method: crate::pod_coordination::coordination::config::GradientAggregationMethod,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub enum AggregationState {
    #[default]
    Idle,
    Collecting,
    Aggregating,
    Broadcasting,
}

#[derive(Debug, Clone, Default)]
pub struct AggregationStatistics {
    pub total_aggregations: u64,
    pub avg_time_ms: f64,
}

#[derive(Debug, Clone, Default)]
pub struct BufferMetadata {
    pub buffer_id: u64,
    pub size_bytes: usize,
}

#[derive(Debug, Clone, Default)]
pub struct CommunicationOptimization {
    pub compression: CompressionSettings,
}

#[derive(Debug, Clone, Default)]
pub struct CommunicationStats {
    pub bytes_sent: u64,
    pub bytes_received: u64,
}

#[derive(Debug, Clone, Default)]
pub struct CompressionParameters {
    pub ratio: f64,
}

#[derive(Debug, Clone, Default)]
pub struct CompressionSettings {
    pub enabled: bool,
    pub method: QuantizationMethod,
}

#[derive(Debug, Clone, Default)]
pub struct FederatedParams {
    pub num_rounds: u32,
}

#[derive(Debug, Clone, Default)]
pub struct GradientAggregator {
    pub config: AggregationConfig,
    pub state: AggregationState,
}

#[derive(Debug, Clone, Default)]
pub struct GradientBuffer {
    pub metadata: BufferMetadata,
    pub status: GradientBufferStatus,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub enum GradientBufferStatus {
    #[default]
    Empty,
    Partial,
    Full,
}

#[derive(Debug, Clone, Default)]
pub struct LocalSGDParams {
    pub local_steps: u32,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub enum QuantizationMethod {
    #[default]
    None,
    Int8,
    Int16,
    Dynamic,
}

#[derive(Debug, Clone, Default)]
pub struct QuantizationSettings {
    pub method: QuantizationMethod,
}

#[derive(Debug, Clone, Default)]
pub struct SCAFFOLDParams {
    pub control_variates: bool,
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub enum SparsificationMethod {
    #[default]
    TopK,
    Threshold,
    Random,
}

#[derive(Debug, Clone, Default)]
pub struct GradientAggregationStatistics {
    pub total_gradients: u64,
    pub avg_aggregation_time_ms: f64,
}