Fetching the latest programs, projects, and workspace data.
Performance models are essential tools in both academia and industry for analyzing the efficiency of superscalar processor micro-architectural features. Olympia is a widely adopted performance model within the RISC-V community. Performance models can be categorized as either trace-driven or execution-driven. Trace-Driven Models rely on an instruction trace, which is simply a sequence of retired instructions. Execution-Driven Models (EDM), in contrast, use the program binary and associated data. This allows EDMs to simulate not only the sequence of retired instructions but also speculatively fetched and executed instructions resulting from mis-speculations like branch mis-predictions and memory-dependency mispredictions. Consequently, execution-driven simulations offer greater accuracy in prediction. Currently, Olympia only supports trace-driven simulations. The central objective of this project is to develop an execution-driven version of Olympia using an outside functional modeling driver such as Pegasus or Whisper. The Olympia project must remain agnostic to the functional driver of EDM. Specifically, a user of Olympia should be able to provide their own functional model backend to drive EDM. The simulated frontend and backend must remain agnostic to the fact that it is running in EDM. To enable this, a generic API for EDM (virtual interface) must be developed to connect the Olympia model to the driver.
Showing 1 of 1 projects. Click any project card for scope, mentors, and proposal studio.
Performance models are essential tools in both academia and industry for analyzing the efficiency of superscalar processor micro-architectural features. Olympia is a widely adopted performance model within the RISC-V community. Performance models can be categorized as either trace-driven or execution-driven. Trace-Driven Models rely on an instruction trace, which is simply a sequence of retired instructions. Execution-Driven Models (EDM), in contrast, use the program binary and associated data. This allows EDMs to simulate not only the sequence of retired instructions but also speculatively fetched and executed instructions resulting from mis-speculations like branch mis-predictions and memory-dependency mispredictions. Consequently, execution-driven simulations offer greater accuracy in prediction. Currently, Olympia only supports trace-driven simulations. The central objective of this project is to develop an execution-driven version of Olympia using an outside functional modeling driver such as Pegasus or Whisper. The Olympia project must remain agnostic to the functional driver of EDM. Specifically, a user of Olympia should be able to provide their own functional model backend to drive EDM. The simulated frontend and backend must remain agnostic to the fact that it is running in EDM. To enable this, a generic API for EDM (virtual interface) must be developed to connect the Olympia model to the driver.