diff --git a/configs/example/gem5_library/checkpoints/simpoints-se-restore.py b/configs/example/gem5_library/checkpoints/simpoints-se-restore.py index 82b56b59b9..aacddd7e31 100644 --- a/configs/example/gem5_library/checkpoints/simpoints-se-restore.py +++ b/configs/example/gem5_library/checkpoints/simpoints-se-restore.py @@ -129,7 +129,9 @@ def max_inst(): print("end of warmup, starting to simulate SimPoint") warmed_up = True # Schedule a MAX_INSTS exit event during the simulation - simulator.schedule_max_insts(simpoint.get_simpoint_interval()) + simulator.schedule_max_insts( + board.get_simpoint().get_simpoint_interval() + ) dump() reset() yield False @@ -146,5 +148,5 @@ simulator = Simulator( # is greater than 0. # In here, it schedules an exit event for the first SimPoint's warmup # instructions -simulator.schedule_max_insts(simpoint.get_warmup_list()[0], True) +simulator.schedule_max_insts(board.get_simpoint().get_warmup_list()[0], True) simulator.run() diff --git a/src/python/gem5/components/boards/se_binary_workload.py b/src/python/gem5/components/boards/se_binary_workload.py index 545dc40a39..7713b11f65 100644 --- a/src/python/gem5/components/boards/se_binary_workload.py +++ b/src/python/gem5/components/boards/se_binary_workload.py @@ -123,15 +123,16 @@ class SEBinaryWorkload: # convert input to SimPoint if necessary if isinstance(simpoint, AbstractResource): - simpoint_object = SimPoint(simpoint) + self._simpoint_object = SimPoint(simpoint) else: assert isinstance(simpoint, SimPoint) - simpoint_object = simpoint + self._simpoint_object = simpoint if self.get_processor().get_num_cores() > 1: warn("SimPoints only works with one core") self.get_processor().get_cores()[0].set_simpoint( - inst_starts=simpoint_object.get_simpoint_start_insts(), init=True + inst_starts=self._simpoint_object.get_simpoint_start_insts(), + init=True, ) # Call set_se_binary_workload after SimPoint setup is complete @@ -139,3 +140,12 @@ class SEBinaryWorkload: binary=binary, arguments=arguments, ) + + def get_simpoint(self) -> SimPoint: + """ + Returns the SimPoint object set. If no SimPoint object has been set an + exception is thrown. + """ + if getattr(self, "_simpoint_object", None): + return self._simpoint_object + raise Exception("This board does not have a simpoint set.")