geopm  3.1.1.dev214+gba4f9f6d
GEOPM - Global Extensible Open Power Manager
Public Member Functions | List of all members
geopm::TRLFrequencyLimitDetector Class Reference

#include <TRLFrequencyLimitDetector.hpp>

Inheritance diagram for geopm::TRLFrequencyLimitDetector:
Inheritance graph
[legend]
Collaboration diagram for geopm::TRLFrequencyLimitDetector:
Collaboration graph
[legend]

Public Member Functions

 TRLFrequencyLimitDetector (PlatformIO &platform_io, const PlatformTopo &)
 
void update_max_frequency_estimates (const std::vector< double > &observed_core_frequencies) override
 Update the estimates for maximum achievable core frequencies. More...
 
std::vector< std::pair< unsigned int, double > > get_core_frequency_limits (unsigned int core_idx) const override
 Estimate the maximum achievable frequencies of a given core. More...
 
double get_core_low_priority_frequency (unsigned int core_idx) const override
 Estimate the low priority frequency of a given core. More...
 
- Public Member Functions inherited from geopm::FrequencyLimitDetector
 FrequencyLimitDetector ()=default
 
virtual ~FrequencyLimitDetector ()=default
 

Additional Inherited Members

- Static Public Member Functions inherited from geopm::FrequencyLimitDetector
static std::unique_ptr< FrequencyLimitDetectormake_unique (PlatformIO &platform_io, const PlatformTopo &platform_topo)
 
static std::shared_ptr< FrequencyLimitDetectormake_shared (PlatformIO &platform_io, const PlatformTopo &platform_topo)
 

Constructor & Destructor Documentation

◆ TRLFrequencyLimitDetector()

geopm::TRLFrequencyLimitDetector::TRLFrequencyLimitDetector ( PlatformIO &  platform_io,
const PlatformTopo &  platform_topo 
)

Member Function Documentation

◆ get_core_frequency_limits()

std::vector< std::pair< unsigned int, double > > geopm::TRLFrequencyLimitDetector::get_core_frequency_limits ( unsigned int  core_idx) const
overridevirtual

Estimate the maximum achievable frequencies of a given core.

Parameters
[in]core_idxGEOPM topology index of the core to query.
Returns
A vector of alternative frequency configurations. Each vector element is a pair of a count of high-priority cores in the package, and this core's achievable frequency if that count is not exceeded.

Implements geopm::FrequencyLimitDetector.

◆ get_core_low_priority_frequency()

double geopm::TRLFrequencyLimitDetector::get_core_low_priority_frequency ( unsigned int  core_idx) const
overridevirtual

Estimate the low priority frequency of a given core.

Implements geopm::FrequencyLimitDetector.

◆ update_max_frequency_estimates()

void geopm::TRLFrequencyLimitDetector::update_max_frequency_estimates ( const std::vector< double > &  observed_core_frequencies)
overridevirtual

Update the estimates for maximum achievable core frequencies.

Caches the estimates to be queried by other functions in this interface.

Parameters
observed_core_frequenciesThe measured frequency for each core across a region of interest (e.g., epoch to epoch, across GEOPM regions, etc).

Implements geopm::FrequencyLimitDetector.


The documentation for this class was generated from the following files: