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.. Repository URLS: https://github.com/riscv-software-src/riscv-perf-model https://github.com/tenstorrent/whisper https://github.com/sparcians/pegasus Further context and background available at: https://github.com/riscv-software-src/riscv-perf-model/issues/14 Learning Objectives: Collaborate with SIG members to fully scope out the project Develop an understanding of Olympia model and how to build and use Based on Whisper PerfAPI, design a generic API for EDM and the functionality required to implement it Add testing for the generic API Integrate this API into an InstGenerator instance for the functional model Create a cmake configuration that enables/disables EDM support Bring in Whisper ISS , build a proxy, and connect to Olympia Add appropriate documentation Respond and address multiple iterations of reviewer feedbacks Present and discuss work during SIG meetings Coding Challenge: https://docs.google.com/document/d/1OGsNg9ob1j8tBdjjF8EToDJew66Nu6yLMWuNHyBJwy0/edit?usp=sharing #J-18808-Ljbffr
Job Title
Creating an Execution-Driven Version of Olympia, the Performance Model of exampl