ISCA 2024: gem5 Workshop and tutorial
The gem5 Workshop is be an opportunity for members of the gem5 community to give presentations on their contributions to gem5 and gem5-related research. The 7th gem5 tutorial will be held in conjunction with the workshop. The tutorial will provide an introduction to gem5 and its use in research and teaching.
Slides
Useful Links
- Zoom link We will be broadcasting and recording on zoom from 9am-5:30pm Argentina Time
- Join the classroom Do this before creating a codespace!
- Base repository Create a codespace on this repo after joining the classroom!
Key Dates
ISCA dates: June 29th to July 3rd 2024. The conference will be held in Buenos Aires, Argentina.
Presenters
Preliminary outline
We plan for the event to touch upon all major areas of gem5 usage and development and give attendees a solid foundation in which to carry out research with gem5. Where possible we use this event to promote new gem5 features, such as “gem5 Workloads” and new features contained within the latest gem5 release. We intend for this tutorial to conclude with a tutorial on the gem5 GPU models, as this was a common request at previous gem5 tutorial events.
9:00 - 10:00am Getting started with gem5 [ 1h ]
- A short history of gem5.
- Overall (software) architecture of gem5.
- Compiling gem5.
- Introduction to running a gem5 simulation using prebuilt systems.
- First time running gem5 and interpreting the output.
10:00 - 10:20am Coffee break
10:20 - 12pm Building a gem5 simulation using the gem5 standard library (stdlib) [ 1h 40min ]
- Using the stdlib components to build a simulation.
- Using the stdlib ‘Resource’ class to automatically obtain gem5-resources.
- Utilizing gem5 Workloads and Suites
- Creating Syscall-emulation and Full-System simulations
- Simple example to show select statistical outputs.
- Work through examples building SE-mode, FS-mode simulations.
- Introduction to classic and ruby caches
12:00 - 12:30pm ELFies in gem5 [ 30 min ]
12:30 - 1:30pm Lunch break
1:30 - 3:00pm Extending gem5 [ 1h 30min ]
- Structure of C++ code.
- Writing a simple SimObject.
- Creating your own component, extending from the stdlib.
- Running simulations using your SimObject/component.
3:00 - 3:20pm Coffee break
3:20 - 5:30pm Running ML workloads in PyTorch in gem5 [ 2h 10m ]
- How support works in gem5
- Running pre-built example(s)
- Creating checkpoints and restoring from them
- Using parameters to model GPU with higher accuracy