6 #ifndef NVMLDEVICEPOOLIMP_HPP_INCLUDE
7 #define NVMLDEVICEPOOLIMP_HPP_INCLUDE
19 virtual int num_gpu(
void)
const override;
20 virtual std::unique_ptr<cpu_set_t, std::function<void(cpu_set_t *)> >
24 virtual uint64_t
utilization(
int gpu_idx)
const override;
25 virtual uint64_t
power(
int gpu_idx)
const override;
26 virtual uint64_t
power_limit(
int gpu_idx)
const override;
29 virtual uint64_t
temperature(
int gpu_idx)
const override;
30 virtual uint64_t
energy(
int gpu_idx)
const override;
39 virtual void power_control(
int gpu_idx,
int setting)
const override;
41 virtual void reset(
void)
override;
44 const unsigned int M_MAX_CONTEXTS;
45 const unsigned int M_MAX_FREQUENCIES;
46 const unsigned int M_NUM_CPU;
47 void check_gpu_range(
int gpu_idx)
const;
48 void check_nvml_result(nvmlReturn_t nvml_result,
int error,
const std::string &message,
int line)
const;
49 unsigned int m_num_gpu;
50 std::vector<nvmlDevice_t> m_nvml_device;
Definition: NVMLDevicePool.hpp:19
Definition: NVMLDevicePoolImp.hpp:15
virtual int num_gpu(void) const override
Number of GPUs on the platform.
Definition: NVMLDevicePool.cpp:85
virtual std::unique_ptr< cpu_set_t, std::function< void(cpu_set_t *)> > cpu_affinity_ideal_mask(int gpu_idx) const override
CPU Affinitization mask for a particular GPU.
Definition: NVMLDevicePool.cpp:100
NVMLDevicePoolImp(const int num_cpu)
Definition: NVMLDevicePool.cpp:32
virtual std::vector< unsigned int > frequency_supported_sm(int gpu_idx) const override
Get the supported NVML device streaming multiprocessor frequencies in MHz.
Definition: NVMLDevicePool.cpp:133
virtual uint64_t utilization(int gpu_idx) const override
Get the NVML device utilization metric.
Definition: NVMLDevicePool.cpp:157
virtual std::vector< int > active_process_list(int gpu_idx) const override
Get the list of PIDs with an active context on an NVML device.
Definition: NVMLDevicePool.cpp:299
virtual uint64_t power(int gpu_idx) const override
Get the NVML device power in milliwatts.
Definition: NVMLDevicePool.cpp:169
virtual uint64_t throttle_reasons(int gpu_idx) const override
Get the current NVML device clock throttle reasons.
Definition: NVMLDevicePool.cpp:208
virtual uint64_t performance_state(int gpu_idx) const override
Get the current performance state of an NVML device.
Definition: NVMLDevicePool.cpp:247
virtual uint64_t frequency_status_mem(int gpu_idx) const override
Get the NVML device memory subsystem frequency in MHz.
Definition: NVMLDevicePool.cpp:195
virtual uint64_t utilization_mem(int gpu_idx) const override
Get the NVML device memory Utilization metric.
Definition: NVMLDevicePool.cpp:286
virtual uint64_t energy(int gpu_idx) const override
Get the total energy consumed counter value for an NVML device in millijoules.
Definition: NVMLDevicePool.cpp:234
virtual void reset(void) override
Definition: NVMLDevicePool.cpp:40
virtual uint64_t power_limit(int gpu_idx) const override
Get the NVML device power limit in milliwatts.
Definition: NVMLDevicePool.cpp:182
virtual void power_control(int gpu_idx, int setting) const override
Set power limit for NVML device.
Definition: NVMLDevicePool.cpp:364
virtual uint64_t frequency_status_sm(int gpu_idx) const override
Get the NVML device streaming multiprocessor frequency in MHz.
Definition: NVMLDevicePool.cpp:120
virtual bool is_privileged_access(void) const override
Definition: NVMLDevicePool.cpp:374
virtual void frequency_control_sm(int gpu_idx, int min_freq, int max_freq) const override
Set min and max frequency for NVML device.
Definition: NVMLDevicePool.cpp:344
virtual uint64_t temperature(int gpu_idx) const override
Get the current NVML device temperature.
Definition: NVMLDevicePool.cpp:221
virtual uint64_t throughput_rx_pcie(int gpu_idx) const override
Get the pcie receive throughput over a 20ms period for an NVML device.
Definition: NVMLDevicePool.cpp:260
virtual ~NVMLDevicePoolImp()
Definition: NVMLDevicePool.cpp:65
virtual uint64_t throughput_tx_pcie(int gpu_idx) const override
Get the pcie transmit throughput over a 20ms period for an NVML device.
Definition: NVMLDevicePool.cpp:273
virtual void frequency_reset_control(int gpu_idx) const override
Reset min and max frequency for NVML device.
Definition: NVMLDevicePool.cpp:354