Zhantong Qiu has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/67196?usp=email )

Change subject: stdlib: Allow se_binary_workload to setup LoopPoints
......................................................................

stdlib: Allow se_binary_workload to setup LoopPoints

Added a set_se_looppoint_workload function to take in information for
workload and a stdlib LoopPoint object that stores all the information
the workload needed to run the LoopPoint sampling method.
Added a get_looppoint function to return the stdlib LoopPoint object.

Change-Id: I7afc5c4c743256f7df97345f331b6f72b7a5fd07
---
M src/python/gem5/components/boards/se_binary_workload.py
1 file changed, 59 insertions(+), 0 deletions(-)



diff --git a/src/python/gem5/components/boards/se_binary_workload.py b/src/python/gem5/components/boards/se_binary_workload.py
index 8ec112e..253e796 100644
--- a/src/python/gem5/components/boards/se_binary_workload.py
+++ b/src/python/gem5/components/boards/se_binary_workload.py
@@ -27,6 +27,7 @@
 from .abstract_board import AbstractBoard
 from ...resources.resource import AbstractResource
 from gem5.utils.simpoint import SimPoint
+from gem5.utils.looppoint import LoopPoint

 from m5.objects import SEWorkload, Process

@@ -169,3 +170,47 @@
         if getattr(self, "_simpoint_object", None):
             return self._simpoint_object
         raise Exception("This board does not have a simpoint set.")
+
+    def set_se_looppoint_workload(
+        self,
+        binary: AbstractResource,
+        arguments: List[str] = [],
+        looppoint: Optional[Union[AbstractResource, LoopPoint]] = None,
+        checkpoint: Optional[Union[Path, AbstractResource]] = None,
+    ) -> None:
+        """Set up the system to run a LoopPoint workload.
+
+        **Limitations**
+ * Dynamically linked executables are partially supported when the host
+          ISA and the simulated ISA are the same.
+
+        :param binary: The resource encapsulating the binary to be run.
+        :param arguments: The input arguments for the binary
+ :param looppoint: The LoopPoint object that contain all the information + gather from the LoopPoint files and a LoopPointManager that will raise
+        exit events for LoopPoints
+        """
+
+        if isinstance(looppoint, AbstractResource):
+            self._looppoint_object = LoopPoint(looppoint)
+        else:
+            assert isinstance(looppoint, LoopPoint)
+            self._looppoint_object = looppoint
+
+        self._looppoint_object.setup_processor(self.get_processor())
+
+        # Call set_se_binary_workload after LoopPoint setup is complete
+        self.set_se_binary_workload(
+            binary=binary,
+            arguments=arguments,
+            checkpoint=checkpoint,
+        )
+
+    def get_looppoint(self) -> LoopPoint:
+        """
+ Returns the LoopPoint object set. If no LoopPoint object has been set
+        an exception is thrown.
+        """
+        if getattr(self, "_looppoint_object", None):
+            return self._looppoint_object
+        raise Exception("This board does not have a looppoint set.")

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/67196?usp=email To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I7afc5c4c743256f7df97345f331b6f72b7a5fd07
Gerrit-Change-Number: 67196
Gerrit-PatchSet: 1
Gerrit-Owner: Zhantong Qiu <zt...@ucdavis.edu>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org

Reply via email to