6 #ifndef LEVELZERO_HPP_INCLUDE
7 #define LEVELZERO_HPP_INCLUDE
35 virtual int num_gpu(
int domain)
const = 0;
40 int l0_domain)
const = 0;
49 int l0_domain,
int l0_domain_idx)
const = 0;
58 int l0_domain,
int l0_domain_idx)
const = 0;
67 int l0_domain_idx)
const = 0;
76 int l0_domain_idx)
const = 0;
85 int l0_domain_idx)
const = 0;
94 int l0_domain_idx)
const = 0;
103 virtual std::pair<double, double>
frequency_range(
unsigned int l0_device_idx,
int l0_domain,
104 int l0_domain_idx)
const = 0;
119 int l0_domain_idx)
const = 0;
131 virtual std::pair<uint64_t, uint64_t>
active_time_pair(
unsigned int l0_device_idx,
int l0_domain,
132 int l0_domain_idx)
const = 0;
140 virtual uint64_t
active_time(
unsigned int l0_device_idx,
int l0_domain,
141 int l0_domain_idx)
const = 0;
151 int l0_domain,
int l0_domain_idx)
const = 0;
158 int l0_domain)
const = 0;
164 int l0_domain)
const = 0;
172 int l0_domain,
int l0_domain_idx)
const = 0;
196 virtual std::pair<uint64_t, uint64_t>
energy_pair(
int geopm_domain,
unsigned int l0_device_idx,
197 int l0_domain_idx)
const = 0;
206 virtual uint64_t
energy(
int geopm_domain,
unsigned int l0_device_idx,
int l0_domain,
207 int l0_domain_idx)
const = 0;
216 virtual uint64_t
energy_timestamp(
int geopm_domain,
unsigned int l0_device_idx,
int l0_domain,
217 int l0_domain_idx)
const = 0;
226 int l0_domain_idx,
double range_min,
227 double range_max)
const = 0;
237 double setting)
const = 0;
242 int l0_domain)
const = 0;
250 int l0_domain,
int l0_domain_idx)
const = 0;
258 int l0_domain,
int l0_domain_idx)
const = 0;
266 int l0_domain,
int l0_domain_idx)
const = 0;
274 int l0_domain,
int l0_domain_idx)
const = 0;
282 int l0_domain,
int l0_domain_idx)
const = 0;
290 int l0_domain,
int l0_domain_idx)
const = 0;
298 int l0_domain,
int l0_domain_idx)
const = 0;
306 int l0_domain,
int l0_domain_idx)
const = 0;
314 int l0_domain,
int l0_domain_idx)
const = 0;
322 int l0_domain,
int l0_domain_idx)
const = 0;
330 int l0_domain,
int l0_domain_idx)
const = 0;
338 int l0_domain,
int l0_domain_idx)
const = 0;
346 int l0_domain,
int l0_domain_idx)
const = 0;
354 int l0_domain,
int l0_domain_idx)
const = 0;
Definition: LevelZero.hpp:18
virtual uint64_t active_time_timestamp(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the cachced LevelZero device timestamp for the active time value in microseconds.
virtual std::pair< uint64_t, uint64_t > energy_pair(int geopm_domain, unsigned int l0_device_idx, int l0_domain_idx) const =0
Get the LevelZero device energy and timestamp in microjoules and microseconds.
virtual double frequency_status(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero device actual frequency in MHz.
virtual ~LevelZero()=default
virtual double ras_driver_errcount_correctable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of low level driver communication correctable errors have occurred.
virtual uint64_t active_time(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero device active time in microseconds.
virtual int frequency_domain_count(unsigned int l0_device_idx, int l0_domain) const =0
Get the number of LevelZero frequency domains of a certain type.
virtual int32_t power_limit_min(unsigned int l0_device_idx) const =0
Get the LevelZero device minimum power limit in milliwatts.
virtual int engine_domain_count(unsigned int l0_device_idx, int l0_domain) const =0
Get the number of LevelZero engine domains.
virtual double ras_display_errcount_correctable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of correctable errors that have occurred in the display.
virtual double ras_driver_errcount_uncorrectable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of low level driver communication uncorrectable errors have occurre...
virtual double ras_compute_errcount_correctable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of correctable errors that have occurred in the compute accelerator...
virtual double ras_programming_errcount_uncorrectable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of uncorrectable hardware exceptions generated by the way workloads...
virtual double ras_reset_count_uncorrectable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of uncorrectable accelerator engine resets attempted by the driver.
virtual double ras_compute_errcount_uncorrectable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of uncorrectable errors that have occurred in the compute accelerat...
virtual int32_t power_limit_tdp(unsigned int l0_device_idx) const =0
Get the LevelZero device default power limit in milliwatts.
virtual double ras_programming_errcount_correctable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of correctable hardware exceptions generated by the way workloads h...
virtual double ras_cache_errcount_uncorrectable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of uncorrectable errors that have occurred in caches (L1/L3/registe...
virtual uint64_t energy_timestamp(int geopm_domain, unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero device energy cached timestamp in microseconds.
virtual int num_gpu() const =0
Number of GPUs on the platform.
virtual int temperature_domain_count(unsigned int l0_device_idx, int l0_domain) const =0
Get the number of LevelZero temperature domains.
virtual std::pair< uint64_t, uint64_t > active_time_pair(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero device active time and timestamp in microseconds.
virtual double ras_noncompute_errcount_correctable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of correctable errors that have occurred in the fixed-function acce...
geopm_levelzero_domain_e
Definition: LevelZero.hpp:20
@ M_DOMAIN_MEMORY
Definition: LevelZero.hpp:23
@ M_DOMAIN_COMPUTE
Definition: LevelZero.hpp:22
@ M_DOMAIN_SIZE
Definition: LevelZero.hpp:24
@ M_DOMAIN_ALL
Definition: LevelZero.hpp:21
virtual std::vector< double > frequency_supported(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero device supported frequencies in MHz.
virtual std::pair< double, double > frequency_range(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero device minimum and maximum frequency control range in MHz.
virtual double temperature_max(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero device maximum temperature in Celsius.
virtual uint64_t energy(int geopm_domain, unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero device energy in microjoules.
virtual void performance_factor_control(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx, double setting) const =0
Set the performance factor for the LevelZero device.
virtual int num_gpu(int domain) const =0
Number of GPUs on the platform.
virtual int performance_domain_count(unsigned int l0_device_idx, int l0_domain) const =0
Get the number of LevelZero perf domains of a certain type.
virtual int ras_domain_count(unsigned int l0_device_idx, int l0_domain) const =0
Get the number of LevelZero RAS domains of a certain type.
virtual double ras_cache_errcount_correctable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of correctable errors that have occurred in caches (L1/L3/register ...
virtual double frequency_min(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero device mininmum frequency in MHz.
virtual int power_domain_count(int geopm_domain, unsigned int l0_device_idx, int l0_domain) const =0
Get the number of LevelZero power domains of a certain type.
virtual double ras_display_errcount_uncorrectable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of uncorrectable errors that have occurred in the display.
virtual double performance_factor(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the performance factor value of various LevelZero domains.
virtual void frequency_control(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx, double range_min, double range_max) const =0
Set min and max frequency for LevelZero device.
virtual uint32_t frequency_throttle_reasons(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero device frequency throttle reasons.
virtual double frequency_efficient(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero device efficient frequency in MHz.
virtual double ras_reset_count_correctable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of correctable accelerator engine resets attempted by the driver.
virtual int32_t power_limit_max(unsigned int l0_device_idx) const =0
Get the LevelZero device maximum power limit in milliwatts.
virtual double frequency_max(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero device maximum frequency in MHz.
virtual double ras_noncompute_errcount_uncorrectable(unsigned int l0_device_idx, int l0_domain, int l0_domain_idx) const =0
Get the LevelZero count of number of uncorrectable errors that have occurred in the fixed-function ac...
const LevelZero & levelzero()
Definition: LevelZero.cpp:28