geopm
3.1.1.dev296+g5916b956
GEOPM - Global Extensible Open Power Manager
|
#include <LevelZero.hpp>
Public Types | |
enum | geopm_levelzero_domain_e { M_DOMAIN_ALL = 0 , M_DOMAIN_COMPUTE = 1 , M_DOMAIN_MEMORY = 2 , M_DOMAIN_SIZE = 3 } |
Public Member Functions | |
LevelZero ()=default | |
virtual | ~LevelZero ()=default |
virtual int | num_gpu () const =0 |
Number of GPUs on the platform. More... | |
virtual int | num_gpu (int domain) const =0 |
Number of GPUs on the platform. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual int | temperature_domain_count (unsigned int l0_device_idx, int l0_domain) const =0 |
Get the number of LevelZero temperature domains. More... | |
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. More... | |
virtual int | engine_domain_count (unsigned int l0_device_idx, int l0_domain) const =0 |
Get the number of LevelZero engine domains. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual int32_t | power_limit_tdp (unsigned int l0_device_idx) const =0 |
Get the LevelZero device default power limit in milliwatts. More... | |
virtual int32_t | power_limit_min (unsigned int l0_device_idx) const =0 |
Get the LevelZero device minimum power limit in milliwatts. More... | |
virtual int32_t | power_limit_max (unsigned int l0_device_idx) const =0 |
Get the LevelZero device maximum power limit in milliwatts. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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 have programmed the hardware. More... | |
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. More... | |
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 hardware. More... | |
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 accelerator hardware. More... | |
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 file/shared local memory/sampler) More... | |
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. More... | |
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. More... | |
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 have programmed the hardware. More... | |
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 occurred. More... | |
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 accelerator hardware. More... | |
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 accelerator hardware. More... | |
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/register file/shared local memory/sampler) More... | |
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. More... | |
|
default |
|
virtualdefault |
|
pure virtual |
Get the LevelZero device active time in microseconds.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The LevelZero index indicating a particular domain of the GPU. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device active time and timestamp in microseconds.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The LevelZero index indicating a particular domain of the GPU. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the cachced LevelZero device timestamp for the active time value in microseconds.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The LevelZero index indicating a particular domain of the GPU. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device energy in microjoules.
[in] | geopm_domain | The GEOPM domain being targeted |
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The index indicating a particular Level Zero domain. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device energy and timestamp in microjoules and microseconds.
[in] | geopm_domain | The GEOPM domain being targeted |
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain_idx | The index indicating a particular Level Zero domain. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device energy cached timestamp in microseconds.
[in] | geopm_domain | The GEOPM domain being targeted |
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The index indicating a particular Level Zero domain. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the number of LevelZero engine domains.
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Set min and max frequency for LevelZero device.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The domain type being targeted |
[in] | l0_domain_idx | The domain being targeted |
[in] | range_min | Min target frequency in MHz. |
[in] | range_max | Max target frequency in MHz. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the number of LevelZero frequency domains of a certain type.
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device efficient frequency in MHz.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The LevelZero index indicating a particular domain of the GPU. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device maximum frequency in MHz.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The LevelZero index indicating a particular domain of the GPU. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device mininmum frequency in MHz.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The LevelZero index indicating a particular domain of the GPU. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device minimum and maximum frequency control range in MHz.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The LevelZero index indicating a particular domain of the GPU. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device actual frequency in MHz.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The LevelZero index indicating a particular domain of the GPU. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device supported frequencies in MHz.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The LevelZero index indicating a particular domain of the GPU. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device frequency throttle reasons.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The LevelZero index indicating a particular domain of the GPU.. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Number of GPUs on the platform.
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Number of GPUs on the platform.
[in] | domain | The GEOPM domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the number of LevelZero perf domains of a certain type.
[in] | l0_device_idx | The LevelZero device being targeted |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the performance factor value of various LevelZero domains.
[in] | l0_device_idx | The LevelZero device being targeted |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The index indicating a particular Level Zero domain. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Set the performance factor for the LevelZero device.
[in] | l0_device_idx | The index indicating a particular Level Zero accelerator. |
[in] | l0_domain | The level zero domain type being targeted |
[in] | l0_domain_idx | The level zero domain being targeted |
[in] | setting | The performance factor value, 0-100 |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the number of LevelZero power domains of a certain type.
[in] | geopm_domain | The GEOPM domain being targeted |
[in] | l0_device_idx | The LevelZero device being targeted |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device maximum power limit in milliwatts.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device minimum power limit in milliwatts.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device default power limit in milliwatts.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of correctable errors that have occurred in caches (L1/L3/register file/shared local memory/sampler)
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of uncorrectable errors that have occurred in caches (L1/L3/register file/shared local memory/sampler)
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of correctable errors that have occurred in the compute accelerator hardware.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of uncorrectable errors that have occurred in the compute accelerator hardware.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of correctable errors that have occurred in the display.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of uncorrectable errors that have occurred in the display.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the number of LevelZero RAS domains of a certain type.
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of low level driver communication correctable errors have occurred.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of low level driver communication uncorrectable errors have occurred.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of correctable errors that have occurred in the fixed-function accelerator hardware.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of uncorrectable errors that have occurred in the fixed-function accelerator hardware.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of correctable hardware exceptions generated by the way workloads have programmed the hardware.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of uncorrectable hardware exceptions generated by the way workloads have programmed the hardware.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of correctable accelerator engine resets attempted by the driver.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero count of number of uncorrectable accelerator engine resets attempted by the driver.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the number of LevelZero temperature domains.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
Implemented in geopm::LevelZeroImp.
|
pure virtual |
Get the LevelZero device maximum temperature in Celsius.
[in] | l0_device_idx | The index indicating a particular Level Zero GPU. |
[in] | l0_domain | The LevelZero domain type being targeted |
[in] | l0_domain_idx | The LevelZero index indicating a particular domain of the GPU. |
Implemented in geopm::LevelZeroImp.