gem5.components.boards.se_binary_workload module

class gem5.components.boards.se_binary_workload.SEBinaryWorkload

Bases: object

This class is used to enable simple Syscall-Execution (SE) mode execution of a binary.

For this to function correctly the SEBinaryWorkload class should be added as a superclass to a board (i.e., something that inherits from AbstractBoard).

Note

At present this implementation is limited. A single process is added to all cores as the workload. Therefore, despite allowing for multi-core setups, multi-program workloads are not presently supported.

get_looppoint() Looppoint

Returns the LoopPoint object set. If no LoopPoint object has been set an exception is thrown.

get_simpoint() SimpointResource

Returns the SimpointResorce object set. If no SimpointResource object has been set an exception is thrown.

set_se_binary_workload(binary: BinaryResource, exit_on_work_items: bool = True, stdin_file: FileResource | None = None, stdout_file: Path | None = None, stderr_file: Path | None = None, env_list: List[str] | None = None, arguments: List[str] = [], checkpoint: Path | CheckpointResource | None = None) None

Set up the system to run a specific binary.

Limitations * Dynamically linked executables are partially supported when the host

ISA and the simulated ISA are the same.

Parameters:
  • binary – The resource encapsulating the binary to be run.

  • exit_on_work_items – Whether the simulation should exit on work items. True by default.

  • stdin_file – The input file for the binary

  • stdout_file – The output file for the binary

  • stderr_file – The error output file for the binary

  • env_list – The environment variables defined for the binary

  • arguments – The input arguments for the binary

  • checkpoint – The checkpoint directory. Used to restore the simulation to that checkpoint.

set_se_elfie_workload(elfie: AbstractResource, elfie_info: ELFieInfo, arguments: List[str] = [], checkpoint: Path | AbstractResource | None = None) None

Set up the system to run a ELFie workload.

Limitations * Dynamically linked executables are partially supported when the host

ISA and the simulated ISA are the same.

Parameters:
  • elfie – The resource encapsulating the binary ELFie to be run.

  • elfie_info – The ELFieInfo object that contain all the information for the ELFie.

  • arguments – The input arguments for the binary.

set_se_looppoint_workload(binary: AbstractResource, looppoint: Looppoint, arguments: List[str] = [], checkpoint: Path | AbstractResource | None = None, region_id: str | int | None = 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.

Parameters:
  • binary – The resource encapsulating the binary to be run.

  • looppoint – The LoopPoint object that contain all the information gather from the LoopPoint files and a LoopPointManager that will raise exit events for LoopPoints.

  • arguments – The input arguments for the binary.

  • region_id – If set, will only load the Looppoint region corresponding to that ID.

set_se_simpoint_workload(binary: BinaryResource, arguments: List[str] = [], simpoint: SimpointResource = None, checkpoint: Path | CheckpointResource | None = None) None

Set up the system to run a SimPoint workload.

Limitations * Only supports single threaded applications. * Dynamically linked executables are partially supported when the host

ISA and the simulated ISA are the same.

Warning

SimPoints only works with one core

Parameters:
  • binary – The resource encapsulating the binary to be run.

  • arguments – The input arguments for the binary.

  • simpoint – The SimpointResource that contains the list of SimPoints starting instructions, the list of weights, and the SimPoints interval.

  • checkpoint – The checkpoint directory. Used to restore the simulation to that checkpoint.