pub struct DataFlowMetrics {Show 16 fields
pub pcie_generation: u8,
pub pcie_width: u8,
pub pcie_theoretical_gbps: f64,
pub pcie_tx_gbps: f64,
pub pcie_rx_gbps: f64,
pub active_transfers: Vec<Transfer>,
pub completed_transfers: VecDeque<Transfer>,
pub memory_bus_utilization_pct: f64,
pub memory_read_gbps: f64,
pub memory_write_gbps: f64,
pub pinned_memory_used_bytes: u64,
pub pinned_memory_total_bytes: u64,
pub staging_buffer_used_bytes: u64,
pub pcie_tx_history: VecDeque<f64>,
pub pcie_rx_history: VecDeque<f64>,
pub memory_bus_history: VecDeque<f64>,
}Expand description
Data flow and transfer metrics
Fields§
§pcie_generation: u8PCIe generation (4, 5, etc.)
pcie_width: u8PCIe link width (x1, x4, x8, x16)
pcie_theoretical_gbps: f64Theoretical PCIe bandwidth in GB/s
pcie_tx_gbps: f64Current TX bandwidth in GB/s
pcie_rx_gbps: f64Current RX bandwidth in GB/s
active_transfers: Vec<Transfer>Currently active transfers
completed_transfers: VecDeque<Transfer>Recently completed transfers (last 100)
memory_bus_utilization_pct: f64GPU memory bus utilization percentage
memory_read_gbps: f64Memory read bandwidth in GB/s
memory_write_gbps: f64Memory write bandwidth in GB/s
pinned_memory_used_bytes: u64Pinned memory used in bytes
pinned_memory_total_bytes: u64Pinned memory total in bytes
staging_buffer_used_bytes: u64Staging buffer used in bytes
pcie_tx_history: VecDeque<f64>PCIe TX history
pcie_rx_history: VecDeque<f64>PCIe RX history
memory_bus_history: VecDeque<f64>Memory bus utilization history
Implementations§
Source§impl DataFlowMetrics
impl DataFlowMetrics
Sourcepub const MAX_HISTORY_POINTS: usize = 60
pub const MAX_HISTORY_POINTS: usize = 60
Maximum history points
Sourcepub const MAX_COMPLETED_TRANSFERS: usize = 100
pub const MAX_COMPLETED_TRANSFERS: usize = 100
Maximum completed transfers to keep
Sourcepub fn calculate_pcie_bandwidth(generation: u8, width: u8) -> f64
pub fn calculate_pcie_bandwidth(generation: u8, width: u8) -> f64
Calculate PCIe theoretical bandwidth based on generation and width
Sourcepub fn set_pcie_config(&mut self, generation: u8, width: u8)
pub fn set_pcie_config(&mut self, generation: u8, width: u8)
Set PCIe configuration
Sourcepub fn pcie_tx_utilization_pct(&self) -> f64
pub fn pcie_tx_utilization_pct(&self) -> f64
Get PCIe TX utilization percentage
Sourcepub fn pcie_rx_utilization_pct(&self) -> f64
pub fn pcie_rx_utilization_pct(&self) -> f64
Get PCIe RX utilization percentage
Sourcepub fn start_transfer(&mut self, transfer: Transfer)
pub fn start_transfer(&mut self, transfer: Transfer)
Start tracking a new transfer
Sourcepub fn complete_transfer(&mut self, transfer_id: TransferId)
pub fn complete_transfer(&mut self, transfer_id: TransferId)
Complete a transfer and move to history
Sourcepub fn update_history(&mut self)
pub fn update_history(&mut self)
Update history sparklines
Sourcepub fn bytes_in_flight(&self) -> u64
pub fn bytes_in_flight(&self) -> u64
Get total bytes currently being transferred
Sourcepub fn pinned_memory_utilization_pct(&self) -> f64
pub fn pinned_memory_utilization_pct(&self) -> f64
Get pinned memory utilization percentage
Trait Implementations§
Source§impl Clone for DataFlowMetrics
impl Clone for DataFlowMetrics
Source§fn clone(&self) -> DataFlowMetrics
fn clone(&self) -> DataFlowMetrics
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more