Job Search and Career Advice Platform

Enable job alerts via email!

Creating an Execution-Driven Version of Olympia, the Performance Model of example RISC-V supers[...]

Riscv

Remote

CAD 75,000 - 95,000

Full time

Yesterday
Be an early applicant

Generate a tailored resume in minutes

Land an interview and earn more. Learn more

Job summary

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.

Qualifications

  • Experience in collaborative project work.
  • Knowledge of performance modeling.
  • Ability to design APIs for software integration.

Responsibilities

  • Collaborate with SIG members to fully scope out the project.
  • Develop an understanding of Olympia model and how to build and use it.
  • Design a generic API for EDM based on Whisper PerfAPI and implement the required functionality.
  • 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 to and address multiple iterations of reviewer feedback.
  • Present and discuss work during SIG meetings.

Skills

Collaborative project scoping
Understanding of performance models
API design
Documentation skills
CMake configuration

Education

Relevant degree in Computer Science or similar

Tools

CMake
GitHub
Whisper
Job description

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:
  1. Collaborate with SIG members to fully scope out the project
  2. Develop an understanding of Olympia model and how to build and use
  3. Based on Whisper PerfAPI, design a generic API for EDM and the functionality required to implement it
  4. Add testing for the generic API
  5. Integrate this API into an InstGenerator instance for the functional model
  6. Create a cmake configuration that enables/disables EDM support
  7. Bring in Whisper ISS , build a proxy, and connect to Olympia
  8. Add appropriate documentation
  9. Respond and address multiple iterations of reviewer feedbacks
  10. Present and discuss work during SIG meetings
Coding Challenge:

https://docs.google.com/document/d/1OGsNg9ob1j8tBdjjF8EToDJew66Nu6yLMWuNHyBJwy0/edit?usp=sharing

Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.