
Enable job alerts via email!
Generate a tailored resume in minutes
Land an interview and earn more. Learn more
A leading technology organization in Canada is seeking a project collaborator to contribute to the Olympia performance model. The role involves developing an execution-driven version and collaborating with SIG members to scope the project. You will design a generic API for EDM, implement necessary functionalities, conduct testing, and integrate this API into existing models. This position will also require you to manage documentation and address feedback during SIG meetings.
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..
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
https://docs.google.com/document/d/1OGsNg9ob1j8tBdjjF8EToDJew66Nu6yLMWuNHyBJwy0/edit?usp=sharing