gem5.resources.looppoint.html
gem5.resources.looppoint module¶
- class gem5.resources.looppoint.Looppoint(regions: Dict[str | int, LooppointRegion])¶
Bases:
objectStores all the LoopPoint information for a gem5 workload.
- get_current_pair() PcCountPair¶
This function returns the current PC Count pair.
- get_current_region() str | int | None¶
Returns the region id if the current PC Count pair if significant (e.g. beginning of the checkpoint), otherwise, it returns
Noneto indicate the current PC Count pair is not significant.
- get_manager() PcCountTrackerManager¶
Returns the PcCountTrackerManager for this LoopPoint data structure.
- get_region_start_id_map() Dict[PcCountPair, int | str]¶
Returns the starting PcCountPairs mapped to the corresponding region IDs. This is a helper function for quick mapping of PcCountPairs to region IDs.
- get_regions() Dict[str | int, LooppointRegion]¶
Returns the regions for this Looppoint data structure.
- get_targets() List[PcCountPair]¶
Returns the complete list of target PcCountPairs. That is, the PcCountPairs each region starts with as well as the relevant warmup intervals.
- output_json_file(input_indent: int = 4, filepath: str = 'm5out/looppoint.json') Dict[int, Dict]¶
This function is used to output the
_json_fileinto a json file.- Parameters:
input_indent – The indent value of the json file.
filepath – The path of the output json file.
- set_target_region_id(region_id: str | int) None¶
There are use-cases where we want to obtain a LoopPoint data structure containing a single target region via its ID. This function will remove all irrelevant regions.
- setup_processor(processor: AbstractProcessor) None¶
A function is used to setup a PC tracker in all the cores and connect all the tracker to the PC tracker manager to perform multithread PC tracking.
- Parameters:
processor – The processor used in the simulation configuration.
- to_json() Dict[int | str, Dict]¶
Returns this data-structure as a dictionary for serialization via the
output_json_filefunction.
- update_relatives_counts() None¶
Updates the relative count for restore usage. The new relative count will be stored in relevant data structures.
- class gem5.resources.looppoint.LooppointCsvLoader(pinpoints_file: Path | str, region_id: str | int | None = None)¶
Bases:
LooppointThis class will create a LoopPoint data structure from data extracted from a LoopPoint pinpoints file.
- class gem5.resources.looppoint.LooppointJsonLoader(looppoint_file: str | Path, region_id: str | int | None = None)¶
Bases:
LooppointThis class will create a generate a LoopPoint data structure from data extracted from a LoopPoint json file.
- class gem5.resources.looppoint.LooppointRegion(simulation: LooppointSimulation, multiplier: float, warmup: LooppointRegionWarmup | None = None)¶
Bases:
objectA data structure to store Looppoint region information.
Note
This is not intended to be a user-facing class. The classes LooppointJsonLoader and LooppointCSVLoader can be used to load and restore SimPoint data.
- get_multiplier() float¶
Returns the multiplier.
- get_pc_count_pairs() List[PcCountPair]¶
Returns the PC count pairs for this LoopPoint region.
- get_simulation() LooppointSimulation¶
Returns the simulation region information.
- get_start() PcCountPair¶
Returns the correct starting PcCountPair for this LoopPoint region.
- get_warmup() LooppointRegionWarmup | None¶
If set, returns the warmup region information. Otherwise
None.
- to_json() Dict¶
Returns this class in a JSON structure which can then be serialized and later be restored from.
- update_relatives_counts(manager: PcCountTrackerManager) None¶
Updates the relative counds of this LoopPoint region.
- class gem5.resources.looppoint.LooppointRegionPC(pc: int, globl: int, relative: int | None = None)¶
Bases:
objectA data structure for storing the Looppoint region’s PC information.
Note
This is not intended to be a user-facing class. The classes LooppointJsonLoader and LooppointCSVLoader can be used to load and restore Simpoint data.
- get_global() int¶
Returns the global value.
- get_pc() int¶
Returns the Program counter value.
- get_pc_count_pair() PcCountPair¶
Returns the PcCountPair for this Region PC value.
- get_relative() int | None¶
If specified, returns the relative Program counter value, otherwise returns None.
- to_json() Dict[str, int]¶
Returns this class in a JSON structure which can then be serialized and later be restored from.
- update_relative_count(manager: PcCountTrackerManager) None¶
Updates the relative count.
- class gem5.resources.looppoint.LooppointRegionWarmup(start: PcCountPair, end: PcCountPair)¶
Bases:
objectA data structure for storing a Looppoint region’s warmup data.
Note
This is not intended to be a user-facing class. The classes LooppointJsonLoader and LooppointCSVLoader can be used to load and restore SimPoint data.
- get_end() PcCountPair¶
Returns the PcCountPair for the end of the region warmup.
- get_pc_count_pairs() List[PcCountPair]¶
Returns the start and end PC count pairs.
- get_start() PcCountPair¶
Returns the PcCountPair for the start of the region warmup.
- to_json() Dict[str, Dict[str, int]]¶
Returns this class in a JSON structure which can then be serialized.
- class gem5.resources.looppoint.LooppointSimulation(start: LooppointRegionPC, end: LooppointRegionPC)¶
Bases:
objectA data structure to store the simulation region start and end region.
Note
This is not intended to be a user-facing class. The classes LooppointJsonLoader and LooppointCSVLoader can be used to load and restore Simpoint data.
- get_end() LooppointRegionPC¶
Returns the ending LooppointRegionPC data structure.
- get_pc_count_pairs() List[PcCountPair]¶
Returns the PC count pairs for the start and end LoopointRegionPCs.
- get_start() LooppointRegionPC¶
Returns the starting LooppointRegionPC data structure.
- to_json() Dict¶
Returns this class in a JSON structure which can then be serialized and later be restored from.
- update_relatives_counts(manager: PcCountTrackerManager, include_start: bool = False) None¶
Updates the relative counts for this simulation region.