2024 Gem5 Workshop: Learning How to Use gem5 to Study Large-Scale Workloads
August 21 ,22
Building 5700 Room L204
A Gem5 workshop will be hosted on August 21 and 22 for ORNL staff/students/contractors. You must have an ORNL badge to attend this workshop.
Compute Resources:
Participants of this workshop need to apply for an account on OLCF’s Odo training system by August 19th.
To do so follow the instructions listed here: https://docs.olcf.ornl.gov/systems/odo_user_guide.html#obtaining-access-to-odo
Abstract: The community-developed gem5 infrastructure is one of the most popular and widely known cycle-level computer architecture simulation systems. gem5 has been cited over 6000 times since the paper was published in 2011 and has been used in 17%-25% of academic papers at the top-tier computer architecture conferences in the past few years. Moreover, it is used in academia and industry for research and used for teaching at universities all over the world, in part because it models a wide set of diverse components including processors of various ISAs, caches, main memory, and network with a high level of microarchitecture fidelity. In particular during DOE’s Exascale FastForward2 program, AMD released support for modeling GPUs executing HPC applications built for the GCN3 ISA. This work laid the foundation for development and prototyping of full-stack GPU optimizations for existing exascale-class HPC systems such as ORNL’s Frontier supercomputer. In this tutorial, we will introduce gem5 simulator, how to use it, and how to use a variety of its important features for prototyping full stack optimizations for large-scale workloads, including the latest AMD MI200 and MI300 ISAs.
Outline:
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.
- Using SST and accelerators à new Matt S.
10:00 – 10:20am Break
10:20 – 11:20am Using the gem5 standard library (stdlib) [1h]
- Using the stdlib components to build a simulation.
- 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
- CPU models with various levels of details, mix and match
11:20 – 12:00pm Tailoring Applications for gem5 [40 min]
- M5ops
- Using gem5 with software pre-releases
12:00 – 1:00pm Lunch break
1:00 – 2:30pm 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.
2:30 – 2:50pm Break
2:50 – 5:00pm Using gem5’s GPU model [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.
Dates and Agenda
- Day 1 August 21: Gem5 Tutorials 9:00 am -5:00 pm EDT
- Day 2 August 22: Gem5 Breakout Meetings 9:00 am -12:00 pm EDT
A detailed agenda will be posted soon.
Presenters
Matt Sinclair, University of Wisconsin-Madison
Brad Beckmann, AMD Senior Technical Staff
Matthew Poremba, AMD Senior Technical Staff
Registration
2024 Gem5 Workshop
If you have any questions please contact Oscar Hernandez Mendoza ([email protected]) and Suzanne Parete-Koon ([email protected]).