HPCA 2024: gem5 Tutorial
Event archive
The above is a partial recording of the HPCA 2024 gem5 Tutorial, held on March 2nd in Edinburgh, U.K. During the event a technical problem was encountered we lost the recorded video for the tutorial segment after the lunch break. We apologies for this.
Slides: PDF, Powerpoint.
GitHub Repository Used: https://github.com/gem5-hpca-2024/gem5
Event Page
We are happy to announce the gem5 Tutorial, to be co-located with HPCA 2024, in Edinburgh.
The gem5 Tutorial will be held and will focus on teaching those new to gem5 how to use the latest version. It will be a day-long “crash course” in gem5 and assume no prior knowledge of using computer architecture simulators. The tutorial will focus heavily on new features in gem5, such as the gem5 “suites” and other gem5 standard library features, so will be suitable for those who have used gem5 before but wish to refresh their skills.
Please register for this event on the HPCA 2024 event page.
Key Dates
- HPCA Conference: March 2nd to 6th 2024
- Early Registration Deadline: February 2nd 2024
- gem5 Tutorial: March 2nd 2024
Location
The tutorial will be held at the HPCA ‘24’s main venue, the Edinburgh International Conference Centre (EICC).
Preliminary Schedule
Below is a preliminary schedule for the tutorial. It highlights the topics we intend to cover over the course of the day-long event.
- A short history of gem5.
- Overall (software) architecture of gem5.
- Compiling gem5.
- Using SCons and Kconfig.
- Ruby Protocols, ISAs, and other options.
- Introduction to running a gem5 simulation using prebuilt systems
- First time running gem5 and interpreting the output.
- Building a gem5 simulation using stdlib components.
- Simple example to show select statistical outputs.
- Adding
DEBUG
flags to gem5. - SE-mode vs simulations: Pros, cons, Limitations and use-cases.
- Building an FS mode simulation in the stdlib.
- Creating your gem5 SimObject.
- Structure of gem5 C++ code.
- Writing a simple SimObject.
- Creating your own component, extending from the stdlib.
- Running simulations using your SimObject/component.
- Creating your own stdlib compoent.
- Creating your own ISA instruction.
- gem5 Resources
- Binaries, kernels, and disk images.
- Workloads and suites.
- Contributing to gem5.