fn statistics()

in src/samplers/nvidia/config.rs [56:137]


    fn statistics(&self) -> Vec<<Self as SamplerConfig>::Statistic> {
        let mut enabled = Vec::new();
        if let Ok(nvml) = NVML::builder().init() {
            let devices = nvml.device_count().unwrap_or(0);
            for statistic in self.statistics.iter() {
                for id in 0..devices {
                    match statistic {
                        NvidiaConfigStatistic::GpuTemperature => {
                            enabled.push(NvidiaStatistic::GpuTemperature(id));
                        }
                        NvidiaConfigStatistic::GpuUtilization => {
                            enabled.push(NvidiaStatistic::GpuUtilization(id));
                        }
                        NvidiaConfigStatistic::MemoryEccEnabled => {
                            enabled.push(NvidiaStatistic::MemoryEccEnabled(id));
                        }
                        NvidiaConfigStatistic::MemoryEccSbe => {
                            enabled.push(NvidiaStatistic::MemoryEccSbe(id));
                        }
                        NvidiaConfigStatistic::MemoryEccDbe => {
                            enabled.push(NvidiaStatistic::MemoryEccDbe(id));
                        }
                        NvidiaConfigStatistic::MemoryUtilization => {
                            enabled.push(NvidiaStatistic::MemoryUtilization(id));
                        }
                        NvidiaConfigStatistic::EncoderUtilization => {
                            enabled.push(NvidiaStatistic::EncoderUtilization(id));
                        }
                        NvidiaConfigStatistic::DecoderUtilization => {
                            enabled.push(NvidiaStatistic::DecoderUtilization(id));
                        }
                        NvidiaConfigStatistic::PowerUsage => {
                            enabled.push(NvidiaStatistic::PowerUsage(id));
                        }
                        NvidiaConfigStatistic::PowerLimit => {
                            enabled.push(NvidiaStatistic::PowerLimit(id));
                        }
                        NvidiaConfigStatistic::EnergyConsumption => {
                            enabled.push(NvidiaStatistic::EnergyConsumption(id));
                        }
                        NvidiaConfigStatistic::ClockSMCurrent => {
                            enabled.push(NvidiaStatistic::ClockSMCurrent(id));
                        }
                        NvidiaConfigStatistic::ClockMemoryCurrent => {
                            enabled.push(NvidiaStatistic::ClockMemoryCurrent(id));
                        }
                        NvidiaConfigStatistic::PcieReplay => {
                            enabled.push(NvidiaStatistic::PcieReplay(id));
                        }
                        NvidiaConfigStatistic::PcieRxThroughput => {
                            enabled.push(NvidiaStatistic::PcieRxThroughput(id));
                        }
                        NvidiaConfigStatistic::PcieTxThroughput => {
                            enabled.push(NvidiaStatistic::PcieTxThroughput(id));
                        }
                        NvidiaConfigStatistic::MemoryFbFree => {
                            enabled.push(NvidiaStatistic::MemoryFbFree(id));
                        }
                        NvidiaConfigStatistic::MemoryFbTotal => {
                            enabled.push(NvidiaStatistic::MemoryFbTotal(id));
                        }
                        NvidiaConfigStatistic::MemoryFbUsed => {
                            enabled.push(NvidiaStatistic::MemoryFbUsed(id));
                        }
                        NvidiaConfigStatistic::MemoryRetiredSbe => {
                            enabled.push(NvidiaStatistic::MemoryRetiredSbe(id));
                        }
                        NvidiaConfigStatistic::MemoryRetiredDbe => {
                            enabled.push(NvidiaStatistic::MemoryRetiredDbe(id));
                        }
                        NvidiaConfigStatistic::MemoryRetiredPending => {
                            enabled.push(NvidiaStatistic::MemoryRetiredPending(id));
                        }
                        NvidiaConfigStatistic::ProcessesCompute => {
                            enabled.push(NvidiaStatistic::ProcessesCompute(id));
                        }
                    }
                }
            }
        }
        enabled
    }