geopm
3.1.1.dev296+g5916b956
GEOPM - Global Extensible Open Power Manager
|
Detect maximum achievable frequency limits of CPU cores. More...
#include <FrequencyLimitDetector.hpp>
Public Member Functions | |
FrequencyLimitDetector ()=default | |
virtual | ~FrequencyLimitDetector ()=default |
virtual void | update_max_frequency_estimates (const std::vector< double > &observed_core_frequencies)=0 |
Update the estimates for maximum achievable core frequencies. More... | |
virtual std::vector< std::pair< unsigned int, double > > | get_core_frequency_limits (unsigned int core_idx) const =0 |
Estimate the maximum achievable frequencies of a given core. More... | |
virtual double | get_core_low_priority_frequency (unsigned int core_idx) const =0 |
Estimate the low priority frequency of a given core. More... | |
Static Public Member Functions | |
static std::unique_ptr< FrequencyLimitDetector > | make_unique (PlatformIO &platform_io, const PlatformTopo &platform_topo) |
static std::shared_ptr< FrequencyLimitDetector > | make_shared (PlatformIO &platform_io, const PlatformTopo &platform_topo) |
Detect maximum achievable frequency limits of CPU cores.
Estimates the maximum freuqency that each core can achieve if it is given a sufficiently high frequency cap. Estimates are based on recent behavior of the target core and other cores in the same CPU package.
|
default |
|
virtualdefault |
|
pure virtual |
Estimate the maximum achievable frequencies of a given core.
[in] | core_idx | GEOPM topology index of the core to query. |
Implemented in geopm::TRLFrequencyLimitDetector, and geopm::SSTFrequencyLimitDetector.
|
pure virtual |
Estimate the low priority frequency of a given core.
Implemented in geopm::TRLFrequencyLimitDetector, and geopm::SSTFrequencyLimitDetector.
|
static |
|
static |
|
pure virtual |
Update the estimates for maximum achievable core frequencies.
Caches the estimates to be queried by other functions in this interface.
observed_core_frequencies | The measured frequency for each core across a region of interest (e.g., epoch to epoch, across GEOPM regions, etc). |
Implemented in geopm::TRLFrequencyLimitDetector, and geopm::SSTFrequencyLimitDetector.