From 66e04ca3a60e65dd04004ca9113198371e97ec57 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Thu, 9 May 2024 14:39:14 -0700 Subject: [PATCH 01/69] Update the schedule for 2024 Signed-off-by: Jason Lowe-Power --- index.md | 141 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 109 insertions(+), 32 deletions(-) diff --git a/index.md b/index.md index 1a05ac15..d950146b 100644 --- a/index.md +++ b/index.md @@ -1,36 +1,113 @@ --- layout: index -title: Learning gem5 Bootcamp 2022 +title: Learning gem5 Bootcamp 2024 --- -## Livestream and discussion - -You can find links to all of the livestreamed videos on [YouTube](https://www.youtube.com/playlist?list=PL_hVbFs_loVSaSDPr1RJXP5RRFWjBMqq3). - -Instead of using YouTube comments, we will be using [Slack](https://app.slack.com/client/T03JNC47S2E/C03PJRJ4RQ8) for our discussions. -You can use the following [invite link](https://join.slack.com/t/gem5-workspace/shared_invite/zt-1aal963w6-_cqn0u8QgBh3GeeSi2Ja7g) to enter the slack. -Once you have joined, type `/join-channel bootcamp-2022` in any text box (e.g., in a DM to yourself) to join the bootcamp channel. - -## Tentative schedule - -|Session| Topic | Objectives| -| :--- | :--- | :--- | -| Monday Morning | Welcome and Introduction | | -| | Building gem5 |- Learn about the gem5 dependencies
- Be introduced to SCons
- Understand the different gem5 binary types (opt, debug, fast)| -| | Python basics | - A recap of basic Python skills needed to use gem5
- Object-oriented programming reminder
- Run a simple python script in gem5 | -| | Using gem5 basics | - Understand gem5 configuration scripts and its python interpreter
- Understand what the `m5` and `gem5` libraries are
- Get a general architecture outline of gem5
- Obtain and understand the stats output
- Understand the `config.ini` file | -| | About simulation | - Learn about common gem5 terminology: "host", "guest", etc.
- Learn about the difference between Full-System and Syscall emulation mode | -| Monday Afternoon | The gem5 standard library | - Use the stdlib components to build a simulated system
- Use the stdlib `resource` class to automatically obtain gem5-resources to use in their experiment
- Create a gem5 resource custom resource
- Set workloads for a simulated system via the `set_workload` functions
- Create functions to run on specific exit events
- Create an stdlib component| -| | **Welcome dinner** | | -|Tuesday Morning | Using gem5 models | - Use different gem5 CPU models (Timing Simple, Atomic, O3, Minor, Trace, etc.)
- Use classic caches in a simulation
- Use Ruby caches in a simulation (understand the different coherence protocols, how to compile them and how to create a cache hierarchy via a simple network) | -| | Using gem5 to run things | - Use traffic generators to test memory systems
- Incorporate the m5 utility into workloads
- Learn to use cross-compilers for non-host ISA workloads
- Learn how to output and parse stats| -| Tuesday Afternoon| Full system simulation | - Create a disk image for FS simulations
- Create and add and modify gem5 resources
- Learn how to use the `m5 readfile` interface| -| | Accelerating Simulation | - Create checkpoints
- Load from checkpoints
- Fastforward a simulation
- Employ sampling techniques
- Learn about KVM | -| Wednesday Morning| Creating your own SimObjects| - Understand how a request travels through the system
- Implement a SimObject
- Learn how to model real-world hardware timing
- Learn how to add SimStats and how it maps to real-world hardware
- Debug a gem5 SimObject | -| Wednesday Afternoon| Adding your own instructions| - Understand the details of the ISA sub-system
- Extend gem5 to simulate an unsupported instruction
- Understand the differences between modeling a user-mode and supervisor mode instruction
- Understand gem5 debug traces for a particular execution | -| Thursday Morning | Advanced topics in memory systems | - Learn how to extend a packet with a new MemCmd
- Learn how to use Garnet (How to create different network topologies with specific characteristics; using the Garnet synthetic traffic; and understanding the output statistics)
- Create and extend cache coherence protocols (create a classic coherence protocol; design a Ruby coherence protocol)| -| Thursday Afternoon | The gem5 GPU Model | [TBD] | -| | **Group Social Event** | | -| Friday Morning | Writing tests and contributing to gem5 | - Write a GTest to test a piece of CPP code
- Write a PyUnit test to test a python function
- Use testlib to test a gem5 simulation condition
- Run Testlib/PyUnit/GUnit tests for gem5
- Understand gem5's quick/Kokoro, long/Nightly, very-long/Weekly test structure
- Understand gem5's code-formatting guidelines
- Use git to add code to the repo
- Review patches on Gerrit
- Respond to feedback on Gerrit | -| Friday Afternoon | gem5 extensions and other simulators | - Incorporate SST into a simulation
- Incorporate DRAMSim into a simulation
- Use SystemC in gem5 and gem5 in SystemC | -| | Wrapping things up | | +Welcome to the gem5 Bootcamp! + +As the premier destination for computer architecture enthusiasts and researchers, our bootcamp offers an immersive experience into the world of architectural simulation and modeling. +Whether you're a student eager to learn, a professional looking to sharpen your skills, or a researcher seeking to push the boundaries of technology, the gem5 Bootcamp is your gateway to mastering the gem5 simulator. + +Join us to explore the intricate workings of modern computer systems, engage with experts in the field, and collaborate with peers from around the globe. +With hands-on sessions, in-depth tutorials, and challenging projects, you'll gain practical knowledge and experience that will propel your understanding and innovation in computer architecture. + +Dive into the dynamic world of simulation with the gem5 Bootcamp, and emerge equipped to tackle the computational challenges of tomorrow. + +We also held a [gem5 Bootcamp in 2022](https://gem5bootcamp.github.io/gem5-bootcamp-env/) which you can check out for more information. +Videos from that bootcamp are available [on YouTube](https://www.youtube.com/watch?v=orASbQ02pDw&list=PL_hVbFs_loVSaSDPr1RJXP5RRFWjBMqq3). + +[Register for the 2024 gem5 Bootcamp](https://na.eventscloud.com/ereg/index.php?eventid=799532&){: .btn .btn-lg} + +## Tentative schedule for 2024 + +The bootcamp will be held from July 29th to August 2nd, 2024. +The bootcamp will run from 9am-4pm each day in the [UC Davis Conference Center](https://conferencecenter.ucdavis.edu/). + +**Note: The links on this website are under construction and will be updated as the bootcamp approaches.** + +- **Day 1: Computer architecture and computer architectures simulation 101** + - **Morning:** + - Introduction to computer architecture simulation + - Introduction to gem5 + - Running gem5 + - gem5's input and output + - Python language reminder + - **Afternoon:** + - Exercises with gem5 + - Discussions on research plans and preview the rest of the bootcamp +- **Day 2: gem5 basics** + - **Morning: Configuring and running gem5 with pre-built resources** + - gem5 Standard Library + - Using stdlib components + - Extending stdlib components + - Using the `Simulator` object + - Customizing exit operations + - gem5 Resources + - Using pre-built resources from + - Kinds of resources: disk images, kernels, binaries, workloads, suites + - Creating your own resources + - Using local resources + - Extending disk images (more on FS mode later) + - gem5 basics + - Building gem5, dependencies, SCons + - Understanding gem5's build options + - Available gem5 models + - CPU models + - Memory models + - Cache models + - Device and other models + - **Afternoon: Using gem5 for computer system evaluation** + - Deep dive on inputs to gem5 + - Traffic generators + - Building binaries for gem5 and cross compiling + - Marking regions of interest and the `gem5-bridge` (`m5`) library + - Full system simulation + - Required pieces + - Creating disk images + - `gem5-bridge` application + - Bundling FS resources together into `Workload`s + - **Day 3: Advanced gem5 uses and beginning gem5 development** + - **Morning: Advanced gem5 uses** + - gem5's GPU model + - Introduction to the GPU model + - Requirements for running the GPU model + - GPU resources + - Limitations of the GPU model + - Accelerating simulation + - Fast-fowarding + - KVM-based CPU + - Checkpointing + - Sampling + - **Afternoon: Getting started with gem5 development** + - Getting started with gem5 development and setting up a development environment + - Creating your own `SimObject`s + - Understand how a request travels through the system + - Implement a SimObject + - Learn how to model real-world hardware timing + - Learn how to add SimStats and how it maps to real-world hardware + - Debug a gem5 SimObject + - **Day 4: Advanced gem5 development** + - **Morning: gem5's memory system** + - Learn how to extend a packet with a new MemCmd + - Learn how to use Garnet (How to create different network topologies with specific characteristics; using the Garnet synthetic traffic; and understanding the output statistics) + - Create and extend cache coherence protocols (create a classic coherence protocol; design a Ruby coherence protocol) + - **Afternoon: gem5's execution model and adding new instructions** + - Understand the details of the ISA sub-system + - Extend gem5 to simulate an unsupported instruction + - Understand the differences between modeling a user-mode and supervisor mode instruction + - Understand gem5 debug traces for a particular execution + - **Day 5: Integrations with other simulators and contributing to gem5** + - **Morning: Integrations with other simulators** + - gem5's integration with other simulators + - SystemC in gem5 & gem5 in SystemC + - DRAMSys + - DRAMSim + - gem5 + [SST](https://sst-simulator.org/) + - **Afternoon: Contributing to gem5** + - Overview of gem5 governance model + - Contributing to gem5 + - Understand the gem5 contribution process + - Learn how to write a gem5 patch + - Learn how to review a gem5 patch + - Using git with gem5 + - gem5 testing From 6d125ef869a8cbb6b2b52e9585bad8ba21869142 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Thu, 9 May 2024 15:14:25 -0700 Subject: [PATCH 02/69] Fix indentation in index.md --- index.md | 90 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/index.md b/index.md index d950146b..a102987b 100644 --- a/index.md +++ b/index.md @@ -66,48 +66,48 @@ The bootcamp will run from 9am-4pm each day in the [UC Davis Conference Center]( - Creating disk images - `gem5-bridge` application - Bundling FS resources together into `Workload`s - - **Day 3: Advanced gem5 uses and beginning gem5 development** - - **Morning: Advanced gem5 uses** - - gem5's GPU model - - Introduction to the GPU model - - Requirements for running the GPU model - - GPU resources - - Limitations of the GPU model - - Accelerating simulation - - Fast-fowarding - - KVM-based CPU - - Checkpointing - - Sampling - - **Afternoon: Getting started with gem5 development** - - Getting started with gem5 development and setting up a development environment - - Creating your own `SimObject`s - - Understand how a request travels through the system - - Implement a SimObject - - Learn how to model real-world hardware timing - - Learn how to add SimStats and how it maps to real-world hardware - - Debug a gem5 SimObject - - **Day 4: Advanced gem5 development** - - **Morning: gem5's memory system** - - Learn how to extend a packet with a new MemCmd - - Learn how to use Garnet (How to create different network topologies with specific characteristics; using the Garnet synthetic traffic; and understanding the output statistics) - - Create and extend cache coherence protocols (create a classic coherence protocol; design a Ruby coherence protocol) - - **Afternoon: gem5's execution model and adding new instructions** - - Understand the details of the ISA sub-system - - Extend gem5 to simulate an unsupported instruction - - Understand the differences between modeling a user-mode and supervisor mode instruction - - Understand gem5 debug traces for a particular execution - - **Day 5: Integrations with other simulators and contributing to gem5** - - **Morning: Integrations with other simulators** - - gem5's integration with other simulators - - SystemC in gem5 & gem5 in SystemC - - DRAMSys - - DRAMSim - - gem5 + [SST](https://sst-simulator.org/) - - **Afternoon: Contributing to gem5** - - Overview of gem5 governance model - - Contributing to gem5 - - Understand the gem5 contribution process - - Learn how to write a gem5 patch - - Learn how to review a gem5 patch - - Using git with gem5 - - gem5 testing +- **Day 3: Advanced gem5 uses and beginning gem5 development** + - **Morning: Advanced gem5 uses** + - gem5's GPU model + - Introduction to the GPU model + - Requirements for running the GPU model + - GPU resources + - Limitations of the GPU model + - Accelerating simulation + - Fast-fowarding + - KVM-based CPU + - Checkpointing + - Sampling + - **Afternoon: Getting started with gem5 development** + - Getting started with gem5 development and setting up a development environment + - Creating your own `SimObject`s + - Understand how a request travels through the system + - Implement a SimObject + - Learn how to model real-world hardware timing + - Learn how to add SimStats and how it maps to real-world hardware + - Debug a gem5 SimObject +- **Day 4: Advanced gem5 development** + - **Morning: gem5's memory system** + - Learn how to extend a packet with a new MemCmd + - Learn how to use Garnet (How to create different network topologies with specific characteristics; using the Garnet synthetic traffic; and understanding the output statistics) + - Create and extend cache coherence protocols (create a classic coherence protocol; design a Ruby coherence protocol) + - **Afternoon: gem5's execution model and adding new instructions** + - Understand the details of the ISA sub-system + - Extend gem5 to simulate an unsupported instruction + - Understand the differences between modeling a user-mode and supervisor mode instruction + - Understand gem5 debug traces for a particular execution +- **Day 5: Integrations with other simulators and contributing to gem5** + - **Morning: Integrations with other simulators** + - gem5's integration with other simulators + - SystemC in gem5 & gem5 in SystemC + - DRAMSys + - DRAMSim + - gem5 + [SST](https://sst-simulator.org/) + - **Afternoon: Contributing to gem5** + - Overview of gem5 governance model + - Contributing to gem5 + - Understand the gem5 contribution process + - Learn how to write a gem5 patch + - Learn how to review a gem5 patch + - Using git with gem5 + - gem5 testing From c359495481e7ca580b9c2a308405061fe00395ed Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Thu, 9 May 2024 15:28:14 -0700 Subject: [PATCH 03/69] Revert "Fix indentation in index.md" This reverts commit 6d125ef869a8cbb6b2b52e9585bad8ba21869142. --- index.md | 90 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/index.md b/index.md index a102987b..d950146b 100644 --- a/index.md +++ b/index.md @@ -66,48 +66,48 @@ The bootcamp will run from 9am-4pm each day in the [UC Davis Conference Center]( - Creating disk images - `gem5-bridge` application - Bundling FS resources together into `Workload`s -- **Day 3: Advanced gem5 uses and beginning gem5 development** - - **Morning: Advanced gem5 uses** - - gem5's GPU model - - Introduction to the GPU model - - Requirements for running the GPU model - - GPU resources - - Limitations of the GPU model - - Accelerating simulation - - Fast-fowarding - - KVM-based CPU - - Checkpointing - - Sampling - - **Afternoon: Getting started with gem5 development** - - Getting started with gem5 development and setting up a development environment - - Creating your own `SimObject`s - - Understand how a request travels through the system - - Implement a SimObject - - Learn how to model real-world hardware timing - - Learn how to add SimStats and how it maps to real-world hardware - - Debug a gem5 SimObject -- **Day 4: Advanced gem5 development** - - **Morning: gem5's memory system** - - Learn how to extend a packet with a new MemCmd - - Learn how to use Garnet (How to create different network topologies with specific characteristics; using the Garnet synthetic traffic; and understanding the output statistics) - - Create and extend cache coherence protocols (create a classic coherence protocol; design a Ruby coherence protocol) - - **Afternoon: gem5's execution model and adding new instructions** - - Understand the details of the ISA sub-system - - Extend gem5 to simulate an unsupported instruction - - Understand the differences between modeling a user-mode and supervisor mode instruction - - Understand gem5 debug traces for a particular execution -- **Day 5: Integrations with other simulators and contributing to gem5** - - **Morning: Integrations with other simulators** - - gem5's integration with other simulators - - SystemC in gem5 & gem5 in SystemC - - DRAMSys - - DRAMSim - - gem5 + [SST](https://sst-simulator.org/) - - **Afternoon: Contributing to gem5** - - Overview of gem5 governance model - - Contributing to gem5 - - Understand the gem5 contribution process - - Learn how to write a gem5 patch - - Learn how to review a gem5 patch - - Using git with gem5 - - gem5 testing + - **Day 3: Advanced gem5 uses and beginning gem5 development** + - **Morning: Advanced gem5 uses** + - gem5's GPU model + - Introduction to the GPU model + - Requirements for running the GPU model + - GPU resources + - Limitations of the GPU model + - Accelerating simulation + - Fast-fowarding + - KVM-based CPU + - Checkpointing + - Sampling + - **Afternoon: Getting started with gem5 development** + - Getting started with gem5 development and setting up a development environment + - Creating your own `SimObject`s + - Understand how a request travels through the system + - Implement a SimObject + - Learn how to model real-world hardware timing + - Learn how to add SimStats and how it maps to real-world hardware + - Debug a gem5 SimObject + - **Day 4: Advanced gem5 development** + - **Morning: gem5's memory system** + - Learn how to extend a packet with a new MemCmd + - Learn how to use Garnet (How to create different network topologies with specific characteristics; using the Garnet synthetic traffic; and understanding the output statistics) + - Create and extend cache coherence protocols (create a classic coherence protocol; design a Ruby coherence protocol) + - **Afternoon: gem5's execution model and adding new instructions** + - Understand the details of the ISA sub-system + - Extend gem5 to simulate an unsupported instruction + - Understand the differences between modeling a user-mode and supervisor mode instruction + - Understand gem5 debug traces for a particular execution + - **Day 5: Integrations with other simulators and contributing to gem5** + - **Morning: Integrations with other simulators** + - gem5's integration with other simulators + - SystemC in gem5 & gem5 in SystemC + - DRAMSys + - DRAMSim + - gem5 + [SST](https://sst-simulator.org/) + - **Afternoon: Contributing to gem5** + - Overview of gem5 governance model + - Contributing to gem5 + - Understand the gem5 contribution process + - Learn how to write a gem5 patch + - Learn how to review a gem5 patch + - Using git with gem5 + - gem5 testing From af8e82c377a50534c483e77dc6092c476b7c9c6d Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Thu, 9 May 2024 15:30:36 -0700 Subject: [PATCH 04/69] Fix indentation errors in index.md --- index.md | 88 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/index.md b/index.md index d950146b..fbeec014 100644 --- a/index.md +++ b/index.md @@ -66,48 +66,48 @@ The bootcamp will run from 9am-4pm each day in the [UC Davis Conference Center]( - Creating disk images - `gem5-bridge` application - Bundling FS resources together into `Workload`s - - **Day 3: Advanced gem5 uses and beginning gem5 development** - - **Morning: Advanced gem5 uses** - - gem5's GPU model - - Introduction to the GPU model - - Requirements for running the GPU model - - GPU resources - - Limitations of the GPU model - - Accelerating simulation - - Fast-fowarding - - KVM-based CPU - - Checkpointing - - Sampling - - **Afternoon: Getting started with gem5 development** - - Getting started with gem5 development and setting up a development environment - - Creating your own `SimObject`s - - Understand how a request travels through the system - - Implement a SimObject - - Learn how to model real-world hardware timing - - Learn how to add SimStats and how it maps to real-world hardware - - Debug a gem5 SimObject - - **Day 4: Advanced gem5 development** - - **Morning: gem5's memory system** - - Learn how to extend a packet with a new MemCmd - - Learn how to use Garnet (How to create different network topologies with specific characteristics; using the Garnet synthetic traffic; and understanding the output statistics) - - Create and extend cache coherence protocols (create a classic coherence protocol; design a Ruby coherence protocol) - - **Afternoon: gem5's execution model and adding new instructions** - - Understand the details of the ISA sub-system - - Extend gem5 to simulate an unsupported instruction - - Understand the differences between modeling a user-mode and supervisor mode instruction - - Understand gem5 debug traces for a particular execution - - **Day 5: Integrations with other simulators and contributing to gem5** - - **Morning: Integrations with other simulators** - - gem5's integration with other simulators - - SystemC in gem5 & gem5 in SystemC - - DRAMSys - - DRAMSim +- **Day 3: Advanced gem5 uses and beginning gem5 development** + - **Morning: Advanced gem5 uses** + - gem5's GPU model + - Introduction to the GPU model + - Requirements for running the GPU model + - GPU resources + - Limitations of the GPU model + - Accelerating simulation + - Fast-fowarding + - KVM-based CPU + - Checkpointing + - Sampling + - **Afternoon: Getting started with gem5 development** + - Getting started with gem5 development and setting up a development environment + - Creating your own `SimObject`s + - Understand how a request travels through the system + - Implement a SimObject + - Learn how to model real-world hardware timing + - Learn how to add SimStats and how it maps to real-world hardware + - Debug a gem5 SimObject +- **Day 4: Advanced gem5 development** + - **Morning: gem5's memory system** + - Learn how to extend a packet with a new MemCmd + - Learn how to use Garnet (How to create different network topologies with specific characteristics; using the Garnet synthetic traffic; and understanding the output statistics) + - Create and extend cache coherence protocols (create a classic coherence protocol; design a Ruby coherence protocol) +- **Afternoon: gem5's execution model and adding new instructions** + - Understand the details of the ISA sub-system + - Extend gem5 to simulate an unsupported instruction + - Understand the differences between modeling a user-mode and supervisor mode instruction + - Understand gem5 debug traces for a particular execution +- **Day 5: Integrations with other simulators and contributing to gem5** + - **Morning: Integrations with other simulators** + - gem5's integration with other simulators + - SystemC in gem5 & gem5 in SystemC + - DRAMSys + - DRAMSim - gem5 + [SST](https://sst-simulator.org/) - - **Afternoon: Contributing to gem5** - - Overview of gem5 governance model - - Contributing to gem5 - - Understand the gem5 contribution process - - Learn how to write a gem5 patch - - Learn how to review a gem5 patch - - Using git with gem5 - - gem5 testing + - **Afternoon: Contributing to gem5** + - Overview of gem5 governance model + - Contributing to gem5 + - Understand the gem5 contribution process + - Learn how to write a gem5 patch + - Learn how to review a gem5 patch + - Using git with gem5 + - gem5 testing From d5d2e643082eb0df2fd1c7da113da11887e4b109 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Thu, 9 May 2024 15:32:23 -0700 Subject: [PATCH 05/69] Move acceleration to Day 2 --- index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/index.md b/index.md index fbeec014..df973313 100644 --- a/index.md +++ b/index.md @@ -66,6 +66,11 @@ The bootcamp will run from 9am-4pm each day in the [UC Davis Conference Center]( - Creating disk images - `gem5-bridge` application - Bundling FS resources together into `Workload`s + - Accelerating simulation + - Fast-fowarding + - KVM-based CPU + - Checkpointing + - Sampling - **Day 3: Advanced gem5 uses and beginning gem5 development** - **Morning: Advanced gem5 uses** - gem5's GPU model @@ -73,11 +78,6 @@ The bootcamp will run from 9am-4pm each day in the [UC Davis Conference Center]( - Requirements for running the GPU model - GPU resources - Limitations of the GPU model - - Accelerating simulation - - Fast-fowarding - - KVM-based CPU - - Checkpointing - - Sampling - **Afternoon: Getting started with gem5 development** - Getting started with gem5 development and setting up a development environment - Creating your own `SimObject`s From 6fc594e6726f4c4df0884bf1272c817ffe606569 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Fri, 10 May 2024 11:17:46 -0700 Subject: [PATCH 06/69] Fix title of course and description for 2024 Signed-off-by: Jason Lowe-Power --- _data/course.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_data/course.yml b/_data/course.yml index 55f10b49..ec6631c3 100644 --- a/_data/course.yml +++ b/_data/course.yml @@ -1,3 +1,3 @@ -title: "gem5 Bootcamp 2022" -description: "gem5 Bootcamp Summer 2022 at UC Davis offered by the Davis Computer Architecture Research Group" +title: "gem5 Bootcamp" +description: "gem5 Bootcamp Summer 2024 at UC Davis offered by the Davis Computer Architecture Research Group" modules: ["Introduction", "Using gem5", "Developing gem5 models", "Extra topics"] From 54df6d521e3dbeee62c68f473c9d25a8fcd37bf2 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Fri, 10 May 2024 13:28:51 -0700 Subject: [PATCH 07/69] Try to change link to register color Signed-off-by: Jason Lowe-Power --- index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.md b/index.md index df973313..bff649ee 100644 --- a/index.md +++ b/index.md @@ -16,7 +16,7 @@ Dive into the dynamic world of simulation with the gem5 Bootcamp, and emerge equ We also held a [gem5 Bootcamp in 2022](https://gem5bootcamp.github.io/gem5-bootcamp-env/) which you can check out for more information. Videos from that bootcamp are available [on YouTube](https://www.youtube.com/watch?v=orASbQ02pDw&list=PL_hVbFs_loVSaSDPr1RJXP5RRFWjBMqq3). -[Register for the 2024 gem5 Bootcamp](https://na.eventscloud.com/ereg/index.php?eventid=799532&){: .btn .btn-lg} +[Register for the 2024 gem5 Bootcamp](https://na.eventscloud.com/ereg/index.php?eventid=799532&){: .btn .btn-lg .btn-secondary .btn-outline-primary} ## Tentative schedule for 2024 From 9758135e132a0757b30077d68b1818c5b79449f5 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Fri, 10 May 2024 13:31:26 -0700 Subject: [PATCH 08/69] Move button and change color Signed-off-by: Jason Lowe-Power --- index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.md b/index.md index bff649ee..91d5f051 100644 --- a/index.md +++ b/index.md @@ -5,6 +5,8 @@ title: Learning gem5 Bootcamp 2024 Welcome to the gem5 Bootcamp! +[Register for the 2024 gem5 Bootcamp](https://na.eventscloud.com/ereg/index.php?eventid=799532&){: .btn .btn-lg .btn-primary} + As the premier destination for computer architecture enthusiasts and researchers, our bootcamp offers an immersive experience into the world of architectural simulation and modeling. Whether you're a student eager to learn, a professional looking to sharpen your skills, or a researcher seeking to push the boundaries of technology, the gem5 Bootcamp is your gateway to mastering the gem5 simulator. @@ -16,8 +18,6 @@ Dive into the dynamic world of simulation with the gem5 Bootcamp, and emerge equ We also held a [gem5 Bootcamp in 2022](https://gem5bootcamp.github.io/gem5-bootcamp-env/) which you can check out for more information. Videos from that bootcamp are available [on YouTube](https://www.youtube.com/watch?v=orASbQ02pDw&list=PL_hVbFs_loVSaSDPr1RJXP5RRFWjBMqq3). -[Register for the 2024 gem5 Bootcamp](https://na.eventscloud.com/ereg/index.php?eventid=799532&){: .btn .btn-lg .btn-secondary .btn-outline-primary} - ## Tentative schedule for 2024 The bootcamp will be held from July 29th to August 2nd, 2024. From 0ca58a5bedd7855a3984b809c3b7cd2618e4a9dc Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Fri, 10 May 2024 13:45:32 -0700 Subject: [PATCH 09/69] Add info for when the registration for 3/5 days run Signed-off-by: Jason Lowe-Power --- index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/index.md b/index.md index 91d5f051..d7af2d80 100644 --- a/index.md +++ b/index.md @@ -23,6 +23,9 @@ Videos from that bootcamp are available [on YouTube](https://www.youtube.com/wat The bootcamp will be held from July 29th to August 2nd, 2024. The bootcamp will run from 9am-4pm each day in the [UC Davis Conference Center](https://conferencecenter.ucdavis.edu/). +The full five day registration runs Monday-Friday. +The three day registration runs Tuesday-Thursday. + **Note: The links on this website are under construction and will be updated as the bootcamp approaches.** - **Day 1: Computer architecture and computer architectures simulation 101** From 6b635b4f9d760c82d1edf862a0e9b876d34ca95d Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 18 Jun 2024 09:53:52 -0700 Subject: [PATCH 10/69] misc: Update gem5 and gem5-resources repos to stable Signed-off-by: Jason Lowe-Power --- gem5 | 2 +- gem5-resources | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gem5 b/gem5 index a1007311..af72b9ba 160000 --- a/gem5 +++ b/gem5 @@ -1 +1 @@ -Subproject commit a10073119ecdb95961d92f734cc0f5fd7c49adba +Subproject commit af72b9ba580546ac12ce05bfaac3fd53fa8699f4 diff --git a/gem5-resources b/gem5-resources index c30d1d60..56169c06 160000 --- a/gem5-resources +++ b/gem5-resources @@ -1 +1 @@ -Subproject commit c30d1d60457cf19504272d4ce02e79b3c1c5ace1 +Subproject commit 56169c06b99e7a1f167787bbaaf02b65e7f5b933 From 6fcb2c74862aedbb14b6ad2465eab1e12fa62f09 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 18 Jun 2024 09:54:05 -0700 Subject: [PATCH 11/69] misc: Updates to readme Signed-off-by: Jason Lowe-Power --- README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index f58ab055..23fc1baa 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ +# gem5 bootcamp environment + This repository has been designed for use in gem5 tutorials. + It has been built with the assumption users will utilize [Codespaces](https://github.com/features/codespaces) to learn gem5. The repository contains the following directories: @@ -13,19 +16,19 @@ gem5-resources which may be used with v22.0 of gem5. * modules: Source for the accompying website: https://gem5bootcamp.github.io/gem5-bootcamp-env The website contains links to slides, presentation videos, and notes for the tutorials. -**Note:** 'gem5' and 'gem5-resources' are submodules though the [.devcontainer/devcontainer.json](.devcontainer/devcontainer.json) file specifies that a `git module update --init --recursive` command is executed when the Codespace Docker container is created. +**Note:** 'gem5' and 'gem5-resources' are submodules though the [.devcontainer/devcontainer.json](.devcontainer/devcontainer.json) file specifies that a `git submodule update --init --recursive` command is executed when the Codespace Docker container is created. The container used by Codespaces is built from [.devcontainer/Dockerfile](.devcontainer/Dockerfile). It contains: * All gem5 dependencies (inc. optional dependencies). * Prebuilt gem5 binaries: - - `/usr/local/bin/gem5-x86` - - `/usr/local/bin/gem5-arm` - - `/usr/local/bin/gem5-riscv` + * `/usr/local/bin/gem5-x86` + * `/usr/local/bin/gem5-arm` + * `/usr/local/bin/gem5-riscv` * A RISCV64 and an AARCH64 GNU cross-compiler: - * RISCV64 GNU cross-compiler found in `/opt/cross-compiler/riscv64-linux/`. - * AARCH64 GNU cross-compiler found in `/opt/cross-compiler/aarch64-linux/`. + * RISCV64 GNU cross-compiler found in `/opt/cross-compiler/riscv64-linux/`. + * AARCH64 GNU cross-compiler found in `/opt/cross-compiler/aarch64-linux/`. ## Beginners' example From 2a13225839d940e69bf8153509a02f45d7d2c9d1 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 18 Jun 2024 15:22:17 -0700 Subject: [PATCH 12/69] misc: Updated devcontainer Signed-off-by: Jason Lowe-Power --- .devcontainer/devcontainer.json | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index dd37a47e..fcbe916c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,17 +1,19 @@ { "hostRequirements": { - "cpus": 16, + "cpus": 2, "memory": "8gb", "storage": "32gb" }, "build": { "dockerfile": "Dockerfile" }, "onCreateCommand" : "bash ./.devcontainer/on_create.sh", - "runArgs": ["--privileged", "-v", "/var/run/docker.sock:/var/run/docker.sock", "--security-opt", "seccomp=unconfined"], - "extensions": [ - "ms-vscode.cpptools", - "streetsidesoftware.code-spell-checker", - "eamodio.gitlens", - "ms-python.vscode-pylance", - "ms-python.python" - ] + "customizations": { + "vscode": { + "extensions": [ + "ms-vscode.cpptools", + "streetsidesoftware.code-spell-checker", + "ms-python.vscode-pylance", + "ms-python.python" + ] + } + } } From fceeb186e60fb9e12b3d979ad9414da0087cc5e6 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 18 Jun 2024 15:29:57 -0700 Subject: [PATCH 13/69] bootcamp: Update gem5 remotes to github Signed-off-by: Jason Lowe-Power --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 4d79aeaa..ee09c2b5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "gem5"] path = gem5 - url = https://gem5.googlesource.com/public/gem5 + url = https://github.com/gem5/gem5 [submodule "gem5-resources"] path = gem5-resources - url = https://gem5.googlesource.com/public/gem5-resources + url = https://github.com/gem5/gem5-resources From 9bbfe2647b901204a3ee1a522fa97b888adbfb6d Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 18 Jun 2024 15:37:39 -0700 Subject: [PATCH 14/69] misc: Update devcontainer based on upstream gem5 Signed-off-by: Jason Lowe-Power --- .devcontainer/Dockerfile | 10 ---------- .devcontainer/devcontainer.json | 33 ++++++++++++++++++++++++--------- .devcontainer/on_create.sh | 13 +++++-------- 3 files changed, 29 insertions(+), 27 deletions(-) delete mode 100644 .devcontainer/Dockerfile diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index 3f37cff8..00000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM gcr.io/gem5-test/gem5-tutorial-env:latest - -RUN apt update -y && apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common -RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - -RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" - -RUN apt-get update && apt-get -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin - -# "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ -# $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index fcbe916c..cc2b6183 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,19 +1,34 @@ { + "name": "gem5 Development Container", + "image": "ghcr.io/gem5/devcontainer:latest", "hostRequirements": { "cpus": 2, - "memory": "8gb", + "memory": "16gb", "storage": "32gb" - }, - "build": { "dockerfile": "Dockerfile" }, - "onCreateCommand" : "bash ./.devcontainer/on_create.sh", + }, "customizations": { "vscode": { "extensions": [ - "ms-vscode.cpptools", - "streetsidesoftware.code-spell-checker", + "GitHub.copilot", + "GitHub.copilot-chat", + "GitHub.vscode-pull-request-github", + "ms-python.debugpy", + "ms-python.isort", + "ms-python.python", "ms-python.vscode-pylance", - "ms-python.python" + "ms-vscode.cpptools", + "ms-vscode.cpptools-extension-pack", + "ms-vscode.cpptools-themes", + "ms-vscode.makefile-tools", + "Tsinghua-Hexin-Joint-Institute.gem5-slicc" ] } - } -} + }, + "features": { + "ghcr.io/devcontainers/features/docker-in-docker:2": {}, + "ghcr.io/devcontainers/features/github-cli:1": {}, + "ghcr.io/devcontainers-contrib/features/actionlint:1": {}, + "ghcr.io/devcontainers-contrib/features/vscode-cli:1": {} + }, + "onCreateCommand": "./.devcontainer/on-create.sh" +} \ No newline at end of file diff --git a/.devcontainer/on_create.sh b/.devcontainer/on_create.sh index a8dcb7fa..473a747b 100755 --- a/.devcontainer/on_create.sh +++ b/.devcontainer/on_create.sh @@ -3,15 +3,8 @@ # Update the submodules git submodule update --init --recursive -# Create the stubs -gem5-arm gem5_stubgen.py -gem5-x86 gem5_stubgen.py -gem5-riscv gem5_stubgen.py - -mv out typings - # Setups the gem5 source directory -cd gem5 +pushd gem5 ## We cleanup git's 'blame' feature by ignoring certain commits (typically ## commits that have reformatted files) @@ -19,3 +12,7 @@ git config --global blame.ignoreRevsFile .git-blame-ignore-revs ## `git pull` should rebase by default git config --global pull.rebase true + +./util/pre-commit-install.sh + +popd # gem5 \ No newline at end of file From bdee5557e5c473886f4572e827752e70dde6a0ab Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Wed, 19 Jun 2024 14:35:59 -0700 Subject: [PATCH 15/69] misc: Fix devcontainer oncreate command Signed-off-by: Jason Lowe-Power --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index cc2b6183..a6cbd6dc 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -30,5 +30,5 @@ "ghcr.io/devcontainers-contrib/features/actionlint:1": {}, "ghcr.io/devcontainers-contrib/features/vscode-cli:1": {} }, - "onCreateCommand": "./.devcontainer/on-create.sh" + "onCreateCommand": "./.devcontainer/on_create.sh" } \ No newline at end of file From 8669ff4b0fb97b611e946e3581e865fadbbb5521 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Wed, 19 Jun 2024 14:36:17 -0700 Subject: [PATCH 16/69] misc: Sync gem5 and gem5-resources repo Signed-off-by: Jason Lowe-Power --- gem5 | 2 +- gem5-resources | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gem5 b/gem5 index af72b9ba..e03a5f78 160000 --- a/gem5 +++ b/gem5 @@ -1 +1 @@ -Subproject commit af72b9ba580546ac12ce05bfaac3fd53fa8699f4 +Subproject commit e03a5f78d1bd3cc900f4f2d8791e112f8cf397d1 diff --git a/gem5-resources b/gem5-resources index 56169c06..97532302 160000 --- a/gem5-resources +++ b/gem5-resources @@ -1 +1 @@ -Subproject commit 56169c06b99e7a1f167787bbaaf02b65e7f5b933 +Subproject commit 97532302648721db4e6988102bd6a617d8f326d8 From a2a1f5f23c646d65113ecc45c735923bba7758db Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 17 Jun 2024 09:54:24 -0700 Subject: [PATCH 17/69] misc: reduce core requirement in devcontainer There's no real requirement for 16 cores, so reduce the core count down to 1. Note that if you want to build gem5, you probably need to configure your codespace with more cores. --- .devcontainer/devcontainer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index a6cbd6dc..d7203593 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,9 +2,9 @@ "name": "gem5 Development Container", "image": "ghcr.io/gem5/devcontainer:latest", "hostRequirements": { - "cpus": 2, - "memory": "16gb", - "storage": "32gb" + "cpus": 1, + "memory": "8gb", + "storage": "64gb" }, "customizations": { "vscode": { From cea1a0e83e8ebec18f2e8e1992686a8cd374e6c9 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 17 Jun 2024 09:55:32 -0700 Subject: [PATCH 18/69] misc: remove gitlens from extensions --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d7203593..877bae3f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -31,4 +31,4 @@ "ghcr.io/devcontainers-contrib/features/vscode-cli:1": {} }, "onCreateCommand": "./.devcontainer/on_create.sh" -} \ No newline at end of file +} From 1b30d2d00ee9731ad4829c68e49d80abe93b99ac Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 24 Jun 2024 18:07:27 +0000 Subject: [PATCH 19/69] misc: Use ISCA devcontainer --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 877bae3f..dae3c323 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "gem5 Development Container", - "image": "ghcr.io/gem5/devcontainer:latest", + "image": "ghcr.io/gem5/devcontainer:isca2024", "hostRequirements": { "cpus": 1, "memory": "8gb", From 2606cec74a5e4cb9f57d85f0a63a2e23783b8295 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 24 Jun 2024 19:15:18 +0000 Subject: [PATCH 20/69] misc: Update readme --- README.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 23fc1baa..d88d16d3 100644 --- a/README.md +++ b/README.md @@ -7,25 +7,25 @@ It has been built with the assumption users will utilize [Codespaces](https://gi The repository contains the following directories: * [docker](docker) : -The source code for the Docker image used by [.devcontainer/Dockerfile](.devcontainer/Dockerfile) to create the Codespace Docker container. +The source code for the Docker image used by the [Dockerfile](gem5/util/dockerfiles/devcontainer/Dockerfile) to create the Codespace Docker container. * gem5 : -v22.0.0.1 of gem5. +v24.0.0.0 of gem5. (Staging branch for now.) * gem5-resources : -gem5-resources which may be used with v22.0 of gem5. +gem5-resources which may be used with v24.0 of gem5. * materials: Example materials used as part of the tutorial. -* modules: Source for the accompying website: https://gem5bootcamp.github.io/gem5-bootcamp-env +* modules: Source for the accompanying website: (This link is not up to date.) The website contains links to slides, presentation videos, and notes for the tutorials. **Note:** 'gem5' and 'gem5-resources' are submodules though the [.devcontainer/devcontainer.json](.devcontainer/devcontainer.json) file specifies that a `git submodule update --init --recursive` command is executed when the Codespace Docker container is created. -The container used by Codespaces is built from [.devcontainer/Dockerfile](.devcontainer/Dockerfile). +The container used by Codespaces is built from [Dockerfile](gem5/util/dockerfiles/devcontainer/Dockerfile). It contains: * All gem5 dependencies (inc. optional dependencies). * Prebuilt gem5 binaries: - * `/usr/local/bin/gem5-x86` - * `/usr/local/bin/gem5-arm` - * `/usr/local/bin/gem5-riscv` + * `/usr/local/bin/gem5` (gem5 ALL ISAs with CHI protocol) + * `/usr/local/bin/gem5-default` (default gem5 ALL build with MESI_Two_Level) + * `/usr/local/bin/gem5-vega` (x86-only with GPU protocol) * A RISCV64 and an AARCH64 GNU cross-compiler: * RISCV64 GNU cross-compiler found in `/opt/cross-compiler/riscv64-linux/`. * AARCH64 GNU cross-compiler found in `/opt/cross-compiler/aarch64-linux/`. @@ -35,7 +35,7 @@ It contains: The following can be used within the Codespace container to run a basic gem5 simulation straight away: ``` -gem5-arm gem5/configs/example/gem5_library/arm-hello.py +gem5 gem5/configs/example/gem5_library/arm-hello.py ``` This will execute a "Hello world!" program inside a simulated ARM system. @@ -44,12 +44,13 @@ This will execute a "Hello world!" program inside a simulated ARM system. In this project we have two submodules: 'gem5' and 'gem5-resources'. These are automatically obtained when the codespaces is initialized. -At the time of writing the 'gem5' directory is checked out to the stable branch at v22.0.0.1. -The 'gem5-resources' repository is checkoued out to revision '871e715', which should contain resources with known compatibility with gem5 v22.0. +At the time of writing the 'gem5' directory is checked out to the stable branch at v24.0.0.0. +The 'gem5-resources' repository is checked out to revision '97532302', which should contain resources with known compatibility with gem5 v24.0. -To update the git submodules to be in-sync with their remote origins (that hosted on our [googlesource](https://gem5.googlesource.com)), execute the following command: +To update the git submodules to be in-sync with their remote origins (that hosted on our [GitHub](https://github.com/gem5/gem5)), execute the following command: ```sh +git submodule sync # Only needed if submodule remotes changed git submodule update --remote ``` @@ -61,7 +62,7 @@ git commit -m "git submodules updated" git push ``` -## Best practises +## Best practices ### Using branches From b6135d813821310527d154faa0bf0300919e5213 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 24 Jun 2024 19:54:40 +0000 Subject: [PATCH 21/69] misc: Add link to pyproject file in gem5 Signed-off-by: Jason Lowe-Power --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) create mode 120000 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 120000 index 00000000..9e533bb1 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1 @@ +gem5/pyproject.toml \ No newline at end of file From b30df7e335106dc694a3882aee8253bbf20a4b93 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 24 Jun 2024 20:00:15 +0000 Subject: [PATCH 22/69] misc: Update gem5 to staging branch Signed-off-by: Jason Lowe-Power --- gem5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gem5 b/gem5 index e03a5f78..79a0a2a1 160000 --- a/gem5 +++ b/gem5 @@ -1 +1 @@ -Subproject commit e03a5f78d1bd3cc900f4f2d8791e112f8cf397d1 +Subproject commit 79a0a2a15f44135919ba96bae6bdd15e211f976c From c48135e4714e644a3d3b599d7637ae4ef6f29621 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 24 Jun 2024 20:03:27 +0000 Subject: [PATCH 23/69] materials: Start adding ISCA materials Signed-off-by: Jason Lowe-Power --- materials/isca24/01-basic.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 materials/isca24/01-basic.py diff --git a/materials/isca24/01-basic.py b/materials/isca24/01-basic.py new file mode 100644 index 00000000..6d180e74 --- /dev/null +++ b/materials/isca24/01-basic.py @@ -0,0 +1,4 @@ +from gem5.prebuilt.demo.x86_demo_board import X86DemoBoard +from gem5.resources.resource import obtain_resource +from gem5.simulate.simulator import Simulator + From 125a88ace6eadda848e8a53e9d720ac35af428c9 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 25 Jun 2024 21:04:40 +0000 Subject: [PATCH 24/69] misc: Update gem5 to latest staging Signed-off-by: Jason Lowe-Power --- gem5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gem5 b/gem5 index 79a0a2a1..faa18576 160000 --- a/gem5 +++ b/gem5 @@ -1 +1 @@ -Subproject commit 79a0a2a15f44135919ba96bae6bdd15e211f976c +Subproject commit faa18576f26d9474f3e4d68005638ca30741ffeb From 0508d80f71f386a8f8c1b1a4d85d6b2be6a55cac Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 25 Jun 2024 21:05:10 +0000 Subject: [PATCH 25/69] misc: Update gem5-resources to latest stable Signed-off-by: Jason Lowe-Power --- gem5-resources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gem5-resources b/gem5-resources index 97532302..6734bb49 160000 --- a/gem5-resources +++ b/gem5-resources @@ -1 +1 @@ -Subproject commit 97532302648721db4e6988102bd6a617d8f326d8 +Subproject commit 6734bb4940dd90f3b7c0349eedeefcf3ee405938 From 30b0acebca572f60c3fb6f8899b62ab169c9a992 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 25 Jun 2024 21:05:43 +0000 Subject: [PATCH 26/69] misc: Update devcontainer with black Signed-off-by: Jason Lowe-Power --- .devcontainer/devcontainer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index dae3c323..c329a3c7 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -20,7 +20,8 @@ "ms-vscode.cpptools-extension-pack", "ms-vscode.cpptools-themes", "ms-vscode.makefile-tools", - "Tsinghua-Hexin-Joint-Institute.gem5-slicc" + "Tsinghua-Hexin-Joint-Institute.gem5-slicc", + "ms-python.black-formatter" ] } }, From 0269818dcca8644525884f56cefb5c81ec1bc3e2 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 25 Jun 2024 21:08:47 +0000 Subject: [PATCH 27/69] misc: update default vscode settings Signed-off-by: Jason Lowe-Power --- .vscode/settings.json | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b8371e21..10acd13a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,12 +1,8 @@ { - "python.formatting.provider": "black", - "python.analysis.stubPath": "typings", "python.analysis.extraPaths": ["gem5/src/python"], - "python.formatting.blackArgs": [ - "--line-length", - "79" - ], "editor.rulers": [ 79 - ] + ], + "files.trimTrailingWhitespace": true, + "files.insertFinalNewline": true } From 7c98a2b483d49b565fbbbcd8ae2db29f53c5358c Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 25 Jun 2024 21:09:12 +0000 Subject: [PATCH 28/69] materials: Working on isca scripts Signed-off-by: Jason Lowe-Power --- materials/isca24/01-basic.py | 5 +++ materials/isca24/02-simple.py | 50 +++++++++++++++++++++++++++ materials/isca24/03-exit-events.py | 55 ++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 materials/isca24/02-simple.py create mode 100644 materials/isca24/03-exit-events.py diff --git a/materials/isca24/01-basic.py b/materials/isca24/01-basic.py index 6d180e74..7160ffa1 100644 --- a/materials/isca24/01-basic.py +++ b/materials/isca24/01-basic.py @@ -2,3 +2,8 @@ from gem5.resources.resource import obtain_resource from gem5.simulate.simulator import Simulator +board = X86DemoBoard() +board.set_workload(obtain_resource("x86-ubuntu-24.04-boot-no-systemd")) + +simulator = Simulator(board=board) +simulator.run(100_000_000_000) diff --git a/materials/isca24/02-simple.py b/materials/isca24/02-simple.py new file mode 100644 index 00000000..0f3c7d56 --- /dev/null +++ b/materials/isca24/02-simple.py @@ -0,0 +1,50 @@ +from gem5.components.boards.simple_board import SimpleBoard +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 +from gem5.components.processors.simple_processor import SimpleProcessor +from gem5.components.cachehierarchies.classic.private_l1_shared_l2_cache_hierarchy import ( + PrivateL1SharedL2CacheHierarchy, +) +# from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( +# MESITwoLevelCacheHierarchy, +# ) +from gem5.components.processors.cpu_types import CPUTypes +from gem5.isas import ISA +from gem5.simulate.simulator import Simulator +from gem5.resources.resource import obtain_resource + +simple_in_order_core = SimpleProcessor( + cpu_type=CPUTypes.TIMING, num_cores=1, isa=ISA.X86 +) + +main_memory = SingleChannelDDR4_2400(size="2GB") + +# caches = MESITwoLevelCacheHierarchy( +# l1d_size="32KiB", +# l1d_assoc=8, +# l1i_size="32KiB", +# l1i_assoc=8, +# l2_size="256KiB", +# l2_assoc=16, +# num_l2_banks=1, +# ) + +caches = PrivateL1SharedL2CacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="256KiB", + l2_assoc=16, +) + +board = SimpleBoard( + processor=simple_in_order_core, + memory=main_memory, + cache_hierarchy=caches, + clk_freq="3GHz", +) + +board.set_workload(obtain_resource("x86-hello64-static")) + +simulator = Simulator(board) +simulator.run() diff --git a/materials/isca24/03-exit-events.py b/materials/isca24/03-exit-events.py new file mode 100644 index 00000000..0f74a9b9 --- /dev/null +++ b/materials/isca24/03-exit-events.py @@ -0,0 +1,55 @@ +from gem5.components.boards.simple_board import SimpleBoard +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 +from gem5.components.processors.simple_processor import SimpleProcessor +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) +from gem5.components.processors.cpu_types import CPUTypes +from gem5.isas import ISA +from gem5.simulate.simulator import Simulator +from gem5.resources.resource import obtain_resource +from gem5.simulate.exit_event import ExitEvent +import m5 + +simple_in_order_core = SimpleProcessor( + cpu_type=CPUTypes.TIMING, num_cores=1, isa=ISA.X86 +) + +main_memory = SingleChannelDDR4_2400(size="2GB") + +caches = MESITwoLevelCacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="256KiB", + l2_assoc=16, + num_l2_banks=1, +) + +board = SimpleBoard( + processor=simple_in_order_core, + memory=main_memory, + cache_hierarchy=caches, + clk_freq="3GHz", +) + +board.set_workload(obtain_resource("x86-npb-is-size-s-run")) + +def on_work_begin(): + print("Work begin") + m5.stats.reset() + yield False # Do not exit + +def on_work_end(): + print("Work end") + yield True # Exit the simulation + +simulator = Simulator( + board=board, + on_exit_event={ + ExitEvent.WORKBEGIN: on_work_begin, + ExitEvent.WORKEND: on_work_end + } +) +simulator.run() \ No newline at end of file From ae484c5e1b04e9ee960f66c15da9fd6b5b90c7c2 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 25 Jun 2024 21:49:52 +0000 Subject: [PATCH 29/69] materials: Finish up 01-basic.py Signed-off-by: Jason Lowe-Power --- materials/isca24/01-basic.py | 6 ------ materials/isca24/completed/01-basic.py | 9 +++++++++ 2 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 materials/isca24/completed/01-basic.py diff --git a/materials/isca24/01-basic.py b/materials/isca24/01-basic.py index 7160ffa1..112fa731 100644 --- a/materials/isca24/01-basic.py +++ b/materials/isca24/01-basic.py @@ -1,9 +1,3 @@ from gem5.prebuilt.demo.x86_demo_board import X86DemoBoard from gem5.resources.resource import obtain_resource from gem5.simulate.simulator import Simulator - -board = X86DemoBoard() -board.set_workload(obtain_resource("x86-ubuntu-24.04-boot-no-systemd")) - -simulator = Simulator(board=board) -simulator.run(100_000_000_000) diff --git a/materials/isca24/completed/01-basic.py b/materials/isca24/completed/01-basic.py new file mode 100644 index 00000000..b2c4b10d --- /dev/null +++ b/materials/isca24/completed/01-basic.py @@ -0,0 +1,9 @@ +from gem5.prebuilt.demo.x86_demo_board import X86DemoBoard +from gem5.resources.resource import obtain_resource +from gem5.simulate.simulator import Simulator + +board = X86DemoBoard() +board.set_workload(obtain_resource("x86-ubuntu-24.04-boot-no-systemd")) + +simulator = Simulator(board=board) +simulator.run(20_000_000_000) From 08793a6ed9d5ff461a55571051842452379e0653 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Wed, 26 Jun 2024 16:53:27 +0000 Subject: [PATCH 30/69] materials: More isca 24 materials Signed-off-by: Jason Lowe-Power --- materials/isca24/01-basic.py | 5 ++ materials/isca24/02-components.py | 19 +++++ materials/isca24/03-exit-events.py | 32 +++----- materials/isca24/03-processor.py | 61 ++++++++++++++ materials/isca24/0n-se-binary-resource.py | 5 ++ materials/isca24/completed/01-basic.py | 5 ++ materials/isca24/completed/02-components.py | 45 +++++++++++ materials/isca24/{ => completed}/02-simple.py | 35 ++++---- materials/isca24/completed/03-processor.py | 79 +++++++++++++++++++ 9 files changed, 246 insertions(+), 40 deletions(-) create mode 100644 materials/isca24/02-components.py create mode 100644 materials/isca24/03-processor.py create mode 100644 materials/isca24/0n-se-binary-resource.py create mode 100644 materials/isca24/completed/02-components.py rename materials/isca24/{ => completed}/02-simple.py (72%) create mode 100644 materials/isca24/completed/03-processor.py diff --git a/materials/isca24/01-basic.py b/materials/isca24/01-basic.py index 112fa731..bbe7ac71 100644 --- a/materials/isca24/01-basic.py +++ b/materials/isca24/01-basic.py @@ -1,3 +1,8 @@ +""" +This will start Linux boot on X86DemoBoard and run for 20 billion cycles. +Used as a very simple example. +""" + from gem5.prebuilt.demo.x86_demo_board import X86DemoBoard from gem5.resources.resource import obtain_resource from gem5.simulate.simulator import Simulator diff --git a/materials/isca24/02-components.py b/materials/isca24/02-components.py new file mode 100644 index 00000000..17bd329f --- /dev/null +++ b/materials/isca24/02-components.py @@ -0,0 +1,19 @@ +""" +This will build a Ruby/CHI based system to run a simple x86 SE mode workload. +IS takes about 20 seconds. +""" + +from gem5.components.boards.simple_board import SimpleBoard +from gem5.components.cachehierarchies.classic.private_l1_shared_l2_cache_hierarchy import ( + PrivateL1SharedL2CacheHierarchy, +) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 + +from gem5.components.processors.cpu_types import CPUTypes +from gem5.components.processors.simple_processor import SimpleProcessor +from gem5.isas import ISA + +from gem5.resources.resource import obtain_resource + +from gem5.simulate.simulator import Simulator + diff --git a/materials/isca24/03-exit-events.py b/materials/isca24/03-exit-events.py index 0f74a9b9..f7480f05 100644 --- a/materials/isca24/03-exit-events.py +++ b/materials/isca24/03-exit-events.py @@ -1,8 +1,8 @@ from gem5.components.boards.simple_board import SimpleBoard from gem5.components.memory.single_channel import SingleChannelDDR4_2400 from gem5.components.processors.simple_processor import SimpleProcessor -from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( - MESITwoLevelCacheHierarchy, +from gem5.components.cachehierarchies.chi.private_l1_cache_hierarchy import ( + PrivateL1CacheHierarchy ) from gem5.components.processors.cpu_types import CPUTypes from gem5.isas import ISA @@ -17,14 +17,9 @@ main_memory = SingleChannelDDR4_2400(size="2GB") -caches = MESITwoLevelCacheHierarchy( - l1d_size="32KiB", - l1d_assoc=8, - l1i_size="32KiB", - l1i_assoc=8, - l2_size="256KiB", - l2_assoc=16, - num_l2_banks=1, +caches = PrivateL1CacheHierarchy( + size = "128KiB", + assoc = 8, ) board = SimpleBoard( @@ -34,22 +29,19 @@ clk_freq="3GHz", ) -board.set_workload(obtain_resource("x86-npb-is-size-s-run")) +board.set_se_binary_workload( + binary=obtain_resource("x86-m5-exit") +) -def on_work_begin(): - print("Work begin") +def on_exit(): + print("Work exit!") m5.stats.reset() yield False # Do not exit -def on_work_end(): - print("Work end") - yield True # Exit the simulation - simulator = Simulator( board=board, on_exit_event={ - ExitEvent.WORKBEGIN: on_work_begin, - ExitEvent.WORKEND: on_work_end + ExitEvent.EXIT: on_exit, } ) -simulator.run() \ No newline at end of file +simulator.run() diff --git a/materials/isca24/03-processor.py b/materials/isca24/03-processor.py new file mode 100644 index 00000000..f1c38a44 --- /dev/null +++ b/materials/isca24/03-processor.py @@ -0,0 +1,61 @@ +""" +Script with a specialized O3 CPU +""" + +from gem5.components.boards.simple_board import SimpleBoard +from gem5.components.cachehierarchies.classic.private_l1_shared_l2_cache_hierarchy import ( + PrivateL1SharedL2CacheHierarchy, +) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 +from gem5.resources.resource import obtain_resource +from gem5.simulate.simulator import Simulator + +from gem5.components.processors.base_cpu_core import BaseCPUCore +from gem5.components.processors.base_cpu_processor import BaseCPUProcessor + +from m5.objects import X86O3CPU +from m5.objects import TournamentBP + +class MyOutOfOrderCore(BaseCPUCore): + def __init__(self, width, rob_size, num_int_regs, num_fp_regs): + pass + +class MyOutOfOrderProcessor(BaseCPUProcessor): + def __init__(self, width, rob_size, num_int_regs, num_fp_regs): + """ + :param width: sets the width of fetch, decode, raname, issue, wb, and + commit stages. + :param rob_size: determine the number of entries in the reorder buffer. + :param num_int_regs: determines the size of the integer register file. + :param num_int_regs: determines the size of the vector/floating point + register file. + """ + pass + + +main_memory = SingleChannelDDR4_2400(size="2GB") + +caches = PrivateL1SharedL2CacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="256KiB", + l2_assoc=16, +) + +my_ooo_processor = MyOutOfOrderProcessor( + width=8, rob_size=192, num_int_regs=256, num_fp_regs=256 +) + +board = SimpleBoard( + processor=my_ooo_processor, + memory=main_memory, + cache_hierarchy=caches, + clk_freq="3GHz", +) + +board.set_workload(obtain_resource("x86-npb-is-size-s-run")) + +simulator = Simulator(board) +simulator.run() diff --git a/materials/isca24/0n-se-binary-resource.py b/materials/isca24/0n-se-binary-resource.py new file mode 100644 index 00000000..7f63ab51 --- /dev/null +++ b/materials/isca24/0n-se-binary-resource.py @@ -0,0 +1,5 @@ + + +board.set_se_binary_resource( + +("x86-hello64-static")) diff --git a/materials/isca24/completed/01-basic.py b/materials/isca24/completed/01-basic.py index b2c4b10d..298a06d8 100644 --- a/materials/isca24/completed/01-basic.py +++ b/materials/isca24/completed/01-basic.py @@ -1,3 +1,8 @@ +""" +This will start Linux boot on X86DemoBoard and run for 20 billion cycles. +Used as a very simple example. +""" + from gem5.prebuilt.demo.x86_demo_board import X86DemoBoard from gem5.resources.resource import obtain_resource from gem5.simulate.simulator import Simulator diff --git a/materials/isca24/completed/02-components.py b/materials/isca24/completed/02-components.py new file mode 100644 index 00000000..62b6ef6f --- /dev/null +++ b/materials/isca24/completed/02-components.py @@ -0,0 +1,45 @@ +""" +This will build a Ruby/CHI based system to run a simple x86 SE mode workload. +IS takes about 20 seconds. +""" + +from gem5.components.boards.simple_board import SimpleBoard +from gem5.components.cachehierarchies.classic.private_l1_shared_l2_cache_hierarchy import ( + PrivateL1SharedL2CacheHierarchy, +) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 + +from gem5.components.processors.cpu_types import CPUTypes +from gem5.components.processors.simple_processor import SimpleProcessor +from gem5.isas import ISA + +from gem5.resources.resource import obtain_resource + +from gem5.simulate.simulator import Simulator + +main_memory = SingleChannelDDR4_2400(size="2GB") + +caches = PrivateL1SharedL2CacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="256KiB", + l2_assoc=16, +) + +simple_in_order_core = SimpleProcessor( + cpu_type=CPUTypes.TIMING, num_cores=1, isa=ISA.X86 +) + +board = SimpleBoard( + processor=simple_in_order_core, + memory=main_memory, + cache_hierarchy=caches, + clk_freq="3GHz", +) + +board.set_workload(obtain_resource("x86-npb-is-size-s-run")) + +simulator = Simulator(board) +simulator.run() diff --git a/materials/isca24/02-simple.py b/materials/isca24/completed/02-simple.py similarity index 72% rename from materials/isca24/02-simple.py rename to materials/isca24/completed/02-simple.py index 0f3c7d56..62b6ef6f 100644 --- a/materials/isca24/02-simple.py +++ b/materials/isca24/completed/02-simple.py @@ -1,33 +1,24 @@ +""" +This will build a Ruby/CHI based system to run a simple x86 SE mode workload. +IS takes about 20 seconds. +""" + from gem5.components.boards.simple_board import SimpleBoard -from gem5.components.memory.single_channel import SingleChannelDDR4_2400 -from gem5.components.processors.simple_processor import SimpleProcessor from gem5.components.cachehierarchies.classic.private_l1_shared_l2_cache_hierarchy import ( PrivateL1SharedL2CacheHierarchy, ) -# from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( -# MESITwoLevelCacheHierarchy, -# ) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 + from gem5.components.processors.cpu_types import CPUTypes +from gem5.components.processors.simple_processor import SimpleProcessor from gem5.isas import ISA -from gem5.simulate.simulator import Simulator + from gem5.resources.resource import obtain_resource -simple_in_order_core = SimpleProcessor( - cpu_type=CPUTypes.TIMING, num_cores=1, isa=ISA.X86 -) +from gem5.simulate.simulator import Simulator main_memory = SingleChannelDDR4_2400(size="2GB") -# caches = MESITwoLevelCacheHierarchy( -# l1d_size="32KiB", -# l1d_assoc=8, -# l1i_size="32KiB", -# l1i_assoc=8, -# l2_size="256KiB", -# l2_assoc=16, -# num_l2_banks=1, -# ) - caches = PrivateL1SharedL2CacheHierarchy( l1d_size="32KiB", l1d_assoc=8, @@ -37,6 +28,10 @@ l2_assoc=16, ) +simple_in_order_core = SimpleProcessor( + cpu_type=CPUTypes.TIMING, num_cores=1, isa=ISA.X86 +) + board = SimpleBoard( processor=simple_in_order_core, memory=main_memory, @@ -44,7 +39,7 @@ clk_freq="3GHz", ) -board.set_workload(obtain_resource("x86-hello64-static")) +board.set_workload(obtain_resource("x86-npb-is-size-s-run")) simulator = Simulator(board) simulator.run() diff --git a/materials/isca24/completed/03-processor.py b/materials/isca24/completed/03-processor.py new file mode 100644 index 00000000..4a7d95c1 --- /dev/null +++ b/materials/isca24/completed/03-processor.py @@ -0,0 +1,79 @@ +""" +Script with a specialized O3 CPU +""" + +from gem5.components.boards.simple_board import SimpleBoard +from gem5.components.cachehierarchies.classic.private_l1_shared_l2_cache_hierarchy import ( + PrivateL1SharedL2CacheHierarchy, +) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 +from gem5.resources.resource import obtain_resource +from gem5.simulate.simulator import Simulator +from gem5.isas import ISA + +from gem5.components.processors.base_cpu_core import BaseCPUCore +from gem5.components.processors.base_cpu_processor import BaseCPUProcessor + +from m5.objects import X86O3CPU +from m5.objects import TournamentBP + +class MyOutOfOrderCore(BaseCPUCore): + def __init__(self, width, rob_size, num_int_regs, num_fp_regs): + super().__init__(X86O3CPU(), ISA.X86) + self.core.fetchWidth = width + self.core.decodeWidth = width + self.core.renameWidth = width + self.core.issueWidth = width + self.core.wbWidth = width + self.core.commitWidth = width + + self.core.numROBEntries = rob_size + + self.core.numPhysIntRegs = num_int_regs + self.core.numPhysFloatRegs = num_fp_regs + + self.core.branchPred = TournamentBP() + + self.core.LQEntries = 128 + self.core.SQEntries = 128 + +class MyOutOfOrderProcessor(BaseCPUProcessor): + def __init__(self, width, rob_size, num_int_regs, num_fp_regs): + """ + :param width: sets the width of fetch, decode, raname, issue, wb, and + commit stages. + :param rob_size: determine the number of entries in the reorder buffer. + :param num_int_regs: determines the size of the integer register file. + :param num_int_regs: determines the size of the vector/floating point + register file. + """ + cores = [MyOutOfOrderCore(width, rob_size, num_int_regs, num_fp_regs)] + super().__init__(cores) + + +main_memory = SingleChannelDDR4_2400(size="2GB") + +caches = PrivateL1SharedL2CacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="256KiB", + l2_assoc=16, +) + +my_ooo_processor = MyOutOfOrderProcessor( + width=8, rob_size=192, num_int_regs=256, num_fp_regs=256 +) + +board = SimpleBoard( + processor=my_ooo_processor, + memory=main_memory, + cache_hierarchy=caches, + clk_freq="3GHz", +) + +board.set_workload(obtain_resource("x86-npb-is-size-s-run")) + +simulator = Simulator(board) +simulator.run() From d0dd52a5baa8b06b9101b8a9b2a0565789b788ce Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Wed, 26 Jun 2024 19:54:15 +0000 Subject: [PATCH 31/69] materials: Adding more ISCA materials Signed-off-by: Jason Lowe-Power --- .gitignore | 1 + materials/isca24/04-kvm.py | 85 ++++++++++++++ materials/isca24/05-fs-npb.py | 87 ++++++++++++++ materials/isca24/06-npb-checkpoint.py | 86 ++++++++++++++ materials/isca24/06-npb-restore.py | 100 ++++++++++++++++ materials/isca24/completed/04-kvm.py | 88 ++++++++++++++ materials/isca24/completed/05-fs-npb.py | 109 ++++++++++++++++++ .../isca24/completed/06-npb-checkpoint.py | 98 ++++++++++++++++ materials/isca24/completed/06-npb-restore.py | 102 ++++++++++++++++ 9 files changed, 756 insertions(+) create mode 100644 materials/isca24/04-kvm.py create mode 100644 materials/isca24/05-fs-npb.py create mode 100644 materials/isca24/06-npb-checkpoint.py create mode 100644 materials/isca24/06-npb-restore.py create mode 100644 materials/isca24/completed/04-kvm.py create mode 100644 materials/isca24/completed/05-fs-npb.py create mode 100644 materials/isca24/completed/06-npb-checkpoint.py create mode 100644 materials/isca24/completed/06-npb-restore.py diff --git a/.gitignore b/.gitignore index 77a3b25a..df65fa0a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # Ignore all m5out directories and build directories **/m5out/ +**/checkpoint/ # Jekyll stuff _site/ diff --git a/materials/isca24/04-kvm.py b/materials/isca24/04-kvm.py new file mode 100644 index 00000000..01538fb4 --- /dev/null +++ b/materials/isca24/04-kvm.py @@ -0,0 +1,85 @@ +""" +Simple example to play around with KVM +""" + +from gem5.coherence_protocol import CoherenceProtocol +from gem5.components.boards.x86_board import X86Board +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 +from gem5.components.processors.cpu_types import CPUTypes +from gem5.components.processors.simple_switchable_processor import ( + SimpleSwitchableProcessor, +) +from gem5.isas import ISA +from gem5.resources.resource import obtain_resource +from gem5.simulate.exit_event import ExitEvent +from gem5.simulate.simulator import Simulator +from gem5.utils.requires import requires + +# This simulation requires using KVM with gem5 compiled for X86 simulation +# and with MESI_Two_Level cache coherence protocol. +requires( + isa_required=ISA.X86, + coherence_protocol_required=CoherenceProtocol.MESI_TWO_LEVEL, + kvm_required=True, +) + +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) + +cache_hierarchy = MESITwoLevelCacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="512KiB", + l2_assoc=16, + num_l2_banks=1, +) + +# Main memory +memory = SingleChannelDDR4_2400(size="3GiB") + +# This is a switchable CPU. We first boot Ubuntu using KVM, then the guest +# will exit the simulation by calling "m5 exit" (see the `command` variable +# below, which contains the command to be run in the guest after booting). +# Upon exiting from the simulation, the Exit Event handler will switch the +# CPU type (see the ExitEvent.EXIT line below, which contains a map to +# a function to be called when an exit event happens). +processor = SimpleSwitchableProcessor( + starting_core_type=CPUTypes.KVM, + switch_core_type=CPUTypes.TIMING, + isa=ISA.X86, + num_cores=1, +) + +# Here we tell the KVM CPU (the starting CPU) not to use perf. +for proc in processor.start: + proc.core.usePerf = False + +# Here we setup the board. The X86Board allows for Full-System X86 simulations. +board = X86Board( + clk_freq="3GHz", + processor=processor, + memory=memory, + cache_hierarchy=cache_hierarchy, +) + +workload = obtain_resource("x86-ubuntu-24.04-boot-with-systemd") +board.set_workload(workload) +board.append_kernel_arg("interactive=true") # don't execute default script + +def on_exit(): + pass + +simulator = Simulator( + board=board, + on_exit_event={ + ExitEvent.EXIT: on_exit(), + }, +) + +simulator.run() diff --git a/materials/isca24/05-fs-npb.py b/materials/isca24/05-fs-npb.py new file mode 100644 index 00000000..b40420a5 --- /dev/null +++ b/materials/isca24/05-fs-npb.py @@ -0,0 +1,87 @@ +""" +Simple example to play around with KVM +""" + +from gem5.coherence_protocol import CoherenceProtocol +from gem5.components.boards.x86_board import X86Board +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 +from gem5.components.processors.cpu_types import CPUTypes +from gem5.components.processors.simple_switchable_processor import ( + SimpleSwitchableProcessor, +) +from gem5.isas import ISA +from gem5.resources.resource import obtain_resource +from gem5.simulate.exit_event import ExitEvent +from gem5.simulate.simulator import Simulator +from gem5.utils.requires import requires +import m5 + +# This simulation requires using KVM with gem5 compiled for X86 simulation +# and with MESI_Two_Level cache coherence protocol. +requires( + isa_required=ISA.X86, + coherence_protocol_required=CoherenceProtocol.MESI_TWO_LEVEL, + kvm_required=True, +) + +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) + +cache_hierarchy = MESITwoLevelCacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="512KiB", + l2_assoc=16, + num_l2_banks=1, +) + +# Main memory +memory = SingleChannelDDR4_2400(size="3GiB") + +# This is a switchable CPU. We first boot Ubuntu using KVM, then the guest +# will exit the simulation by calling "m5 exit" (see the `command` variable +# below, which contains the command to be run in the guest after booting). +# Upon exiting from the simulation, the Exit Event handler will switch the +# CPU type (see the ExitEvent.EXIT line below, which contains a map to +# a function to be called when an exit event happens). +processor = SimpleSwitchableProcessor( + starting_core_type=CPUTypes.KVM, + switch_core_type=CPUTypes.TIMING, + isa=ISA.X86, + num_cores=1, +) + +# Here we tell the KVM CPU (the starting CPU) not to use perf. +for proc in processor.start: + proc.core.usePerf = False + +# Here we setup the board. The X86Board allows for Full-System X86 simulations. +board = X86Board( + clk_freq="3GHz", + processor=processor, + memory=memory, + cache_hierarchy=cache_hierarchy, +) + +board.set_workload() + +def on_exit(): + print("Exiting the simulation for kernel boot") + yield False + print("Exiting the simulation for systemd complete") + yield False + +simulator = Simulator( + board=board, + on_exit_event={ + ExitEvent.EXIT: on_exit(), + }, +) + +simulator.run() diff --git a/materials/isca24/06-npb-checkpoint.py b/materials/isca24/06-npb-checkpoint.py new file mode 100644 index 00000000..e8c60b0e --- /dev/null +++ b/materials/isca24/06-npb-checkpoint.py @@ -0,0 +1,86 @@ +""" +Simple example to play around with KVM +""" + +from gem5.coherence_protocol import CoherenceProtocol +from gem5.components.boards.x86_board import X86Board +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 +from gem5.components.processors.cpu_types import CPUTypes +from gem5.components.processors.simple_switchable_processor import ( + SimpleSwitchableProcessor, +) +from gem5.isas import ISA +from gem5.resources.resource import obtain_resource +from gem5.simulate.exit_event import ExitEvent +from gem5.simulate.simulator import Simulator +from gem5.utils.requires import requires +import m5 + +# This simulation requires using KVM with gem5 compiled for X86 simulation +# and with MESI_Two_Level cache coherence protocol. +requires( + isa_required=ISA.X86, + coherence_protocol_required=CoherenceProtocol.MESI_TWO_LEVEL, + kvm_required=True, +) + +from gem5.components.cachehierarchies.classic.private_l1_shared_l2_cache_hierarchy import ( + PrivateL1SharedL2CacheHierarchy, +) + +caches = PrivateL1SharedL2CacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="256KiB", + l2_assoc=16, +) + +# Main memory +memory = SingleChannelDDR4_2400(size="3GiB") + +# This is a switchable CPU. We first boot Ubuntu using KVM, then the guest +# will exit the simulation by calling "m5 exit" (see the `command` variable +# below, which contains the command to be run in the guest after booting). +# Upon exiting from the simulation, the Exit Event handler will switch the +# CPU type (see the ExitEvent.EXIT line below, which contains a map to +# a function to be called when an exit event happens). +processor = SimpleSwitchableProcessor( + starting_core_type=CPUTypes.KVM, + switch_core_type=CPUTypes.TIMING, + isa=ISA.X86, + num_cores=1, +) + +# Here we tell the KVM CPU (the starting CPU) not to use perf. +for proc in processor.start: + proc.core.usePerf = False + +# Here we setup the board. The X86Board allows for Full-System X86 simulations. +board = X86Board( + clk_freq="3GHz", + processor=processor, + memory=memory, + cache_hierarchy=caches, +) + +board.set_workload(obtain_resource("x86-ubuntu-24.04-npb-is-s-run")) + +def on_exit(): + print("Exiting the simulation for kernel boot") + yield False + print("Exiting the simulation for systemd complete") + print("Checkpointing") + +simulator = Simulator( + board=board, + on_exit_event={ + ExitEvent.EXIT: on_exit(), + }, +) + +simulator.run() diff --git a/materials/isca24/06-npb-restore.py b/materials/isca24/06-npb-restore.py new file mode 100644 index 00000000..669c2462 --- /dev/null +++ b/materials/isca24/06-npb-restore.py @@ -0,0 +1,100 @@ +""" +Simple example to play around with KVM +""" + +from gem5.coherence_protocol import CoherenceProtocol +from gem5.components.boards.x86_board import X86Board +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 +from gem5.components.processors.cpu_types import CPUTypes +from gem5.components.processors.simple_switchable_processor import ( + SimpleSwitchableProcessor, +) +from gem5.isas import ISA +from gem5.resources.resource import obtain_resource, CheckpointResource +from gem5.simulate.exit_event import ExitEvent +from gem5.simulate.simulator import Simulator +from gem5.utils.requires import requires +import m5 + +# This simulation requires using KVM with gem5 compiled for X86 simulation +# and with MESI_Two_Level cache coherence protocol. +requires( + isa_required=ISA.X86, + coherence_protocol_required=CoherenceProtocol.MESI_TWO_LEVEL, + kvm_required=True, +) + +from gem5.components.cachehierarchies.classic.private_l1_shared_l2_cache_hierarchy import ( + PrivateL1SharedL2CacheHierarchy, +) + +caches = PrivateL1SharedL2CacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="256KiB", + l2_assoc=16, +) + +# Main memory +memory = SingleChannelDDR4_2400(size="3GiB") + +# This is a switchable CPU. We first boot Ubuntu using KVM, then the guest +# will exit the simulation by calling "m5 exit" (see the `command` variable +# below, which contains the command to be run in the guest after booting). +# Upon exiting from the simulation, the Exit Event handler will switch the +# CPU type (see the ExitEvent.EXIT line below, which contains a map to +# a function to be called when an exit event happens). +processor = SimpleSwitchableProcessor( + starting_core_type=CPUTypes.KVM, + switch_core_type=CPUTypes.TIMING, + isa=ISA.X86, + num_cores=1, +) + +# Here we tell the KVM CPU (the starting CPU) not to use perf. +for proc in processor.start: + proc.core.usePerf = False + +# Here we setup the board. The X86Board allows for Full-System X86 simulations. +board = X86Board( + clk_freq="3GHz", + processor=processor, + memory=memory, + cache_hierarchy=caches, +) + +board.set_kernel_disk_workload( + kernel=obtain_resource("x86-linux-kernel-5.4.0-105-generic"), + disk_image=obtain_resource("x86-ubuntu-24.04-npb-img"), + kernel_args=[ + "earlyprintk=ttyS0", + "console=ttyS0", + "lpj=7999923", + "root=/dev/sda2" + ], +) + +def on_work_begin(): + print("Work begin. Switching to detailed CPU") + m5.stats.reset() + processor.switch() + yield False + +def on_work_end(): + print("Work end") + yield True + +simulator = Simulator( + board=board, + on_exit_event={ + ExitEvent.WORKBEGIN: on_work_begin(), + ExitEvent.WORKEND: on_work_end(), + }, +) + +simulator.run() diff --git a/materials/isca24/completed/04-kvm.py b/materials/isca24/completed/04-kvm.py new file mode 100644 index 00000000..ca285fab --- /dev/null +++ b/materials/isca24/completed/04-kvm.py @@ -0,0 +1,88 @@ +""" +Simple example to play around with KVM +""" + +from gem5.coherence_protocol import CoherenceProtocol +from gem5.components.boards.x86_board import X86Board +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 +from gem5.components.processors.cpu_types import CPUTypes +from gem5.components.processors.simple_switchable_processor import ( + SimpleSwitchableProcessor, +) +from gem5.isas import ISA +from gem5.resources.resource import obtain_resource +from gem5.simulate.exit_event import ExitEvent +from gem5.simulate.simulator import Simulator +from gem5.utils.requires import requires + +# This simulation requires using KVM with gem5 compiled for X86 simulation +# and with MESI_Two_Level cache coherence protocol. +requires( + isa_required=ISA.X86, + coherence_protocol_required=CoherenceProtocol.MESI_TWO_LEVEL, + kvm_required=True, +) + +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) + +cache_hierarchy = MESITwoLevelCacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="512KiB", + l2_assoc=16, + num_l2_banks=1, +) + +# Main memory +memory = SingleChannelDDR4_2400(size="3GiB") + +# This is a switchable CPU. We first boot Ubuntu using KVM, then the guest +# will exit the simulation by calling "m5 exit" (see the `command` variable +# below, which contains the command to be run in the guest after booting). +# Upon exiting from the simulation, the Exit Event handler will switch the +# CPU type (see the ExitEvent.EXIT line below, which contains a map to +# a function to be called when an exit event happens). +processor = SimpleSwitchableProcessor( + starting_core_type=CPUTypes.KVM, + switch_core_type=CPUTypes.TIMING, + isa=ISA.X86, + num_cores=1, +) + +# Here we tell the KVM CPU (the starting CPU) not to use perf. +for proc in processor.start: + proc.core.usePerf = False + +# Here we setup the board. The X86Board allows for Full-System X86 simulations. +board = X86Board( + clk_freq="3GHz", + processor=processor, + memory=memory, + cache_hierarchy=cache_hierarchy, +) + +workload = obtain_resource("x86-ubuntu-24.04-boot-with-systemd") +board.set_workload(workload) +board.append_kernel_arg("interactive=true") # don't execute default script + +def on_exit(): + print("Exiting the simulation for kernel boot") + yield False + print("Exiting the simulation for systemd complete") + yield False + +simulator = Simulator( + board=board, + on_exit_event={ + ExitEvent.EXIT: on_exit(), + }, +) + +simulator.run() diff --git a/materials/isca24/completed/05-fs-npb.py b/materials/isca24/completed/05-fs-npb.py new file mode 100644 index 00000000..7b328955 --- /dev/null +++ b/materials/isca24/completed/05-fs-npb.py @@ -0,0 +1,109 @@ +""" +Simple example to play around with KVM +""" + +from gem5.coherence_protocol import CoherenceProtocol +from gem5.components.boards.x86_board import X86Board +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 +from gem5.components.processors.cpu_types import CPUTypes +from gem5.components.processors.simple_switchable_processor import ( + SimpleSwitchableProcessor, +) +from gem5.isas import ISA +from gem5.resources.resource import obtain_resource +from gem5.simulate.exit_event import ExitEvent +from gem5.simulate.simulator import Simulator +from gem5.utils.requires import requires +import m5 + +# This simulation requires using KVM with gem5 compiled for X86 simulation +# and with MESI_Two_Level cache coherence protocol. +requires( + isa_required=ISA.X86, + coherence_protocol_required=CoherenceProtocol.MESI_TWO_LEVEL, + kvm_required=True, +) + +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) + +cache_hierarchy = MESITwoLevelCacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="512KiB", + l2_assoc=16, + num_l2_banks=1, +) + +# Main memory +memory = SingleChannelDDR4_2400(size="3GiB") + +# This is a switchable CPU. We first boot Ubuntu using KVM, then the guest +# will exit the simulation by calling "m5 exit" (see the `command` variable +# below, which contains the command to be run in the guest after booting). +# Upon exiting from the simulation, the Exit Event handler will switch the +# CPU type (see the ExitEvent.EXIT line below, which contains a map to +# a function to be called when an exit event happens). +processor = SimpleSwitchableProcessor( + starting_core_type=CPUTypes.KVM, + switch_core_type=CPUTypes.TIMING, + isa=ISA.X86, + num_cores=1, +) + +# Here we tell the KVM CPU (the starting CPU) not to use perf. +for proc in processor.start: + proc.core.usePerf = False + +# Here we setup the board. The X86Board allows for Full-System X86 simulations. +board = X86Board( + clk_freq="3GHz", + processor=processor, + memory=memory, + cache_hierarchy=cache_hierarchy, +) + +board.set_kernel_disk_workload( + kernel=obtain_resource("x86-linux-kernel-5.4.0-105-generic"), + disk_image=obtain_resource("x86-ubuntu-24.04-npb-img"), + kernel_args=[ + "earlyprintk=ttyS0", + "console=ttyS0", + "lpj=7999923", + "root=/dev/sda2" + ], + readfile_contents=f"echo 12345 | sudo -S /home/gem5/NPB3.4-OMP/bin/is.S.x; sleep 5; m5 exit;" +) + +def on_exit(): + print("Exiting the simulation for kernel boot") + yield False + print("Exiting the simulation for systemd complete") + yield False + +def on_work_begin(): + print("Work begin. Switching to detailed CPU") + m5.stats.reset() + processor.switch() + yield False + +def on_work_end(): + print("Work end") + yield True + +simulator = Simulator( + board=board, + on_exit_event={ + ExitEvent.EXIT: on_exit(), + ExitEvent.WORKBEGIN: on_work_begin(), + ExitEvent.WORKEND: on_work_end(), + }, +) + +simulator.run() diff --git a/materials/isca24/completed/06-npb-checkpoint.py b/materials/isca24/completed/06-npb-checkpoint.py new file mode 100644 index 00000000..a6e478b8 --- /dev/null +++ b/materials/isca24/completed/06-npb-checkpoint.py @@ -0,0 +1,98 @@ +""" +Simple example to play around with KVM +""" + +from gem5.coherence_protocol import CoherenceProtocol +from gem5.components.boards.x86_board import X86Board +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 +from gem5.components.processors.cpu_types import CPUTypes +from gem5.components.processors.simple_switchable_processor import ( + SimpleSwitchableProcessor, +) +from gem5.isas import ISA +from gem5.resources.resource import obtain_resource +from gem5.simulate.exit_event import ExitEvent +from gem5.simulate.simulator import Simulator +from gem5.utils.requires import requires +import m5 + +# This simulation requires using KVM with gem5 compiled for X86 simulation +# and with MESI_Two_Level cache coherence protocol. +requires( + isa_required=ISA.X86, + coherence_protocol_required=CoherenceProtocol.MESI_TWO_LEVEL, + kvm_required=True, +) + +from gem5.components.cachehierarchies.classic.private_l1_shared_l2_cache_hierarchy import ( + PrivateL1SharedL2CacheHierarchy, +) + +caches = PrivateL1SharedL2CacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="256KiB", + l2_assoc=16, +) + +# Main memory +memory = SingleChannelDDR4_2400(size="3GiB") + +# This is a switchable CPU. We first boot Ubuntu using KVM, then the guest +# will exit the simulation by calling "m5 exit" (see the `command` variable +# below, which contains the command to be run in the guest after booting). +# Upon exiting from the simulation, the Exit Event handler will switch the +# CPU type (see the ExitEvent.EXIT line below, which contains a map to +# a function to be called when an exit event happens). +processor = SimpleSwitchableProcessor( + starting_core_type=CPUTypes.KVM, + switch_core_type=CPUTypes.TIMING, + isa=ISA.X86, + num_cores=1, +) + +# Here we tell the KVM CPU (the starting CPU) not to use perf. +for proc in processor.start: + proc.core.usePerf = False + +# Here we setup the board. The X86Board allows for Full-System X86 simulations. +board = X86Board( + clk_freq="3GHz", + processor=processor, + memory=memory, + cache_hierarchy=caches, +) + +board.set_kernel_disk_workload( + kernel=obtain_resource("x86-linux-kernel-5.4.0-105-generic"), + disk_image=obtain_resource("x86-ubuntu-24.04-npb-img"), + kernel_args=[ + "earlyprintk=ttyS0", + "console=ttyS0", + "lpj=7999923", + "root=/dev/sda2" + ], + readfile_contents=f"echo 12345 | sudo -S /home/gem5/NPB3.4-OMP/bin/is.S.x; sleep 5; m5 exit;" +) + +def on_exit(): + print("Exiting the simulation for kernel boot") + yield False + print("Exiting the simulation for systemd complete") + print("Checkpointing") + m5.checkpoint("checkpoint") + yield True + +simulator = Simulator( + board=board, + on_exit_event={ + ExitEvent.EXIT: on_exit(), + }, +) + +simulator.run() diff --git a/materials/isca24/completed/06-npb-restore.py b/materials/isca24/completed/06-npb-restore.py new file mode 100644 index 00000000..ec81541e --- /dev/null +++ b/materials/isca24/completed/06-npb-restore.py @@ -0,0 +1,102 @@ +""" +Simple example to play around with KVM +""" + +from gem5.coherence_protocol import CoherenceProtocol +from gem5.components.boards.x86_board import X86Board +from gem5.components.cachehierarchies.ruby.mesi_two_level_cache_hierarchy import ( + MESITwoLevelCacheHierarchy, +) +from gem5.components.memory.single_channel import SingleChannelDDR4_2400 +from gem5.components.processors.cpu_types import CPUTypes +from gem5.components.processors.simple_switchable_processor import ( + SimpleSwitchableProcessor, +) +from gem5.isas import ISA +from gem5.resources.resource import obtain_resource, CheckpointResource +from gem5.simulate.exit_event import ExitEvent +from gem5.simulate.simulator import Simulator +from gem5.utils.requires import requires +import m5 + +# This simulation requires using KVM with gem5 compiled for X86 simulation +# and with MESI_Two_Level cache coherence protocol. +requires( + isa_required=ISA.X86, + coherence_protocol_required=CoherenceProtocol.MESI_TWO_LEVEL, + kvm_required=True, +) + +from gem5.components.cachehierarchies.classic.private_l1_shared_l2_cache_hierarchy import ( + PrivateL1SharedL2CacheHierarchy, +) + +caches = PrivateL1SharedL2CacheHierarchy( + l1d_size="32KiB", + l1d_assoc=8, + l1i_size="32KiB", + l1i_assoc=8, + l2_size="256KiB", + l2_assoc=16, +) + +# Main memory +memory = SingleChannelDDR4_2400(size="3GiB") + +# This is a switchable CPU. We first boot Ubuntu using KVM, then the guest +# will exit the simulation by calling "m5 exit" (see the `command` variable +# below, which contains the command to be run in the guest after booting). +# Upon exiting from the simulation, the Exit Event handler will switch the +# CPU type (see the ExitEvent.EXIT line below, which contains a map to +# a function to be called when an exit event happens). +processor = SimpleSwitchableProcessor( + starting_core_type=CPUTypes.KVM, + switch_core_type=CPUTypes.TIMING, + isa=ISA.X86, + num_cores=1, +) + +# Here we tell the KVM CPU (the starting CPU) not to use perf. +for proc in processor.start: + proc.core.usePerf = False + +# Here we setup the board. The X86Board allows for Full-System X86 simulations. +board = X86Board( + clk_freq="3GHz", + processor=processor, + memory=memory, + cache_hierarchy=caches, +) + +board.set_kernel_disk_workload( + kernel=obtain_resource("x86-linux-kernel-5.4.0-105-generic"), + disk_image=obtain_resource("x86-ubuntu-24.04-npb-img"), + kernel_args=[ + "earlyprintk=ttyS0", + "console=ttyS0", + "lpj=7999923", + "root=/dev/sda2" + ], + readfile_contents=f"echo 12345 | sudo -S /home/gem5/NPB3.4-OMP/bin/sp.S.x; sleep 5; m5 exit;", + checkpoint=CheckpointResource("checkpoint") +) + +def on_work_begin(): + print("Work begin. Switching to detailed CPU") + m5.stats.reset() + processor.switch() + yield False + +def on_work_end(): + print("Work end") + yield True + +simulator = Simulator( + board=board, + on_exit_event={ + ExitEvent.WORKBEGIN: on_work_begin(), + ExitEvent.WORKEND: on_work_end(), + }, +) + +simulator.run() From e727bf6e56c57ab76b5629042d21ffa4420953c8 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Wed, 26 Jun 2024 20:28:08 +0000 Subject: [PATCH 32/69] materials: adding multisim example Signed-off-by: Jason Lowe-Power --- materials/isca24/completed/07-multisim.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 materials/isca24/completed/07-multisim.py diff --git a/materials/isca24/completed/07-multisim.py b/materials/isca24/completed/07-multisim.py new file mode 100644 index 00000000..f86de9a3 --- /dev/null +++ b/materials/isca24/completed/07-multisim.py @@ -0,0 +1,17 @@ +""" +A small multisim example +""" + +from gem5.prebuilt.riscvmatched.riscvmatched_board import RISCVMatchedBoard +from gem5.resources.resource import obtain_resource +from gem5.simulate.simulator import Simulator + +from gem5.utils.multisim import add_simulator + +board = RISCVMatchedBoard() + +for workload in obtain_resource("riscv-getting-started-benchmark-suite"): + board.set_workload(workload) + simulator = Simulator(board=board) + + add_simulator(simulator) From 8a11a17616e64d2415bad1df68480903ce5ea7c9 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Wed, 26 Jun 2024 20:41:18 +0000 Subject: [PATCH 33/69] materials: finish adding multisim example Signed-off-by: Jason Lowe-Power --- materials/isca24/07-multisim.py | 13 +++++++++++++ materials/isca24/completed/07-multisim.py | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 materials/isca24/07-multisim.py diff --git a/materials/isca24/07-multisim.py b/materials/isca24/07-multisim.py new file mode 100644 index 00000000..82a9e06a --- /dev/null +++ b/materials/isca24/07-multisim.py @@ -0,0 +1,13 @@ +""" +A small multisim example +""" + +from gem5.prebuilt.riscvmatched.riscvmatched_board import RISCVMatchedBoard +from gem5.resources.resource import obtain_resource +from gem5.simulate.simulator import Simulator + +from gem5.utils.multisim import add_simulator + +board = RISCVMatchedBoard() + + diff --git a/materials/isca24/completed/07-multisim.py b/materials/isca24/completed/07-multisim.py index f86de9a3..7eb2f720 100644 --- a/materials/isca24/completed/07-multisim.py +++ b/materials/isca24/completed/07-multisim.py @@ -12,6 +12,6 @@ for workload in obtain_resource("riscv-getting-started-benchmark-suite"): board.set_workload(workload) - simulator = Simulator(board=board) + simulator = Simulator(board=board, id=workload.get_id()) add_simulator(simulator) From ab3652a0c0cd4457f77fcb44fdfda0dfbff7f4a3 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Wed, 26 Jun 2024 21:04:38 +0000 Subject: [PATCH 34/69] misc: Add automatic predownlaoding for resources Signed-off-by: Jason Lowe-Power --- .devcontainer/on_create.sh | 6 +++++- pre-download-resources.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 pre-download-resources.py diff --git a/.devcontainer/on_create.sh b/.devcontainer/on_create.sh index 473a747b..3b1dcab5 100755 --- a/.devcontainer/on_create.sh +++ b/.devcontainer/on_create.sh @@ -15,4 +15,8 @@ git config --global pull.rebase true ./util/pre-commit-install.sh -popd # gem5 \ No newline at end of file +popd # gem5 + +# Pre-download the resources we use + +gem5 pre-download-resources.py diff --git a/pre-download-resources.py b/pre-download-resources.py new file mode 100644 index 00000000..a0bf115c --- /dev/null +++ b/pre-download-resources.py @@ -0,0 +1,12 @@ +from gem5.resources.resource import obtain_resource + +# grep "obtain_resource(.*)" materials/isca24/ -roh | sort | uniq + +obtain_resource("riscv-getting-started-benchmark-suite") +obtain_resource("x86-linux-kernel-5.4.0-105-generic") +obtain_resource("x86-m5-exit") +obtain_resource("x86-npb-is-size-s-run") +obtain_resource("x86-ubuntu-24.04-boot-no-systemd") +obtain_resource("x86-ubuntu-24.04-boot-with-systemd") +obtain_resource("x86-ubuntu-24.04-npb-img") +# obtain_resource("x86-ubuntu-24.04-npb-is-s-run") From e64355b3a78822824394f8f2f71f9aae54622524 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Wed, 26 Jun 2024 21:04:54 +0000 Subject: [PATCH 35/69] misc: Update readme for gpuse Signed-off-by: Jason Lowe-Power --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index d88d16d3..34465b2e 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ It contains: * `/usr/local/bin/gem5` (gem5 ALL ISAs with CHI protocol) * `/usr/local/bin/gem5-default` (default gem5 ALL build with MESI_Two_Level) * `/usr/local/bin/gem5-vega` (x86-only with GPU protocol) + * `/usr/local/bin/gem5-vega-se` (same as above, but compiled with 20.04) * A RISCV64 and an AARCH64 GNU cross-compiler: * RISCV64 GNU cross-compiler found in `/opt/cross-compiler/riscv64-linux/`. * AARCH64 GNU cross-compiler found in `/opt/cross-compiler/aarch64-linux/`. @@ -117,3 +118,12 @@ To see a list of all available branches you can execute: ```sh git branch ``` + +## Note on running GPU SE + +You can use docker. +Below is an example command + +```sh +docker run -v $PWD:$PWD -v /usr/local/bin:/usr/local/bin -w $PWD ghcr.io/gem5/gcn-gpu:v24-0 gem5-vega-se gem5/configs/example/apu_se.py -n 3 -c square +``` From 5170beede260b49b2857eed0aabae960877a6c3e Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Wed, 26 Jun 2024 21:43:27 +0000 Subject: [PATCH 36/69] misc: Add docker pull for gcn image to on_create Signed-off-by: Jason Lowe-Power --- .devcontainer/on_create.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.devcontainer/on_create.sh b/.devcontainer/on_create.sh index 3b1dcab5..737a2d9c 100755 --- a/.devcontainer/on_create.sh +++ b/.devcontainer/on_create.sh @@ -20,3 +20,5 @@ popd # gem5 # Pre-download the resources we use gem5 pre-download-resources.py + +docker pull ghcr.io/gem5/gcn-gpu:v24-0 From 86f436d982c7c02c1535de6c2ddb11ba61e43553 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Wed, 26 Jun 2024 21:52:12 +0000 Subject: [PATCH 37/69] misc: Update pre-download to actually download Signed-off-by: Jason Lowe-Power --- pre-download-resources.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pre-download-resources.py b/pre-download-resources.py index a0bf115c..1b83e05f 100644 --- a/pre-download-resources.py +++ b/pre-download-resources.py @@ -2,11 +2,11 @@ # grep "obtain_resource(.*)" materials/isca24/ -roh | sort | uniq -obtain_resource("riscv-getting-started-benchmark-suite") -obtain_resource("x86-linux-kernel-5.4.0-105-generic") -obtain_resource("x86-m5-exit") -obtain_resource("x86-npb-is-size-s-run") -obtain_resource("x86-ubuntu-24.04-boot-no-systemd") -obtain_resource("x86-ubuntu-24.04-boot-with-systemd") -obtain_resource("x86-ubuntu-24.04-npb-img") -# obtain_resource("x86-ubuntu-24.04-npb-is-s-run") +obtain_resource("riscv-getting-started-benchmark-suite").get_local_path() +obtain_resource("x86-linux-kernel-5.4.0-105-generic").get_local_path() +obtain_resource("x86-m5-exit").get_local_path() +obtain_resource("x86-npb-is-size-s-run").get_local_path() +obtain_resource("x86-ubuntu-24.04-boot-no-systemd").get_local_path() +obtain_resource("x86-ubuntu-24.04-boot-with-systemd").get_local_path() +obtain_resource("x86-ubuntu-24.04-npb-img").get_local_path() +# obtain_resource("x86-ubuntu-24.04-npb-is-s-run").get_local_path() From abe10a6f4e9b10a4d760881b763dc77c0d3ba5b9 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Thu, 27 Jun 2024 15:45:48 +0000 Subject: [PATCH 38/69] misc: Fix the pre-download script Signed-off-by: Jason Lowe-Power --- pre-download-resources.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pre-download-resources.py b/pre-download-resources.py index 1b83e05f..7e19d49d 100644 --- a/pre-download-resources.py +++ b/pre-download-resources.py @@ -1,12 +1,10 @@ from gem5.resources.resource import obtain_resource # grep "obtain_resource(.*)" materials/isca24/ -roh | sort | uniq +# note, this does not work for workloads. We have to get the resources used +# in each workload. -obtain_resource("riscv-getting-started-benchmark-suite").get_local_path() obtain_resource("x86-linux-kernel-5.4.0-105-generic").get_local_path() obtain_resource("x86-m5-exit").get_local_path() -obtain_resource("x86-npb-is-size-s-run").get_local_path() -obtain_resource("x86-ubuntu-24.04-boot-no-systemd").get_local_path() -obtain_resource("x86-ubuntu-24.04-boot-with-systemd").get_local_path() obtain_resource("x86-ubuntu-24.04-npb-img").get_local_path() -# obtain_resource("x86-ubuntu-24.04-npb-is-s-run").get_local_path() +obtain_resource("x86-ubuntu-24.04-img").get_local_path() From 2a277fce0ba2e2420f0b0bf23e39e0e7fc29a99b Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Thu, 27 Jun 2024 16:01:51 +0000 Subject: [PATCH 39/69] misc: Add square to download in on_create Signed-off-by: Jason Lowe-Power --- .devcontainer/on_create.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.devcontainer/on_create.sh b/.devcontainer/on_create.sh index 737a2d9c..b8c42b6a 100755 --- a/.devcontainer/on_create.sh +++ b/.devcontainer/on_create.sh @@ -22,3 +22,5 @@ popd # gem5 gem5 pre-download-resources.py docker pull ghcr.io/gem5/gcn-gpu:v24-0 + +wget http://dist.gem5.org/dist/v24-0/test-progs/square/square From 054f7354d5e08aebb28fbf867155f2c33ee0aa8c Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Thu, 27 Jun 2024 16:02:46 +0000 Subject: [PATCH 40/69] misc: Add square to gitignore Signed-off-by: Jason Lowe-Power --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index df65fa0a..11e145b9 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,6 @@ typings/ .vscode/*.log __pycache__ + +# Ignore downloaded files +square From 8e26b1d7578f86a3adc89f687fc3a5e3a29311d3 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Thu, 27 Jun 2024 21:05:24 +0000 Subject: [PATCH 41/69] misc: Download GPU files in on_create Signed-off-by: Jason Lowe-Power --- .devcontainer/devcontainer.json | 3 ++- .devcontainer/on_create.sh | 7 +++++++ .devcontainer/post_start.sh | 7 +++++++ .gitignore | 3 +++ materials/isca24/gpu-test.py | 6 ++++++ 5 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 .devcontainer/post_start.sh create mode 100644 materials/isca24/gpu-test.py diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index c329a3c7..ce823051 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -31,5 +31,6 @@ "ghcr.io/devcontainers-contrib/features/actionlint:1": {}, "ghcr.io/devcontainers-contrib/features/vscode-cli:1": {} }, - "onCreateCommand": "./.devcontainer/on_create.sh" + "onCreateCommand": "./.devcontainer/on_create.sh", + "postStartCommand": "./.devcontainer/post_start.sh" } diff --git a/.devcontainer/on_create.sh b/.devcontainer/on_create.sh index b8c42b6a..d762d334 100755 --- a/.devcontainer/on_create.sh +++ b/.devcontainer/on_create.sh @@ -24,3 +24,10 @@ gem5 pre-download-resources.py docker pull ghcr.io/gem5/gcn-gpu:v24-0 wget http://dist.gem5.org/dist/v24-0/test-progs/square/square + +wget https://storage.googleapis.com/dist.gem5.org/dist/v24-0/gpu-fs/kernel/vmlinux-gpu-ml.gz +gunzip vmlinux-gpu-ml + +# Note: this unzips to 55 GB so must in on /tmp. +# See post_start.sh where it is unzipped each time the devcontainer starts +wget https://storage.googleapis.com/dist.gem5.org/dist/v24-0/gpu-fs/diskimage/x86-ubuntu-gpu-ml-isca.gz diff --git a/.devcontainer/post_start.sh b/.devcontainer/post_start.sh new file mode 100644 index 00000000..b5a3b4f6 --- /dev/null +++ b/.devcontainer/post_start.sh @@ -0,0 +1,7 @@ + +if [ ! -f /tmp/x86-ubuntu-gpu-ml-isca ]; then + cp ~/x86-ubuntu-gpu-ml-isca.gz /tmp + gunzip /tmp/x86-ubuntu-gpu-ml-isca.gz +fi + +ln -s /tmp/x86-ubuntu-gpu-ml-isca . diff --git a/.gitignore b/.gitignore index 11e145b9..f3a43d47 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,6 @@ __pycache__ # Ignore downloaded files square +vmlinux-gpu-ml +x86-ubuntu-gpu-ml-isca +x86-ubuntu-gpu-ml-isca.gz diff --git a/materials/isca24/gpu-test.py b/materials/isca24/gpu-test.py new file mode 100644 index 00000000..c95311d9 --- /dev/null +++ b/materials/isca24/gpu-test.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 + +import torch +print("GPU available!") if torch.cuda.is_available() else print("No GPU available.") +x = torch.rand(5, 3) +print(x) From b526ad0d737bf1103a6243a6ee8121de76d16474 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Thu, 27 Jun 2024 21:47:51 +0000 Subject: [PATCH 42/69] misc:update devcontainer to download new kernel Signed-off-by: Jason Lowe-Power --- .devcontainer/on_create.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.devcontainer/on_create.sh b/.devcontainer/on_create.sh index d762d334..7cf76091 100755 --- a/.devcontainer/on_create.sh +++ b/.devcontainer/on_create.sh @@ -25,8 +25,7 @@ docker pull ghcr.io/gem5/gcn-gpu:v24-0 wget http://dist.gem5.org/dist/v24-0/test-progs/square/square -wget https://storage.googleapis.com/dist.gem5.org/dist/v24-0/gpu-fs/kernel/vmlinux-gpu-ml.gz -gunzip vmlinux-gpu-ml +wget https://storage.googleapis.com/dist.gem5.org/dist/v24-0/gpu-fs/kernel/vmlinux-gpu-ml-isca # Note: this unzips to 55 GB so must in on /tmp. # See post_start.sh where it is unzipped each time the devcontainer starts From 7e3427d4efc0c80daa1950a70fbcb058260a84fc Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Thu, 27 Jun 2024 22:42:50 +0000 Subject: [PATCH 43/69] materials: Add simobject example Signed-off-by: Jason Lowe-Power --- materials/isca24/08-simobj/HelloSimObject.py | 33 ++++++++ .../08-simobj/completed/HelloSimObject.py | 37 +++++++++ .../08-simobj/completed/hello_sim_object.cc | 78 +++++++++++++++++++ .../08-simobj/completed/hello_sim_object.hh | 58 ++++++++++++++ .../isca24/08-simobj/hello_sim_object.cc | 42 ++++++++++ .../isca24/08-simobj/hello_sim_object.hh | 47 +++++++++++ 6 files changed, 295 insertions(+) create mode 100644 materials/isca24/08-simobj/HelloSimObject.py create mode 100644 materials/isca24/08-simobj/completed/HelloSimObject.py create mode 100644 materials/isca24/08-simobj/completed/hello_sim_object.cc create mode 100644 materials/isca24/08-simobj/completed/hello_sim_object.hh create mode 100644 materials/isca24/08-simobj/hello_sim_object.cc create mode 100644 materials/isca24/08-simobj/hello_sim_object.hh diff --git a/materials/isca24/08-simobj/HelloSimObject.py b/materials/isca24/08-simobj/HelloSimObject.py new file mode 100644 index 00000000..2d581442 --- /dev/null +++ b/materials/isca24/08-simobj/HelloSimObject.py @@ -0,0 +1,33 @@ +# Copyright (c) 2021 The Regents of the University of California. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +from m5.SimObject import SimObject + +class HelloSimObject(SimObject): + type = "HelloSimObject" + cxx_header = "bootcamp/hello-sim-object/hello_sim_object.hh" + cxx_class = "gem5::HelloSimObject" diff --git a/materials/isca24/08-simobj/completed/HelloSimObject.py b/materials/isca24/08-simobj/completed/HelloSimObject.py new file mode 100644 index 00000000..8167baf1 --- /dev/null +++ b/materials/isca24/08-simobj/completed/HelloSimObject.py @@ -0,0 +1,37 @@ +# Copyright (c) 2021 The Regents of the University of California. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +from m5.params import * +from m5.SimObject import SimObject + +class HelloSimObject(SimObject): + type = "HelloSimObject" + cxx_header = "bootcamp/hello-sim-object/hello_sim_object.hh" + cxx_class = "gem5::HelloSimObject" + + time_to_wait = Param.Latency("Time to wait before/between greets.") + number_of_greets = Param.Int(1, "Number of times to greet.") diff --git a/materials/isca24/08-simobj/completed/hello_sim_object.cc b/materials/isca24/08-simobj/completed/hello_sim_object.cc new file mode 100644 index 00000000..2236c577 --- /dev/null +++ b/materials/isca24/08-simobj/completed/hello_sim_object.cc @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2021 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer; + * redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution; + * neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "bootcamp/hello-sim-object/hello_sim_object.hh" + +#include "base/trace.hh" +#include "debug/HelloExampleFlag.hh" +#include "sim/sim_exit.hh" + +namespace gem5 +{ + +HelloSimObject::HelloSimObject(const Params ¶ms): + SimObject(params), + event([this]{ processEvent(); }, name() + ".event"), + latency(params.time_to_wait), + timesLeft(params.number_of_greets) +{ + DPRINTF(HelloExampleFlag, "%s: Hello World! From a " + "SimObject (constructor).\n", __func__); +} + +void +HelloSimObject::startup() +{ + DPRINTF(HelloExampleFlag, "%s: HelloWorld! From a " + "SimObject (startup).\n", __func__); + + assert(!event.scheduled()); + + schedule(event, curTick() + latency); +} + +void +HelloSimObject::processEvent() +{ + if (timesLeft > 0) { + timesLeft--; + DPRINTF(HelloExampleFlag, "%s: Hello World! Processing an event. " + "%d greets left.\n", __func__, timesLeft); + } + + if (timesLeft == 0) { + DPRINTF(HelloExampleFlag, "%s: Done greeting.\n", __func__); + exitSimLoopNow("No greets left.", 0); + } + + if ((timesLeft > 0) && (!event.scheduled())) { + schedule(event, curTick() + latency); + } +} + +} // namespace gem5 diff --git a/materials/isca24/08-simobj/completed/hello_sim_object.hh b/materials/isca24/08-simobj/completed/hello_sim_object.hh new file mode 100644 index 00000000..f27f8a9a --- /dev/null +++ b/materials/isca24/08-simobj/completed/hello_sim_object.hh @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2021 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer; + * redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution; + * neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __BOOTCAMP_HELLO_SIM_OBJECT_HELLO_SIM_OBJECT_HH__ +#define __BOOTCAMP_HELLO_SIM_OBJECT_HELLO_SIM_OBJECT_HH__ + +#include "params/HelloSimObject.hh" +#include "sim/sim_object.hh" + +namespace gem5 +{ + +class HelloSimObject : public SimObject +{ + private: + EventFunctionWrapper event; + + void processEvent(); + + const Tick latency; + + int timesLeft; + + public: + PARAMS(HelloSimObject); + HelloSimObject(const Params& params); + + virtual void startup() override; +}; + +} // namespace gem5 + +#endif // __BOOTCAMP_HELLO_SIM_OBJECT_HELLO_SIM_OBJECT_HH__ diff --git a/materials/isca24/08-simobj/hello_sim_object.cc b/materials/isca24/08-simobj/hello_sim_object.cc new file mode 100644 index 00000000..f1ef3c66 --- /dev/null +++ b/materials/isca24/08-simobj/hello_sim_object.cc @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2021 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer; + * redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution; + * neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "bootcamp/hello-sim-object/hello_sim_object.hh" + +#include + +namespace gem5 +{ + +HelloSimObject::HelloSimObject(const Params ¶ms): + SimObject(params) +{ + std::cout << "Hello World! From a SimObject (constructor)." << std::endl; +} + +} // namespace gem5 diff --git a/materials/isca24/08-simobj/hello_sim_object.hh b/materials/isca24/08-simobj/hello_sim_object.hh new file mode 100644 index 00000000..a486879b --- /dev/null +++ b/materials/isca24/08-simobj/hello_sim_object.hh @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2021 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer; + * redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution; + * neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __BOOTCAMP_HELLO_SIM_OBJECT_HELLO_SIM_OBJECT_HH__ +#define __BOOTCAMP_HELLO_SIM_OBJECT_HELLO_SIM_OBJECT_HH__ + +#include "params/HelloSimObject.hh" +#include "sim/sim_object.hh" + +namespace gem5 +{ + +class HelloSimObject : public SimObject +{ + public: + PARAMS(HelloSimObject); + HelloSimObject(const Params& params); +}; + +} // namespace gem5 + +#endif // __BOOTCAMP_HELLO_SIM_OBJECT_HELLO_SIM_OBJECT_HH__ From 0c2c3f0ef9151443cb0fea476298261e0b455574 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Fri, 28 Jun 2024 00:18:05 +0000 Subject: [PATCH 44/69] misc: update gitignore Signed-off-by: Jason Lowe-Power --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f3a43d47..61fd392d 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,6 @@ __pycache__ # Ignore downloaded files square -vmlinux-gpu-ml +vmlinux-gpu-ml-isca x86-ubuntu-gpu-ml-isca x86-ubuntu-gpu-ml-isca.gz From 3ad375c9c06e1ed5893834fb0553b58e3ae525d9 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Fri, 28 Jun 2024 00:15:49 +0000 Subject: [PATCH 45/69] misc: make post_start executable Signed-off-by: Jason Lowe-Power --- .devcontainer/post_start.sh | 1 + 1 file changed, 1 insertion(+) mode change 100644 => 100755 .devcontainer/post_start.sh diff --git a/.devcontainer/post_start.sh b/.devcontainer/post_start.sh old mode 100644 new mode 100755 index b5a3b4f6..6544497d --- a/.devcontainer/post_start.sh +++ b/.devcontainer/post_start.sh @@ -1,3 +1,4 @@ +#!/bin/bash if [ ! -f /tmp/x86-ubuntu-gpu-ml-isca ]; then cp ~/x86-ubuntu-gpu-ml-isca.gz /tmp From 010f634a2ac88cf3ad5aae8db2111f2773335a51 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Fri, 28 Jun 2024 03:05:49 +0000 Subject: [PATCH 46/69] misc: Fix path on post_start disk image Signed-off-by: Jason Lowe-Power --- .devcontainer/post_start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/post_start.sh b/.devcontainer/post_start.sh index 6544497d..ec608607 100755 --- a/.devcontainer/post_start.sh +++ b/.devcontainer/post_start.sh @@ -1,7 +1,7 @@ #!/bin/bash if [ ! -f /tmp/x86-ubuntu-gpu-ml-isca ]; then - cp ~/x86-ubuntu-gpu-ml-isca.gz /tmp + cp x86-ubuntu-gpu-ml-isca.gz /tmp gunzip /tmp/x86-ubuntu-gpu-ml-isca.gz fi From 0f3f4af668da04592b93d8f6987681ac19d3ff9a Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Fri, 28 Jun 2024 15:40:19 +0000 Subject: [PATCH 47/69] misc: Bump gem5 to 24.0.0.0 Signed-off-by: Jason Lowe-Power --- README.md | 3 ++- gem5 | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 34465b2e..e54a07a6 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ The repository contains the following directories: * [docker](docker) : The source code for the Docker image used by the [Dockerfile](gem5/util/dockerfiles/devcontainer/Dockerfile) to create the Codespace Docker container. * gem5 : -v24.0.0.0 of gem5. (Staging branch for now.) +v24.0.0.0 of gem5. * gem5-resources : gem5-resources which may be used with v24.0 of gem5. * materials: Example materials used as part of the tutorial. @@ -30,6 +30,7 @@ It contains: * A RISCV64 and an AARCH64 GNU cross-compiler: * RISCV64 GNU cross-compiler found in `/opt/cross-compiler/riscv64-linux/`. * AARCH64 GNU cross-compiler found in `/opt/cross-compiler/aarch64-linux/`. +* ROCm development environment 6.1.2 (note, this is why the container is based on 22.04 instead of 24.04) ## Beginners' example diff --git a/gem5 b/gem5 index faa18576..43769aba 160000 --- a/gem5 +++ b/gem5 @@ -1 +1 @@ -Subproject commit faa18576f26d9474f3e4d68005638ca30741ffeb +Subproject commit 43769abaf05120fed1e4e0cfbb34619edbc10f3f From b9649aac894adfda68166a5916cda0d150d1854c Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Fri, 28 Jun 2024 23:06:24 +0000 Subject: [PATCH 48/69] materials: Update documenation for materials Signed-off-by: Jason Lowe-Power --- materials/isca24/01-basic.py | 2 + materials/isca24/02-components.py | 6 ++- materials/isca24/03-exit-events.py | 47 ------------------- materials/isca24/03-processor.py | 4 ++ materials/isca24/04-kvm.py | 3 ++ materials/isca24/05-fs-npb.py | 9 +++- materials/isca24/06-npb-checkpoint.py | 7 ++- materials/isca24/06-npb-restore.py | 16 ++++++- materials/isca24/07-multisim.py | 9 ++++ materials/isca24/completed/01-basic.py | 2 + materials/isca24/completed/02-components.py | 6 ++- materials/isca24/completed/02-simple.py | 45 ------------------ materials/isca24/completed/03-processor.py | 3 ++ materials/isca24/completed/04-kvm.py | 3 ++ materials/isca24/completed/05-fs-npb.py | 21 ++++----- .../isca24/completed/06-npb-checkpoint.py | 8 +++- materials/isca24/completed/06-npb-restore.py | 15 +++++- materials/isca24/completed/07-multisim.py | 9 ++++ 18 files changed, 100 insertions(+), 115 deletions(-) delete mode 100644 materials/isca24/03-exit-events.py delete mode 100644 materials/isca24/completed/02-simple.py diff --git a/materials/isca24/01-basic.py b/materials/isca24/01-basic.py index bbe7ac71..b3da7503 100644 --- a/materials/isca24/01-basic.py +++ b/materials/isca24/01-basic.py @@ -1,6 +1,8 @@ """ This will start Linux boot on X86DemoBoard and run for 20 billion cycles. Used as a very simple example. + +run with `gem5-mesi 01-basic.py` """ from gem5.prebuilt.demo.x86_demo_board import X86DemoBoard diff --git a/materials/isca24/02-components.py b/materials/isca24/02-components.py index 17bd329f..0d566470 100644 --- a/materials/isca24/02-components.py +++ b/materials/isca24/02-components.py @@ -1,6 +1,8 @@ """ -This will build a Ruby/CHI based system to run a simple x86 SE mode workload. -IS takes about 20 seconds. +This will build a classic caches based system to run a simple x86 SE workload. +IS takes about 40 seconds. + +Run with `gem5 02-components.py` """ from gem5.components.boards.simple_board import SimpleBoard diff --git a/materials/isca24/03-exit-events.py b/materials/isca24/03-exit-events.py deleted file mode 100644 index f7480f05..00000000 --- a/materials/isca24/03-exit-events.py +++ /dev/null @@ -1,47 +0,0 @@ -from gem5.components.boards.simple_board import SimpleBoard -from gem5.components.memory.single_channel import SingleChannelDDR4_2400 -from gem5.components.processors.simple_processor import SimpleProcessor -from gem5.components.cachehierarchies.chi.private_l1_cache_hierarchy import ( - PrivateL1CacheHierarchy -) -from gem5.components.processors.cpu_types import CPUTypes -from gem5.isas import ISA -from gem5.simulate.simulator import Simulator -from gem5.resources.resource import obtain_resource -from gem5.simulate.exit_event import ExitEvent -import m5 - -simple_in_order_core = SimpleProcessor( - cpu_type=CPUTypes.TIMING, num_cores=1, isa=ISA.X86 -) - -main_memory = SingleChannelDDR4_2400(size="2GB") - -caches = PrivateL1CacheHierarchy( - size = "128KiB", - assoc = 8, -) - -board = SimpleBoard( - processor=simple_in_order_core, - memory=main_memory, - cache_hierarchy=caches, - clk_freq="3GHz", -) - -board.set_se_binary_workload( - binary=obtain_resource("x86-m5-exit") -) - -def on_exit(): - print("Work exit!") - m5.stats.reset() - yield False # Do not exit - -simulator = Simulator( - board=board, - on_exit_event={ - ExitEvent.EXIT: on_exit, - } -) -simulator.run() diff --git a/materials/isca24/03-processor.py b/materials/isca24/03-processor.py index f1c38a44..2d881f32 100644 --- a/materials/isca24/03-processor.py +++ b/materials/isca24/03-processor.py @@ -1,5 +1,8 @@ """ Script with a specialized O3 CPU +IS takes about 2-3 minutes with this script + +Run with `gem5 03-processor.py` """ from gem5.components.boards.simple_board import SimpleBoard @@ -9,6 +12,7 @@ from gem5.components.memory.single_channel import SingleChannelDDR4_2400 from gem5.resources.resource import obtain_resource from gem5.simulate.simulator import Simulator +from gem5.isas import ISA from gem5.components.processors.base_cpu_core import BaseCPUCore from gem5.components.processors.base_cpu_processor import BaseCPUProcessor diff --git a/materials/isca24/04-kvm.py b/materials/isca24/04-kvm.py index 01538fb4..2b32e8ec 100644 --- a/materials/isca24/04-kvm.py +++ b/materials/isca24/04-kvm.py @@ -1,5 +1,8 @@ """ Simple example to play around with KVM +Takes about 30 seconds to boot to the interactive prompt. + +Run with gem5-mesi 04-kvm.py """ from gem5.coherence_protocol import CoherenceProtocol diff --git a/materials/isca24/05-fs-npb.py b/materials/isca24/05-fs-npb.py index b40420a5..66224797 100644 --- a/materials/isca24/05-fs-npb.py +++ b/materials/isca24/05-fs-npb.py @@ -1,5 +1,12 @@ """ -Simple example to play around with KVM +Simple example to play around with KVM fast-forwarding and switching +between KVM and Timing CPU models. This script boots a Linux kernel +using KVM, runs a simple workload, and then switches to a Timing CPU at +work begin and ends at the work end designation + +To run `gem5-mesi 05-fs-npb.py` +Takes about 30 seconds to boot and 30 seconds to run IS +It's about 1 minute total """ from gem5.coherence_protocol import CoherenceProtocol diff --git a/materials/isca24/06-npb-checkpoint.py b/materials/isca24/06-npb-checkpoint.py index e8c60b0e..b2c0e430 100644 --- a/materials/isca24/06-npb-checkpoint.py +++ b/materials/isca24/06-npb-checkpoint.py @@ -1,5 +1,10 @@ """ -Simple example to play around with KVM +Example of how to take checkpoint after booting linux. +Most useful for when you have to use a timing CPU to boot, not with KVM. +Let's use KVM so it's fast, though. +Note: Checkpointing with switchable processor is not well supported + +Run with `gem5-mesi 06-npb-checkpoint.py` """ from gem5.coherence_protocol import CoherenceProtocol diff --git a/materials/isca24/06-npb-restore.py b/materials/isca24/06-npb-restore.py index 669c2462..c0888362 100644 --- a/materials/isca24/06-npb-restore.py +++ b/materials/isca24/06-npb-restore.py @@ -1,5 +1,16 @@ """ -Simple example to play around with KVM +Example of how to take restore from a checkpoint taken after booting linux. +Most useful for when you have to use a timing CPU to boot, not with KVM. +Let's use KVM so it's fast, though. +Note: Checkpointing with switchable processor is not well supported + +This script changes the CPU type to O3 as an example of what can change +(Note: It's not a great example... but it's an example) + +Run with `gem5-mesi 06-npb-restore.py` + +When running SP instead of IS, it takes about 5 minutes with timing CPU and +15 minutes with O3 """ from gem5.coherence_protocol import CoherenceProtocol @@ -51,7 +62,7 @@ # a function to be called when an exit event happens). processor = SimpleSwitchableProcessor( starting_core_type=CPUTypes.KVM, - switch_core_type=CPUTypes.TIMING, + switch_core_type=, isa=ISA.X86, num_cores=1, ) @@ -77,6 +88,7 @@ "lpj=7999923", "root=/dev/sda2" ], + readfile_contents=f"echo 12345 | sudo -S /home/gem5/NPB3.4-OMP/bin/is.S.x; sleep 5; m5 exit;", ) def on_work_begin(): diff --git a/materials/isca24/07-multisim.py b/materials/isca24/07-multisim.py index 82a9e06a..8568e504 100644 --- a/materials/isca24/07-multisim.py +++ b/materials/isca24/07-multisim.py @@ -1,5 +1,14 @@ """ A small multisim example + +Run with `gem5 -m gem5.utils.multisim 07-multisim.py` +or with `gem5 07-multisim.py -l` to list the ids of the simulators. +or with `gem5 07-multisim.py riscv-npb-is-size-s-run` to run one simulation + +Running all situations on 8 cores takes about 4 minutes since there are 9 +workloads +Running just IS takes about 1 minute +Most workloads finish within 2 minutes. """ from gem5.prebuilt.riscvmatched.riscvmatched_board import RISCVMatchedBoard diff --git a/materials/isca24/completed/01-basic.py b/materials/isca24/completed/01-basic.py index 298a06d8..32bec7aa 100644 --- a/materials/isca24/completed/01-basic.py +++ b/materials/isca24/completed/01-basic.py @@ -1,6 +1,8 @@ """ This will start Linux boot on X86DemoBoard and run for 20 billion cycles. Used as a very simple example. + +run with `gem5-mesi 01-basic.py` """ from gem5.prebuilt.demo.x86_demo_board import X86DemoBoard diff --git a/materials/isca24/completed/02-components.py b/materials/isca24/completed/02-components.py index 62b6ef6f..2ff1e44d 100644 --- a/materials/isca24/completed/02-components.py +++ b/materials/isca24/completed/02-components.py @@ -1,6 +1,8 @@ """ -This will build a Ruby/CHI based system to run a simple x86 SE mode workload. -IS takes about 20 seconds. +This will build a classic caches based system to run a simple x86 SE workload. +IS takes about 40 seconds. + +run with `gem5 02-components.py` """ from gem5.components.boards.simple_board import SimpleBoard diff --git a/materials/isca24/completed/02-simple.py b/materials/isca24/completed/02-simple.py deleted file mode 100644 index 62b6ef6f..00000000 --- a/materials/isca24/completed/02-simple.py +++ /dev/null @@ -1,45 +0,0 @@ -""" -This will build a Ruby/CHI based system to run a simple x86 SE mode workload. -IS takes about 20 seconds. -""" - -from gem5.components.boards.simple_board import SimpleBoard -from gem5.components.cachehierarchies.classic.private_l1_shared_l2_cache_hierarchy import ( - PrivateL1SharedL2CacheHierarchy, -) -from gem5.components.memory.single_channel import SingleChannelDDR4_2400 - -from gem5.components.processors.cpu_types import CPUTypes -from gem5.components.processors.simple_processor import SimpleProcessor -from gem5.isas import ISA - -from gem5.resources.resource import obtain_resource - -from gem5.simulate.simulator import Simulator - -main_memory = SingleChannelDDR4_2400(size="2GB") - -caches = PrivateL1SharedL2CacheHierarchy( - l1d_size="32KiB", - l1d_assoc=8, - l1i_size="32KiB", - l1i_assoc=8, - l2_size="256KiB", - l2_assoc=16, -) - -simple_in_order_core = SimpleProcessor( - cpu_type=CPUTypes.TIMING, num_cores=1, isa=ISA.X86 -) - -board = SimpleBoard( - processor=simple_in_order_core, - memory=main_memory, - cache_hierarchy=caches, - clk_freq="3GHz", -) - -board.set_workload(obtain_resource("x86-npb-is-size-s-run")) - -simulator = Simulator(board) -simulator.run() diff --git a/materials/isca24/completed/03-processor.py b/materials/isca24/completed/03-processor.py index 4a7d95c1..fbcf24f1 100644 --- a/materials/isca24/completed/03-processor.py +++ b/materials/isca24/completed/03-processor.py @@ -1,5 +1,8 @@ """ Script with a specialized O3 CPU +IS takes about 2-3 minutes with this script + +Run with `gem5 03-processor.py` """ from gem5.components.boards.simple_board import SimpleBoard diff --git a/materials/isca24/completed/04-kvm.py b/materials/isca24/completed/04-kvm.py index ca285fab..f8890dcd 100644 --- a/materials/isca24/completed/04-kvm.py +++ b/materials/isca24/completed/04-kvm.py @@ -1,5 +1,8 @@ """ Simple example to play around with KVM +Takes about 30 seconds to boot to the interactive prompt. + +Run with gem5-mesi 04-kvm.py """ from gem5.coherence_protocol import CoherenceProtocol diff --git a/materials/isca24/completed/05-fs-npb.py b/materials/isca24/completed/05-fs-npb.py index 7b328955..676222e1 100644 --- a/materials/isca24/completed/05-fs-npb.py +++ b/materials/isca24/completed/05-fs-npb.py @@ -1,5 +1,12 @@ """ -Simple example to play around with KVM +Simple example to play around with KVM fast-forwarding and switching +between KVM and Timing CPU models. This script boots a Linux kernel +using KVM, runs a simple workload, and then switches to a Timing CPU at +work begin and ends at the work end designation + +To run `gem5-mesi 05-fs-npb.py` +Takes about 30 seconds to boot and 30 seconds to run IS +It's about 1 minute total """ from gem5.coherence_protocol import CoherenceProtocol @@ -69,17 +76,7 @@ cache_hierarchy=cache_hierarchy, ) -board.set_kernel_disk_workload( - kernel=obtain_resource("x86-linux-kernel-5.4.0-105-generic"), - disk_image=obtain_resource("x86-ubuntu-24.04-npb-img"), - kernel_args=[ - "earlyprintk=ttyS0", - "console=ttyS0", - "lpj=7999923", - "root=/dev/sda2" - ], - readfile_contents=f"echo 12345 | sudo -S /home/gem5/NPB3.4-OMP/bin/is.S.x; sleep 5; m5 exit;" -) +board.set_workload(obtain_resource("x86-ubuntu-24.04-npb-is-s")) def on_exit(): print("Exiting the simulation for kernel boot") diff --git a/materials/isca24/completed/06-npb-checkpoint.py b/materials/isca24/completed/06-npb-checkpoint.py index a6e478b8..c752d8b1 100644 --- a/materials/isca24/completed/06-npb-checkpoint.py +++ b/materials/isca24/completed/06-npb-checkpoint.py @@ -1,5 +1,11 @@ """ -Simple example to play around with KVM +Example of how to take checkpoint after booting linux. +Most useful for when you have to use a timing CPU to boot, not with KVM. +Let's use KVM so it's fast, though. +Note: Checkpointing with switchable processor is not well supported + +Run with `gem5-mesi 06-npb-checkpoint.py` +Takes about 1 minute to boot and write the checkpoint """ from gem5.coherence_protocol import CoherenceProtocol diff --git a/materials/isca24/completed/06-npb-restore.py b/materials/isca24/completed/06-npb-restore.py index ec81541e..f1147280 100644 --- a/materials/isca24/completed/06-npb-restore.py +++ b/materials/isca24/completed/06-npb-restore.py @@ -1,5 +1,16 @@ """ -Simple example to play around with KVM +Example of how to take restore from a checkpoint taken after booting linux. +Most useful for when you have to use a timing CPU to boot, not with KVM. +Let's use KVM so it's fast, though. +Note: Checkpointing with switchable processor is not well supported + +This script changes the CPU type to O3 as an example of what can change +(Note: It's not a great example... but it's an example) + +Run with `gem5-mesi 06-npb-restore.py` + +When running SP instead of IS, it takes about 5 minutes with timing CPU and +15 minutes with O3 """ from gem5.coherence_protocol import CoherenceProtocol @@ -51,7 +62,7 @@ # a function to be called when an exit event happens). processor = SimpleSwitchableProcessor( starting_core_type=CPUTypes.KVM, - switch_core_type=CPUTypes.TIMING, + switch_core_type=CPUTypes.O3, isa=ISA.X86, num_cores=1, ) diff --git a/materials/isca24/completed/07-multisim.py b/materials/isca24/completed/07-multisim.py index 7eb2f720..b586670b 100644 --- a/materials/isca24/completed/07-multisim.py +++ b/materials/isca24/completed/07-multisim.py @@ -1,5 +1,14 @@ """ A small multisim example + +Run with `gem5 -m gem5.utils.multisim 07-multisim.py` +or with `gem5 07-multisim.py -l` to list the ids of the simulators. +or with `gem5 07-multisim.py riscv-npb-is-size-s-run` to run one simulation + +Running all situations on 8 cores takes about 4 minutes since there are 9 +workloads +Running just IS takes about 1 minute +Most workloads finish within 2 minutes. """ from gem5.prebuilt.riscvmatched.riscvmatched_board import RISCVMatchedBoard From 42406eac859918ec1a9acdf780f029508d5cc953 Mon Sep 17 00:00:00 2001 From: Vishnu Ramadas Date: Fri, 28 Jun 2024 18:44:28 -0500 Subject: [PATCH 49/69] misc: Add gpufs README --- materials/isca24/10-gpufs/README.md | 59 +++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 materials/isca24/10-gpufs/README.md diff --git a/materials/isca24/10-gpufs/README.md b/materials/isca24/10-gpufs/README.md new file mode 100644 index 00000000..3d56a331 --- /dev/null +++ b/materials/isca24/10-gpufs/README.md @@ -0,0 +1,59 @@ +## Note on running GPU FS + +You need not use docker to run simulations in GPU FS mode. We will be simulating AMD's latest GPU, MI300, in FS mode + +To compile square for MI300 +```sh +cd /workspaces/gem5-bootcamp-env +``` +```sh +wget https://cs.wisc.edu/~ramadas/gem5-isca24/gpu-fs/Makefile +```sh +mv Makefile gem5-resources/src/gpu/square/Makefile +``` +```sh +cd /workspaces/gem5-bootcamp-env/gem5-resources/src/gpu/square +``` +```sh +make +``` + +To run square in FS mode, + +```sh +cd /workspaces/gem5-bootcamp-env +``` +```sh +/usr/local/bin/gem5-vega gem5/configs/example/gpufs/mi200.py --kernel ./vmlinux-gpu-ml-isca --disk-image ./x86-ubuntu-gpu-ml-isca --app ./gem5-resources/src/gpu/square/bin/square --no-kvm-perf +``` + +To create a checkpoint (assuming m5_checkpoint_addr() is already included in the application), we need to recompile square so that it creates a checkpoint + +```sh +cd /workspaces/gem5-bootcamp-env +``` +```sh +wget https://cs.wisc.edu/~ramadas/gem5-isca24/gpu-fs/square-cpt/square.cpp +``` +```sh +mv square.cpp gem5-resources/src/gpu/square/ +``` +```sh +wget -O mi300.py https://cs.wisc.edu/~ramadas/gem5-isca24/gpu-fs/mi300 +``` +```sh +mv mi300.py gem5/configs/example/gpufs/ +``` +```sh +cd /workspaces/gem5-bootcamp-env/gem5-resources/src/gpu/square +``` +```sh +make +``` + +# To create checkpoint +cd /workspaces/gem5-bootcamp-env +/usr/local/bin/gem5-vega gem5/configs/example/gpufs/mi200.py --kernel ./vmlinux-gpu-ml-isca --disk-image ./x86-ubuntu-gpu-ml-isca --app ./gem5-resources/src/gpu/square/bin/square --no-kvm-perf --checkpoint-dir ./m5out + + +# To restore From 2a6db32c762ea5f06e3c5b042feb279f222f7cab Mon Sep 17 00:00:00 2001 From: Vishnu Ramadas Date: Fri, 28 Jun 2024 18:47:21 -0500 Subject: [PATCH 50/69] misc: Add files required for checkpointing --- materials/isca24/10-gpufs/Makefile | 24 +++ materials/isca24/10-gpufs/mi300.py | 172 ++++++++++++++++++ .../isca24/10-gpufs/square-cpt/square.cpp | 94 ++++++++++ 3 files changed, 290 insertions(+) create mode 100644 materials/isca24/10-gpufs/Makefile create mode 100644 materials/isca24/10-gpufs/mi300.py create mode 100644 materials/isca24/10-gpufs/square-cpt/square.cpp diff --git a/materials/isca24/10-gpufs/Makefile b/materials/isca24/10-gpufs/Makefile new file mode 100644 index 00000000..db6479ad --- /dev/null +++ b/materials/isca24/10-gpufs/Makefile @@ -0,0 +1,24 @@ +HIP_PATH?= /opt/rocm +HIPCC=$(HIP_PATH)/bin/hipcc + +BIN_DIR?= ./bin + +GEM5_PATH?=/workspaces/gem5-bootcamp-env/gem5 + +CXXFLAGS=-I$(GEM5_PATH)/include +CXXFLAGS+=-I$(GEM5_PATH)/util/m5/src +LDFLAGS=-L$(GEM5_PATH)/util/m5/build/x86/out +LDFLAGS+=-lm5 + +square: $(BIN_DIR)/square + +$(BIN_DIR)/square: square.cpp $(BIN_DIR) + $(HIPCC) --amdgpu-target=gfx801,gfx803,gfx900,gfx902,gfx90a $(CXXFLAGS) square.cpp -o $(BIN_DIR)/square $(CXXFLAGS) $(LDFLAGS) + +$(BIN_DIR): + mkdir -p $(BIN_DIR) + +clean: + rm -rf $(BIN_DIR) + +.PHONY: square clean diff --git a/materials/isca24/10-gpufs/mi300.py b/materials/isca24/10-gpufs/mi300.py new file mode 100644 index 00000000..69882332 --- /dev/null +++ b/materials/isca24/10-gpufs/mi300.py @@ -0,0 +1,172 @@ +# Copyright (c) 2024 Advanced Micro Devices, Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from this +# software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +""" This file creates an X86 system with a KVM CPU and GPU device capable of +running the MI300 ISA (gfx942). Most of this file sets up a runscript which +will load in a binary, shell script, or python file from the host and run that +within gem5. Jump to line 146 for list of system parameters to configure. +""" + +import argparse +import base64 +import os +import sys +import tempfile +from typing import Optional + +import runfs +from amd import AmdGPUOptions +from common import ( + GPUTLBOptions, + Options, +) +from ruby import Ruby + +import m5 + +from gem5.resources.resource import AbstractResource + +demo_runscript_without_checkpoint = """\ +export LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH +export HSA_ENABLE_INTERRUPT=0 +export HCC_AMDGPU_TARGET=gfx942 +export HSA_OVERRIDE_GFX_VERSION="9.4.2" +dmesg -n8 +cat /proc/cpuinfo +dd if=/root/roms/mi200.rom of=/dev/mem bs=1k seek=768 count=128 +if [ ! -f /lib/modules/`uname -r`/updates/dkms/amdgpu.ko ]; then + echo "ERROR: Missing DKMS package for kernel `uname -r`. Exiting gem5." + /sbin/m5 exit +fi +modprobe -v amdgpu ip_block_mask=0x6f ppfeaturemask=0 dpm=0 audio=0 ras_enable=0 +echo "Running {} {}" +echo "{}" | base64 -d > myapp +chmod +x myapp +./myapp {} +/sbin/m5 exit +""" + +demo_runscript_with_checkpoint = """\ +export LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH +export HSA_ENABLE_INTERRUPT=0 +export HCC_AMDGPU_TARGET=gfx942 +export HSA_OVERRIDE_GFX_VERSION="9.4.2" +dmesg -n8 +dd if=/root/roms/mi200.rom of=/dev/mem bs=1k seek=768 count=128 +if [ ! -f /lib/modules/`uname -r`/updates/dkms/amdgpu.ko ]; then + echo "ERROR: Missing DKMS package for kernel `uname -r`. Exiting gem5." + /sbin/m5 exit +fi +modprobe -v amdgpu ip_block_mask=0x6f ppfeaturemask=0 dpm=0 audio=0 ras_enable=0 +echo "Running {} {}" +echo "{}" | base64 -d > myapp +chmod +x myapp +./myapp {} +/sbin/m5 exit +""" + + +def addDemoOptions(parser): + parser.add_argument( + "-a", "--app", default=None, help="GPU application to run" + ) + parser.add_argument( + "-o", "--opts", default="", help="GPU application arguments" + ) + + +def runMI300GPUFS( + cpu_type, + disk: Optional[AbstractResource] = None, + kernel: Optional[AbstractResource] = None, + app: Optional[AbstractResource] = None, +): + parser = argparse.ArgumentParser() + runfs.addRunFSOptions(parser) + Options.addCommonOptions(parser) + AmdGPUOptions.addAmdGPUOptions(parser) + Ruby.define_options(parser) + GPUTLBOptions.tlb_options(parser) + addDemoOptions(parser) + + # Parse now so we can override options + args = parser.parse_args() + demo_runscript = "" + + if disk != None: + args.disk_image = disk.get_local_path() + if kernel != None: + args.kernel = kernel.get_local_path() + if app != None: + args.app = app.get_local_path() + + # Create temp script to run application + if not os.path.isfile(args.app): + print("Could not find applcation", args.app) + sys.exit(1) + + # Choose runscript Based on whether any checkpointing args are set + if args.checkpoint_dir is not None: + demo_runscript = demo_runscript_with_checkpoint + else: + demo_runscript = demo_runscript_without_checkpoint + + with open(os.path.abspath(args.app), "rb") as binfile: + encodedBin = base64.b64encode(binfile.read()).decode() + + _, tempRunscript = tempfile.mkstemp() + with open(tempRunscript, "w") as b64file: + runscriptStr = demo_runscript.format( + args.app, args.opts, encodedBin, args.opts + ) + b64file.write(runscriptStr) + + args.script = tempRunscript + + # Defaults for CPU + args.cpu_type = "X86KvmCPU" + args.mem_size = "8GB" + + # Defaults for MI300X + args.gpu_device = "MI300X" + args.dgpu_mem_size = "16GB" # GPU memory size, must be 16GB currently. + + # See: https://rocm.docs.amd.com/en/latest/conceptual/gpu-arch/mi300.html + # Topology for one XCD. Number of CUs is approximately 304 / 8, rounded + # up to 40 due to gem5 restriction of 4 CUs per SQC / scalar cache. + args.num_compute_units = 40 + args.gpu_topology = "Crossbar" + + # Run gem5 + runfs.runGpuFSSystem(args) + + +if __name__ == "__m5_main__": + runMI300GPUFS("X86KvmCPU") + diff --git a/materials/isca24/10-gpufs/square-cpt/square.cpp b/materials/isca24/10-gpufs/square-cpt/square.cpp new file mode 100644 index 00000000..044057b3 --- /dev/null +++ b/materials/isca24/10-gpufs/square-cpt/square.cpp @@ -0,0 +1,94 @@ +/* +Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +#include +#include "hip/hip_runtime.h" +#include "gem5/m5ops.h" +#include + +#define CHECK(cmd) \ +{\ + hipError_t error = cmd;\ + if (error != hipSuccess) { \ + fprintf(stderr, "error: '%s'(%d) at %s:%d\n", hipGetErrorString(error), error,__FILE__, __LINE__); \ + exit(EXIT_FAILURE);\ + }\ +} + +/* + * Square each element in the array A and write to array C. + */ +template +__global__ void +vector_square(T *C_d, const T *A_d, size_t N) +{ + size_t offset = (hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x); + size_t stride = hipBlockDim_x * hipGridDim_x ; + + for (size_t i=offset; i Date: Fri, 28 Jun 2024 20:51:42 -0300 Subject: [PATCH 51/69] misc: Update README with file paths --- materials/isca24/10-gpufs/README.md | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/materials/isca24/10-gpufs/README.md b/materials/isca24/10-gpufs/README.md index 3d56a331..65a3e45c 100644 --- a/materials/isca24/10-gpufs/README.md +++ b/materials/isca24/10-gpufs/README.md @@ -7,12 +7,10 @@ To compile square for MI300 cd /workspaces/gem5-bootcamp-env ``` ```sh -wget https://cs.wisc.edu/~ramadas/gem5-isca24/gpu-fs/Makefile -```sh -mv Makefile gem5-resources/src/gpu/square/Makefile +cp materials/isca24/10-gpufs/Makefile gem5-resources/src/gpu/square/ ``` ```sh -cd /workspaces/gem5-bootcamp-env/gem5-resources/src/gpu/square +cd gem5-resources/src/gpu/square ``` ```sh make @@ -33,27 +31,27 @@ To create a checkpoint (assuming m5_checkpoint_addr() is already included in the cd /workspaces/gem5-bootcamp-env ``` ```sh -wget https://cs.wisc.edu/~ramadas/gem5-isca24/gpu-fs/square-cpt/square.cpp -``` -```sh -mv square.cpp gem5-resources/src/gpu/square/ +cp materials/isca24/10-gpufs/square-cpu/square.cpp gem5-resources/src/gpu/square/ ``` ```sh -wget -O mi300.py https://cs.wisc.edu/~ramadas/gem5-isca24/gpu-fs/mi300 +cp materials/isca24/10-gpufs/mi300.py gem5/configs/example/gpufs/ ``` ```sh -mv mi300.py gem5/configs/example/gpufs/ -``` -```sh -cd /workspaces/gem5-bootcamp-env/gem5-resources/src/gpu/square +cd gem5-resources/src/gpu/square ``` ```sh make ``` # To create checkpoint +```sh cd /workspaces/gem5-bootcamp-env +``` +```sh /usr/local/bin/gem5-vega gem5/configs/example/gpufs/mi200.py --kernel ./vmlinux-gpu-ml-isca --disk-image ./x86-ubuntu-gpu-ml-isca --app ./gem5-resources/src/gpu/square/bin/square --no-kvm-perf --checkpoint-dir ./m5out - +``` # To restore +```sh +/usr/local/bin/gem5-vega gem5/configs/example/gpufs/mi200.py --kernel ./vmlinux-gpu-ml-isca --disk-image ./x86-ubuntu-gpu-ml-isca --app ./gem5-resources/src/gpu/square/bin/square --no-kvm-perf --restore-dir ./m5out +``` From 0db56bac31493498b9472dcef72063d85d1870a3 Mon Sep 17 00:00:00 2001 From: Vishnu Ramadas Date: Fri, 28 Jun 2024 21:14:47 -0300 Subject: [PATCH 52/69] misc: Fix typo in README, add m5ops build steps --- materials/isca24/10-gpufs/README.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/materials/isca24/10-gpufs/README.md b/materials/isca24/10-gpufs/README.md index 65a3e45c..b22c5b3c 100644 --- a/materials/isca24/10-gpufs/README.md +++ b/materials/isca24/10-gpufs/README.md @@ -2,7 +2,17 @@ You need not use docker to run simulations in GPU FS mode. We will be simulating AMD's latest GPU, MI300, in FS mode -To compile square for MI300 +#If you haven't built m5ops yet, then + +```sh +cd /workspaces/gem5-bootcamp-env/gem5/util/m5 +``` +```sh +scons build/x86/out/m5 +``` + +#To compile square for MI300 + ```sh cd /workspaces/gem5-bootcamp-env ``` @@ -16,7 +26,7 @@ cd gem5-resources/src/gpu/square make ``` -To run square in FS mode, +#To run square in FS mode ```sh cd /workspaces/gem5-bootcamp-env @@ -25,13 +35,13 @@ cd /workspaces/gem5-bootcamp-env /usr/local/bin/gem5-vega gem5/configs/example/gpufs/mi200.py --kernel ./vmlinux-gpu-ml-isca --disk-image ./x86-ubuntu-gpu-ml-isca --app ./gem5-resources/src/gpu/square/bin/square --no-kvm-perf ``` -To create a checkpoint (assuming m5_checkpoint_addr() is already included in the application), we need to recompile square so that it creates a checkpoint +#To create a checkpoint (assuming m5_checkpoint_addr() is already included in the application), we need to recompile square so that it creates a checkpoint ```sh cd /workspaces/gem5-bootcamp-env ``` ```sh -cp materials/isca24/10-gpufs/square-cpu/square.cpp gem5-resources/src/gpu/square/ +cp materials/isca24/10-gpufs/square-cpt/square.cpp gem5-resources/src/gpu/square/ ``` ```sh cp materials/isca24/10-gpufs/mi300.py gem5/configs/example/gpufs/ @@ -44,6 +54,7 @@ make ``` # To create checkpoint + ```sh cd /workspaces/gem5-bootcamp-env ``` From f9ca63c4580ce989a7a7faf618260a723f2d7cde Mon Sep 17 00:00:00 2001 From: Vishnu Ramadas Date: Fri, 28 Jun 2024 21:27:07 -0300 Subject: [PATCH 53/69] misc: Update checkpoint make command to "make clean && make" --- materials/isca24/10-gpufs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/materials/isca24/10-gpufs/README.md b/materials/isca24/10-gpufs/README.md index b22c5b3c..c5bf74ea 100644 --- a/materials/isca24/10-gpufs/README.md +++ b/materials/isca24/10-gpufs/README.md @@ -50,7 +50,7 @@ cp materials/isca24/10-gpufs/mi300.py gem5/configs/example/gpufs/ cd gem5-resources/src/gpu/square ``` ```sh -make +make clean && make ``` # To create checkpoint From 43778bb68f4839e580e409f9f2090d15ce6c5443 Mon Sep 17 00:00:00 2001 From: Vishnu Ramadas Date: Fri, 28 Jun 2024 23:47:56 -0300 Subject: [PATCH 54/69] misc: Remove a few redundant cd command from GPUFS README --- materials/isca24/10-gpufs/README.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/materials/isca24/10-gpufs/README.md b/materials/isca24/10-gpufs/README.md index c5bf74ea..1b6a16b0 100644 --- a/materials/isca24/10-gpufs/README.md +++ b/materials/isca24/10-gpufs/README.md @@ -14,13 +14,10 @@ scons build/x86/out/m5 #To compile square for MI300 ```sh -cd /workspaces/gem5-bootcamp-env -``` -```sh -cp materials/isca24/10-gpufs/Makefile gem5-resources/src/gpu/square/ +cd /workspaces/gem5-bootcamp-env/gem5-resources/src/gpu/square ``` ```sh -cd gem5-resources/src/gpu/square +cp /workspaces/gem5-bootcamp-env/materials/isca24/10-gpufs/Makefile ./ ``` ```sh make @@ -37,9 +34,6 @@ cd /workspaces/gem5-bootcamp-env #To create a checkpoint (assuming m5_checkpoint_addr() is already included in the application), we need to recompile square so that it creates a checkpoint -```sh -cd /workspaces/gem5-bootcamp-env -``` ```sh cp materials/isca24/10-gpufs/square-cpt/square.cpp gem5-resources/src/gpu/square/ ``` From 33af8526c507721b9972ef54854bcbeee2c1658d Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Fri, 5 Jul 2024 09:37:48 -0700 Subject: [PATCH 55/69] slides: Add initial Marp slides Signed-off-by: Jason Lowe-Power --- .devcontainer/devcontainer.json | 3 +- .gitignore | 4 + .vscode/settings.json | 5 +- slides/.marprc.yml | 4 + slides/02-Using gem5/00-getting-started.md | 171 ++++++++++ slides/02-Using gem5/01-stdlib.md | 22 ++ slides/02-Using gem5/resources-screenshot.png | Bin 0 -> 34106 bytes slides/README.md | 17 + slides/themes/gem5.css | 295 ++++++++++++++++++ slides/themes/gem5ColorVert.png | Bin 0 -> 31879 bytes slides/themes/gem5Long.png | Bin 0 -> 18959 bytes 11 files changed, 519 insertions(+), 2 deletions(-) create mode 100644 slides/.marprc.yml create mode 100644 slides/02-Using gem5/00-getting-started.md create mode 100644 slides/02-Using gem5/01-stdlib.md create mode 100644 slides/02-Using gem5/resources-screenshot.png create mode 100644 slides/README.md create mode 100644 slides/themes/gem5.css create mode 100644 slides/themes/gem5ColorVert.png create mode 100644 slides/themes/gem5Long.png diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index ce823051..f8106fe0 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -21,7 +21,8 @@ "ms-vscode.cpptools-themes", "ms-vscode.makefile-tools", "Tsinghua-Hexin-Joint-Institute.gem5-slicc", - "ms-python.black-formatter" + "ms-python.black-formatter", + "marp-team.marp-vscode" ] } }, diff --git a/.gitignore b/.gitignore index 61fd392d..26457716 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,7 @@ square vmlinux-gpu-ml-isca x86-ubuntu-gpu-ml-isca x86-ubuntu-gpu-ml-isca.gz + +# Ignore slides +*.pdf +*.html diff --git a/.vscode/settings.json b/.vscode/settings.json index 10acd13a..07824b76 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,5 +4,8 @@ 79 ], "files.trimTrailingWhitespace": true, - "files.insertFinalNewline": true + "files.insertFinalNewline": true, + "markdown.marp.themes": [ + "slides/themes/gem5.css" + ] } diff --git a/slides/.marprc.yml b/slides/.marprc.yml new file mode 100644 index 00000000..10cf761a --- /dev/null +++ b/slides/.marprc.yml @@ -0,0 +1,4 @@ +# .marprc.yml +allowLocalFiles: true +pdf: true +themeSet: "themes/" diff --git a/slides/02-Using gem5/00-getting-started.md b/slides/02-Using gem5/00-getting-started.md new file mode 100644 index 00000000..71fb1243 --- /dev/null +++ b/slides/02-Using gem5/00-getting-started.md @@ -0,0 +1,171 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Getting Started with gem5 +footer: "![gem5 logo](../themes/gem5Long.png)" +--- + + + +## Getting started with gem5 + +In this section, we will get familiar the tutorial's codespace environment and run our first gem5 simulation. + +--- + +## Let’s hit the ground running + +### This example will show + +1. How someone obtains gem5. +2. How you build it. +3. Running a very basic "Hello World" simulation. + +- Getting and compiling gem5 is often the hardest part. +- There's a lot of complicated things happening behind the scenes. We will explain them later. + +--- + +## Typical Downloading + +```sh +> git clone https://github.com/gem5/gem5 +> cd gem5 +``` + +> There are two main branches in the gem5 repository: +> **stable**: The default branch for gem5. Updated at stable releases. Currently v24.0. +> **develop**: The branch in which new features, improvements, etc. are added regularly for the next release. + +In this tutorial we’re going to use codespaces with a repo which includes some example materials. Though all the gem5 code is v24.0 + +--- + +## Using codespaces + +- We will be using the "bootcamp environment" + - Note: That's also where the source for these slides are + +> **Step 1:** Go to the classroom + +You need to be in the github organization (via the classroom) to get free codespaces. + +--- + +## Using codespaces 2 + +**AFTER** joining the classroom, you can go to the repository and click on the green "Code" button. +Again, note that this is the repo where the slides are. + + + +![Screenshot]() + +--- + +## Using codespaces 3 + +> **Step 3:** Wait for the environment to load. + +![Screenshot]() + +--- + +## Building gem5 + +```sh +> scons build/ALL/gem5.opt +``` + +- This takes a while (10-15 minutes with 16 cores, ~1hr on 1 core). +- If you're using codespaces, we have prebuilt binaries for you. +- We'll talk more about the build system and options later. + +--- + +## Let’s start by writing a simulation configuration + +```python +from gem5.prebuilt.demo.x86_demo_board import X86DemoBoard +from gem5.resources.resource import obtain_resource +from gem5.simulate.simulator import Simulator +``` + +This template code is available in the [materials/](/materials/...) directory. +Open the `materials/01-basic.py` file and start editing. + +--- + +## Let’s be lazy and use a prebuild board + +```python +board = X86DemoBoard() +``` + +The X86DemoBoard has the following properties: + +- Single Channel DDR3, 2GB Memory. +- A 4 core 3GHz processor (using gem5’s ‘timing’ model). +- A MESI Two Level Cache Hierarchy, with 32kB data and instruction case and a 1MB L2 Cache. +- Will be run as a Full-System simulation. + +Source is available: [src/python/gem5/prebuilt/demo/x86_demo_board.py](/src/python/gem5/prebuilt/demo/x86_demo_board.py). + +--- + +## Let't load some software + +```python +board.set_workload( + obtain_resource("x86-ubuntu-24.04-boot-no-systemd") +) +``` + +- `obtain_resource` downloads the files needed to run workload + - Boots Ubuntu without systemd then exits the simulation + - Downloads disk image, kernel, and sets default parameters + +See the [gem5 resource page](https://resources.gem5.org/resources/x86-ubuntu-24.04-boot-no-systemd?version=1.0.0) + +--- + +## gem5 resources web portal + +[Link](https://resources.gem5.org/resources/x86-ubuntu-24.04-boot-no-systemd?version=1.0.0) + +![Screenshot of gem5 resources webpage](resources-screenshot.png) + +--- + +## Now, let's create a simulator to actually run + +```python +sim = Simulator(board) +sim.run(20_000_000_000) # 20 billion ticks or 20 ms +``` + +--- + +## That's it! + +```python +from gem5.prebuilt.demo.x86_demo_board import X86DemoBoard +from gem5.resources.resource import obtain_resource +from gem5.simulate.simulator import Simulator + +board = X86DemoBoard() +board.set_workload( + obtain_resource("x86-ubuntu-24.04-boot-no-systemd") +) +sim = Simulator(board) +sim.run(20_000_000_000) # 20 billion ticks or 20 ms +``` + +To run it: + +```sh +> gem5 materials/01-basic.py +``` + +--- diff --git a/slides/02-Using gem5/01-stdlib.md b/slides/02-Using gem5/01-stdlib.md new file mode 100644 index 00000000..f77cc1de --- /dev/null +++ b/slides/02-Using gem5/01-stdlib.md @@ -0,0 +1,22 @@ +--- +marp: true +paginate: true +theme: gem5 +--- + +# gem5's Standard Library + +--- + +# What is the standard library for? + +- When done without the library you must define *every part* of your simulation +- This allows for maximum flexibility, but it can mean creating 100s of lines of python to create the most basic simulation + +--- + +# Where to find stuff: Importing in a script + +```python +from gem5.components import * +``` diff --git a/slides/02-Using gem5/resources-screenshot.png b/slides/02-Using gem5/resources-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..1b119ea17c367c04d37db3e83207bb1e8d7bcb9a GIT binary patch literal 34106 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%0A_^2wl-CMOaMsg<_`k-! zCIg8J7KTm@@BFGoeTtxbnnlna^-_HeNRo9tN#kOp-z24^#XU=_He0Bb-RTYD9m0Bi ze5|ru1#=3TBt17mAV5K(Xd7}==^=)`oq*F6)WSYNS2tG^cdyXFWI%#h&-m2Ut?%6M zM#by=1fkRqznq{nz^~QIt1(f`EhA_nOrkDY?z~1T*2SfLiH>qHE)g2vX5$Ak>EZ|V zPfb3NBBXKIFNt2a9`~pn2%+9jOBnxt$GGod<|z|AlWA_JjWI-r#9wT`u-{G|pX&UC z;F=YjWdopTH#^pRz)F};OH2EHX&S)jBt>Hy#6rWW1`V%5`JA0G-WDyc*Tu?Q&3y4sPT7KEQqQ)1$2nrBZ~d&Jq2lYH`fX+MG9|zHdyQ;_PiOw zC3luxSKfFJ{8Se26uoxDo{#fduqpMskJGvn^|o{8VKn4yU2@56i>?!QkNnvFhgB4E z|591YwNFS0G>~MA=beT5pK{avjNg^0eTRX^+bdZHb zLyz<<%-;_Kn%=umX{j4s<+RRe(YQOR)ONL2grL1;8gh5#izfDV`&U5Cvz$U=K!DLBMW$y{iHa4JQeI zWEXOjjPsHSnG4JwvgTn>T~=CYcsczGtiDFgk)kwW2WnXA;ANDO@g%32C_YRkU_7

HTERuK#0g* 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 tM-l%2ABgl{ISJ +``` diff --git a/slides/themes/gem5.css b/slides/themes/gem5.css new file mode 100644 index 00000000..8bef55c2 --- /dev/null +++ b/slides/themes/gem5.css @@ -0,0 +1,295 @@ +@charset "UTF-8"; +/*! + * Marp gem5 theme + * @theme gem5 + * @author Jason Lowe-Power + * + * @auto-scaling true + * @size 16:9 1280px 720px + * @size 4:3 960px 720px + */ + +:root { + --gem5-gem5: #008EB0; + --gem5-background: #F6F8FA; + --gem5-light: #c8eaf3; + --gem5-dark: #00627a; +} + +section { + font-size: 2.0em; + font-family: sans-serif; + line-height: 1.35; + padding: 70px; + background-color: var(--gem5-background); +} + +/* Move the title of the slide up a bit */ +section>*:first-child, +section>header:first-child+* { + margin-top: 0; +} + +/* Draw a triangle on the left of the title */ +h2::before { + content: ""; + position: absolute; + top: 78px; + left: -10px; + width: 0; + height: 0; + border-left: 30px solid transparent; + border-right: 30px solid transparent; + border-bottom: 40px solid var(--gem5-gem5); + rotate: 90deg; +} + +/* Draw a triangle in the lower right */ +section::before { + content: ""; + position: absolute; + bottom: 0; + right: 0; + width: 0; + height: 0; + border-left: 100px solid transparent; + border-top: 100px solid var(--gem5-gem5); + rotate: 90deg; +} + +/* Add an image to the bottom center of the page */ +footer { + position: fixed; + left: 0; + right: 0; + bottom: 60px; + height: 100px; + margin-bottom: -80px; +} + +footer img { + height: 60px; + display: block; + margin: 0 auto; +} + +/* For the page number */ +section::after { + right: -50px; + bottom: -50px; + font-size: 80%; +} + +a { + color: var(--gem5-gem5); +} + +blockquote { + position: relative; + margin: 1em 0; + padding: 0 1em; + border-left: 4px solid var(--gem5-gem5); + background-color: var(--gem5-light); +} + +blockquote a { + color: var(--gem5-dark); +} + +/****************************************************/ +/* For title page */ +/* Remove the triangle */ +section.title h2::before { + border: none; +} + +/* Remove the triangle in the lower right */ +section.title::before { + border: none; +} + +/* Remove the page number */ +section.title::after { + display: none; +} + +/* Remove the bottom image */ +section.title footer img { + display: none; +} + +section.title h2 { + font-size: 1.5rem; + margin-top: 50px; + display: block; + text-align: center; + width: 60%; +} + +/* gem5 logo on the right */ +section.title { + background-image: url("../../slides/themes/gem5ColorVert.png"); + background-repeat: no-repeat; + background-position: right; +} + +/* title on the left */ +section.title p { + width: 60%; + font-size: 0.6rem; +} + +/****************************************************/ +/* For code block */ + +pre { + font-size: 1.02em; + line-height: 1.2; + padding: 10px; + border-radius: 5px; + background-color: #ffffff; +} + +code { + font-family: monospace; + font-size: 1.05em; + background-color: #ffffff; +} + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ + +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ + +pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; + background-color: #ffffff; +} + +code.hljs { + padding: 3px 5px; +} + +/* end baseline CSS */ + +.hljs { + background: #ffffff; + color: #444; +} + +/* Base color: saturation 0; */ + +.hljs-subst { + /* default */ +} + +/* purposely ignored */ +.hljs-formula, +.hljs-attr, +.hljs-property, +.hljs-params {} + +.hljs-comment { + color: #697070; +} + +.hljs-tag, +.hljs-punctuation { + color: #444a; +} + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; +} + + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, + +.hljs-doctag, +.hljs-name { + font-weight: bold; +} + + +/* User color: hue: 0 */ + +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; +} + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; +} + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #ab5656; +} + +/* Language color: hue: 90; */ + +.hljs-literal { + color: #695; +} + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; +} + + +/* Meta color: hue: 200 */ + +.hljs-meta { + color: #1f7199; +} + +.hljs-meta .hljs-string { + color: #38a; +} + + +/* Misc effects */ + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/slides/themes/gem5ColorVert.png b/slides/themes/gem5ColorVert.png new file mode 100644 index 0000000000000000000000000000000000000000..6ced46710570ce1366f11fd38cd8147f407cc6cc GIT binary patch literal 31879 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 pZAw+^ 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 literal 0 HcmV?d00001 From 5f9085367b7e0e5cdf63a61f068386d266578fc6 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Fri, 5 Jul 2024 16:16:25 -0700 Subject: [PATCH 56/69] slides: Adding outline for 2024 bootcamp slides Signed-off-by: Jason Lowe-Power --- .../00-introduction-to-bootcamp.md | 104 ++++++++++++++++++ .../01-simulation-background.md | 13 +++ .../resources-screenshot.png | Bin .../02-getting-started.md} | 17 ++- .../01-Introduction/03-python-background.md | 0 .../01-stdlib.md | 9 +- slides/02-Using-gem5/02-gem5-resources.md | 0 slides/02-Using-gem5/03-workloads-in-gem5.md | 22 ++++ slides/02-Using-gem5/04-cores.md | 22 ++++ slides/02-Using-gem5/05-cache-hierarchies.md | 13 +++ slides/02-Using-gem5/06-memory.md | 19 ++++ slides/02-Using-gem5/07-full-system.md | 20 ++++ .../08-accelerating-simulation.md | 14 +++ slides/02-Using-gem5/09-sampling.md | 14 +++ .../01-sim-objects.md | 14 +++ .../02-modeling-cores.md | 21 ++++ .../03-modeling-cache-coherence.md | 18 +++ slides/README.md | 19 ++++ slides/themes/gem5.css | 10 +- 19 files changed, 339 insertions(+), 10 deletions(-) create mode 100644 slides/01-Introduction/00-introduction-to-bootcamp.md create mode 100644 slides/01-Introduction/01-simulation-background.md rename slides/{02-Using gem5 => 01-Introduction/02-getting-started-imgs}/resources-screenshot.png (100%) rename slides/{02-Using gem5/00-getting-started.md => 01-Introduction/02-getting-started.md} (87%) create mode 100644 slides/01-Introduction/03-python-background.md rename slides/{02-Using gem5 => 02-Using-gem5}/01-stdlib.md (65%) create mode 100644 slides/02-Using-gem5/02-gem5-resources.md create mode 100644 slides/02-Using-gem5/03-workloads-in-gem5.md create mode 100644 slides/02-Using-gem5/04-cores.md create mode 100644 slides/02-Using-gem5/05-cache-hierarchies.md create mode 100644 slides/02-Using-gem5/06-memory.md create mode 100644 slides/02-Using-gem5/07-full-system.md create mode 100644 slides/02-Using-gem5/08-accelerating-simulation.md create mode 100644 slides/02-Using-gem5/09-sampling.md create mode 100644 slides/03-Developing-gem5-models/01-sim-objects.md create mode 100644 slides/03-Developing-gem5-models/02-modeling-cores.md create mode 100644 slides/03-Developing-gem5-models/03-modeling-cache-coherence.md diff --git a/slides/01-Introduction/00-introduction-to-bootcamp.md b/slides/01-Introduction/00-introduction-to-bootcamp.md new file mode 100644 index 00000000..909ec55c --- /dev/null +++ b/slides/01-Introduction/00-introduction-to-bootcamp.md @@ -0,0 +1,104 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Getting Started with gem5 +footer: "![gem5 logo](../themes/gem5Long.png)" +--- + + + +## Welcome to the gem5 bootcamp! + +--- + +## About the overall structure of the bootcamp + +- People presenting +- People attending + +--- + +## Plan for the week + +| Monday | Tuesday | Wednesday | Thursday | Friday | +|--------|---------|-----------|----------|--------| + +- Introduction + - [Background on simulation](01-simulation-background.md) + - What is is simulation and why does it matter + - gem5 history + - [Getting started with gem5](02-getting-started.md) + - Getting into the codespace environment + - Running your first simulation + - [Background on Python and gem5](03-python-background.md) + - Python basics + - Python in gem5 + - Object-oriented programming in Python +- Using gem5 + - [gem5's standard library](../02-Using%20gem5/01-stdlib.md) + - [gem5 resources](../02-Using%20gem5/02-gem5-resources.md) + - What are resources? (Disks, kernels, binaries, etc.) + - How to get resources + - How to use resources + - Workloads and suites + - [Workloads in gem5](../02-Using%20gem5/03-workloads-in-gem5.md) + - Intro to syscall emulation mode + - The gem5-bridge utility and library + - Cross compiling + - Traffic generator + - [Modeling cores in gem5](../02-Using%20gem5/04-cores.md) + - CPU models in gem5 + - Using the CPU models + - Look at the gem5 generated statistics + - [Modeling caches in gem5](../02-Using%20gem5/05-caches.md) + - Cache models in gem5 (Ruby and classic) + - Using the cache models + - Tradeoffs between classic and Ruby + - Look at the gem5 generated statistics + - [Modeling memory in gem5](../02-Using%20gem5/06-memory.md) + - Memory models in gem5 () + - Using the memory models + - Testing memory with traffic generators + +--- + +## Our goals for the gem5 bootcamp + +- Make gem5 less painful and flatten the learning curve +- Give you a vocabulary for asking questions​ +- Provide a reference for the future​ +- Give you material to take back and teach your colleagues + +--- + +## How this is going to work + +- We'll be going mostly top-down +- Highly iterative: + - You'll see the same thing over and over + - Each time it will be one level deeper +- Lots of coding examples + - Both live coding and practice problems + +--- + +## Other admin things + +--- + +## Important resources + +- [Bootcamp website]() +- [Source for bootcamp materials]() (You'll work here) +- [GitHub Classroom]() (Needed to use codespaces) +- [gem5 Slack]() (for asking offline questions) +- [gem5 code](https://github.com/gem5/gem5) +- [gem5 website](https://www.gem5.org/) +- [gem5 YouTube](https://youtube.com/@gem5) + +--- + +## Slides about gem5 + +(Get from PPT) diff --git a/slides/01-Introduction/01-simulation-background.md b/slides/01-Introduction/01-simulation-background.md new file mode 100644 index 00000000..dbd093e8 --- /dev/null +++ b/slides/01-Introduction/01-simulation-background.md @@ -0,0 +1,13 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Computer Architecture Simulation +footer: "![gem5 logo](../themes/gem5Long.png)" +--- + + + +## Computer Architecture Simulation + +--- diff --git a/slides/02-Using gem5/resources-screenshot.png b/slides/01-Introduction/02-getting-started-imgs/resources-screenshot.png similarity index 100% rename from slides/02-Using gem5/resources-screenshot.png rename to slides/01-Introduction/02-getting-started-imgs/resources-screenshot.png diff --git a/slides/02-Using gem5/00-getting-started.md b/slides/01-Introduction/02-getting-started.md similarity index 87% rename from slides/02-Using gem5/00-getting-started.md rename to slides/01-Introduction/02-getting-started.md index 71fb1243..96f017f8 100644 --- a/slides/02-Using gem5/00-getting-started.md +++ b/slides/01-Introduction/02-getting-started.md @@ -134,7 +134,7 @@ See the [gem5 resource page](https://resources.gem5.org/resources/x86-ubuntu-24. [Link](https://resources.gem5.org/resources/x86-ubuntu-24.04-boot-no-systemd?version=1.0.0) -![Screenshot of gem5 resources webpage](resources-screenshot.png) +![Screenshot of gem5 resources webpage](02-getting-started-imgs/resources-screenshot.png) --- @@ -153,7 +153,6 @@ sim.run(20_000_000_000) # 20 billion ticks or 20 ms from gem5.prebuilt.demo.x86_demo_board import X86DemoBoard from gem5.resources.resource import obtain_resource from gem5.simulate.simulator import Simulator - board = X86DemoBoard() board.set_workload( obtain_resource("x86-ubuntu-24.04-boot-no-systemd") @@ -169,3 +168,17 @@ To run it: ``` --- + +## Take aways + +- `gem5` is a Python interpreter. +- The *interface* to `gem5` is Python scripts. +- `gem5` contains many Python libraries. + - All of the models in gem5 (e.g., caches, CPUs, etc.). + - The standard library (stdlib) +- The output of gem5 is in `m5out/` by default. + - Details of configuration + - Other output + - **Statistics** (the most important part) +- The codespaces environment is configured to make things easy. + - You'll need to do some work to set up your own environment. diff --git a/slides/01-Introduction/03-python-background.md b/slides/01-Introduction/03-python-background.md new file mode 100644 index 00000000..e69de29b diff --git a/slides/02-Using gem5/01-stdlib.md b/slides/02-Using-gem5/01-stdlib.md similarity index 65% rename from slides/02-Using gem5/01-stdlib.md rename to slides/02-Using-gem5/01-stdlib.md index f77cc1de..733be9e6 100644 --- a/slides/02-Using gem5/01-stdlib.md +++ b/slides/02-Using-gem5/01-stdlib.md @@ -2,20 +2,23 @@ marp: true paginate: true theme: gem5 +title: gem5's Standard Library --- -# gem5's Standard Library + + +## gem5's Standard Library --- -# What is the standard library for? +## What is the standard library for? - When done without the library you must define *every part* of your simulation - This allows for maximum flexibility, but it can mean creating 100s of lines of python to create the most basic simulation --- -# Where to find stuff: Importing in a script +## Where to find stuff: Importing in a script ```python from gem5.components import * diff --git a/slides/02-Using-gem5/02-gem5-resources.md b/slides/02-Using-gem5/02-gem5-resources.md new file mode 100644 index 00000000..e69de29b diff --git a/slides/02-Using-gem5/03-workloads-in-gem5.md b/slides/02-Using-gem5/03-workloads-in-gem5.md new file mode 100644 index 00000000..b8be3ad8 --- /dev/null +++ b/slides/02-Using-gem5/03-workloads-in-gem5.md @@ -0,0 +1,22 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Running Things on gem5 +footer: "![gem5 logo](../themes/gem5Long.png)" +author: "Maryam Babaie" +editor: "Jason Lowe-Power" +--- + + + +## Running Things on gem5 + +--- + +## What we will cover + +- Intro to syscall emulation mode +- The gem5-bridge utility and library +- Cross compiling +- Traffic generator diff --git a/slides/02-Using-gem5/04-cores.md b/slides/02-Using-gem5/04-cores.md new file mode 100644 index 00000000..58bc8676 --- /dev/null +++ b/slides/02-Using-gem5/04-cores.md @@ -0,0 +1,22 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Modeling CPU cores in gem5 +footer: "![gem5 logo](../themes/gem5Long.png)" +--- + + + +## Modeling CPU cores in gem5 + +--- + +## Outline + +- CPU models in gem5​ + - AtomicSimpleCPU, TimingSimpleCPU, O3CPU, MinorCPU, KvmCPU​ +- Using the CPU models​ + - Set-up a simple system with two cache sizes and three CPU models​ +- Look at the gem5 generated statistics​ + - To understand differences among CPU models diff --git a/slides/02-Using-gem5/05-cache-hierarchies.md b/slides/02-Using-gem5/05-cache-hierarchies.md new file mode 100644 index 00000000..44a4a812 --- /dev/null +++ b/slides/02-Using-gem5/05-cache-hierarchies.md @@ -0,0 +1,13 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Modeling caches in gem5 +footer: "![gem5 logo](../themes/gem5Long.png)" +--- + + + +## Modeling caches in gem5 + +--- diff --git a/slides/02-Using-gem5/06-memory.md b/slides/02-Using-gem5/06-memory.md new file mode 100644 index 00000000..cb2f5e5c --- /dev/null +++ b/slides/02-Using-gem5/06-memory.md @@ -0,0 +1,19 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Modeling DRAM in gem5 +footer: "![gem5 logo](../themes/gem5Long.png)" +--- + + + +## Modeling DRAM in gem5 + +--- + +I don't think this exists, yet. + +Doing some stuff about the traffic generators and testing memory controllers would be a good idea. + +Show examples of interleaved memory, HBM, hybrid memory would be good. diff --git a/slides/02-Using-gem5/07-full-system.md b/slides/02-Using-gem5/07-full-system.md new file mode 100644 index 00000000..e860b825 --- /dev/null +++ b/slides/02-Using-gem5/07-full-system.md @@ -0,0 +1,20 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Full system simulation in gem5 +--- + + + +## Full system simulation in gem5 + +--- + +## What we will cover + +- What is full system simulation? +- Basics of booting up a real system in gem5 +- Creating disk images using packer and qemu +- Extending/modifying a gem5 disk image +- m5term to interact with a running system diff --git a/slides/02-Using-gem5/08-accelerating-simulation.md b/slides/02-Using-gem5/08-accelerating-simulation.md new file mode 100644 index 00000000..c0fb4a29 --- /dev/null +++ b/slides/02-Using-gem5/08-accelerating-simulation.md @@ -0,0 +1,14 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Accelerating gem5 simulations +--- + + + +## Accelerating gem5 simulations + +In this section, we will cover how to accelerate gem5 simulations using fast-forwarding and checkpointing. + +--- diff --git a/slides/02-Using-gem5/09-sampling.md b/slides/02-Using-gem5/09-sampling.md new file mode 100644 index 00000000..a1bf0410 --- /dev/null +++ b/slides/02-Using-gem5/09-sampling.md @@ -0,0 +1,14 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Sampled simulation with gem5 +--- + + + +## Sampled simulation with gem5 + +--- + +This is all new! diff --git a/slides/03-Developing-gem5-models/01-sim-objects.md b/slides/03-Developing-gem5-models/01-sim-objects.md new file mode 100644 index 00000000..8bc7053c --- /dev/null +++ b/slides/03-Developing-gem5-models/01-sim-objects.md @@ -0,0 +1,14 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Developing SimObjects in gem5 +--- + + + +## Developing `SimObjects` in gem5 + +In this section, you will go from a blank page to a cache! + +--- diff --git a/slides/03-Developing-gem5-models/02-modeling-cores.md b/slides/03-Developing-gem5-models/02-modeling-cores.md new file mode 100644 index 00000000..ae0ed94b --- /dev/null +++ b/slides/03-Developing-gem5-models/02-modeling-cores.md @@ -0,0 +1,21 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Modeling Cores in gem5 +--- + + + +## Modeling Cores in gem5 + +--- + +## Outline + +- How the execution model works in gem5 +- The idea of how gem5 separates microarchitecture from ISA +- How translation works in gem5 +- How instructions are executed in gem5 +- How to add a new instruction +- How the ISA language works in gem5 diff --git a/slides/03-Developing-gem5-models/03-modeling-cache-coherence.md b/slides/03-Developing-gem5-models/03-modeling-cache-coherence.md new file mode 100644 index 00000000..2ea4d38b --- /dev/null +++ b/slides/03-Developing-gem5-models/03-modeling-cache-coherence.md @@ -0,0 +1,18 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Modeling Cache Coherence in gem5 +--- + + + +## Modeling Cache Coherence in gem5 + +--- + +## Outline + +This is all about Ruby/slicc + +- Network/garnet diff --git a/slides/README.md b/slides/README.md index 1e8078fc..e80c0465 100644 --- a/slides/README.md +++ b/slides/README.md @@ -15,3 +15,22 @@ Note: The local paths for the css file and the markdown don't work great. YMMV. ```sh docker run --rm -v $PWD:/home/marp/app/ -e MARP_USER=$UID:$GID -e LANG=$LANG marpteam/marp-cli ``` + +## Style rules + +- Use `---` to separate slides. +- The first slide should be a "title" slide ``. +- The titles of all slides should be heading 2 `##` +- Code should be at most 65 characters wide. + +## Adding diagrams + +To add diagrams, you can use the [draw.io VS Code extension](https://marketplace.visualstudio.com/items?itemName=hediet.vscode-drawio). + +After installing the extension, create a file with the name "\.drawio.png" and open it in VS Code. +Make sure you create a directory for each slide deck with its images. +You can then embed the image in the slide with the following markdown. + +```md +![](/.drawio.png) +``` diff --git a/slides/themes/gem5.css b/slides/themes/gem5.css index 8bef55c2..10f93e01 100644 --- a/slides/themes/gem5.css +++ b/slides/themes/gem5.css @@ -9,6 +9,8 @@ * @size 4:3 960px 720px */ +@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100..700;1,100..700&display=swap'); + :root { --gem5-gem5: #008EB0; --gem5-background: #F6F8FA; @@ -119,7 +121,7 @@ section.title footer img { } section.title h2 { - font-size: 1.5rem; + font-size: 1.3rem; margin-top: 50px; display: block; text-align: center; @@ -143,16 +145,14 @@ section.title p { /* For code block */ pre { - font-size: 1.02em; - line-height: 1.2; padding: 10px; border-radius: 5px; background-color: #ffffff; } code { - font-family: monospace; - font-size: 1.05em; + font-family: "Roboto Mono", monospace; + font-size: 0.85em; background-color: #ffffff; } From 4a473a129194c97dc19ac6dd31d4e4fd956450c1 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 8 Jul 2024 09:18:56 -0700 Subject: [PATCH 57/69] [slides] Testing out draw.io Signed-off-by: Jason Lowe-Power --- slides/01-Introduction/02-getting-started.md | 2 +- slides/02-Using gem5/test.drawio.png | Bin 0 -> 12751 bytes slides/README.md | 4 ++++ 3 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 slides/02-Using gem5/test.drawio.png diff --git a/slides/01-Introduction/02-getting-started.md b/slides/01-Introduction/02-getting-started.md index 96f017f8..6b5bdfe6 100644 --- a/slides/01-Introduction/02-getting-started.md +++ b/slides/01-Introduction/02-getting-started.md @@ -68,7 +68,7 @@ Again, note that this is the repo where the slides are. > **Step 3:** Wait for the environment to load. -![Screenshot]() +![Screenshot](test.drawio.png) --- diff --git a/slides/02-Using gem5/test.drawio.png b/slides/02-Using gem5/test.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7508d6ddd857edf345a92c9b97a74628924624 GIT binary patch literal 12751 zcmeHubzD?kw=m!UgLF#Ez#yP>3JAgw&VYb)cR93lir|1EAj43K2nHeD9ZEH{r&OJ?7jBtwe~*e?6ruxrFnz=Jo9-xJUns)Tv-SBoyEh$ z7XT9hBgT#oD!>oEm(C3sUQr+GA|4*`D{mDeZ&!Z@q>DWsx0urJ5x1BMFt$TlJ9=8X za*GNh?YPC1xkW_{JsebS*##;g9bi(bTADZAoso9{Fo5A^?P~uU=a#jjy?_V~`iqIH z{|!%TkJ}pVcJ?j+o}K@1ED7C8O70toj<;=!2W*&eU|3ZWV=-OJl z{5#YTY3F_WH||x5Gxc!TaC@ZV?LU%5gwIx7t^XjO0laQo+qwJwrvC-{@v| z?>5rgUf09g7N>T=<&b~)#@-+4Z3KXY0k`1B z#<;Pd*njyuTU5pw{|8eUXZfGWEqhNS;30d@KQK4ITYvGzO@1?$z;VJ&|7P`T_JHDwT z|5I#!kt%w6TH|uy4}ym~(#_io7mYK{w{U>JlSD-FUz0>cTE(fQypOAkqOG?(kUB75U`rx_lk%pujlIh)cQ2$j5;z6Klx^I-z1>~^fuQJu zbi^%qyL$l8f8?{fkGBib&0guRvm2L1|2eC0!v5d)zx00z?VqR1KlcBh=>K#7i~Pa+ zlSBWD0|1D`-)H*ou>AdC{1cczkK8}=zaGcs>>G4=cpP{LWko%Ii`D1EHS~j(9jD&- z)TH4LIl~*RTwZ8jtYReHrIFa(RJI|}x|lp-Bc*5?(`b!YX{-icCV8bzO`kzXr7d&W z{NUMC2{C1d*Shpx-?*24A-E6f}G@65EvvIw~i<_&Hq3z$AeVl%tmUb^{YBQvvkE~sF8JXbrA{e60y zF37}t^~(+xIgtJQ<4dIn?Zm7e3egsgft8bX2^tmism^%;Tl1;cLz~*;E*8gg-EjK& zLQyO|VE$=D!X*up@obG}vTyh2pQ%H8x9FZ_Nc4b>1?0@be2YrknL`|VQ+)>4>euB@ zkGA^Vt5>VWl8@-tn+}VLnhutb#SNQk+VcN#>(vj+%=Y*@LSoQ!3Zq*= z70$zJ)02%sdn{Kytj0Vgc1CRDj!ysyO}+=)i-w8I>2o!4)Mc!^L3iUGv&lAv3}{I0 zT-$heu4f3#lM$>Fa=053G~E_8ma>{{UlUJVM#gb?H(Jv5%S{#$o3=djI&VHx-M0rz zSA5ndkL#a`ITjgIJxl(ks@f@fZ{<*cS<0>9_GCjq>@!JMld5b%vzl81CKW~v{y(NK z+1DeP-0V>N=Q`7;UTMEpjb#w9XsB7K`&@HphFd+EAGt!?WKaBwXQMzsof=@WKi-wV zQ~a^Yb<{>CRX(KdOSSvy%+dZ<55uUyjZhXyPgvQ)-tFO{iSG*;p?4?PI{>9t z&N+fts^^kTCy#-oOc9u_9W*f2IR1K{QZsQoM(fxbwVf+XvzX%p_^Q4@CQ`YVwZ9o zcdZ`x>>1b9l;++&fRBHc4>=HDA1R$d%yh)P9dp!+Ma%EG*^dpC1Ia?^R{Ea7m57Y- zV^NS_vfz-0Y7FDc@_zZC?u~D)j+#$JBlcB=CO(_##h`r#s1JSFsJ~;gdXj*nL&mFv z%`a^rM=Qe@NLPwzu3;#h#@)5r1@Gm;YE33lJ9xh4bD4>sb19bTrX6DryUVJbAAHTT z*&B@W4GJ}##;R7kXn8b`-nX;3AGOXubDym6TIdr1HpxWr+IVerM+}qLR)Uti@iouc z&Lmmy?;Fhx0b4|M)19QEgV-mO&ZroY7tbvmL5#X?+{h3F8`PZMh2A4Q6M<<$Z#QL1 z`!wb8@GwH;7CXtLY@?t9O2c79%8?SI2{)u*^WK@%SlYrq53v}uYA0EKacGg`ZZ)vuIqq{@!~gM9j?-$pHYzjz$JaN* zqYv~RGG>6Zp4Acdsdi?`fUFHt+L|IimF7X!ls9T09h!|E-)vO6+kRdnMZA?wj9aCH zAMr`VRL2_~(IO(X{!?4W`vYm2;Z=^5bsIrv`q~1jyo5}NiRShQ=ULWFH*HUXWpQIH z9YS|PL_^0rm}l`YZH5@Zif)Ip6R5)Dz$CRpNp0CQtjqAFmB*FlvTx(J3uW8YQ@=ir z5)8$#suiRn?5Tud4l(GME=f$q%S>`J9nl@VtBhi?$>Qy7mI&tM$9GgKx`hiK`$@pE zpP)euMqPEanHm#e?+-t-Wgrg5*$T+4jvO$qpcphC1lr?Xl~hqFTjgzAL&<$77`kX% z4dofT?5JhQLZI4to|9>i0W!Wx78VSMB%#HWezk6XvTh}1 ze3CeZXJ4|I4!K1D$U=chNaF6yG!uvCMm-?7-~%UNv$7Ncc~T3*+Bu+10&ht#4Qa)< zp$^T%oDV1mgp@dl0IEQmvQXhqcavEtPc*P&A~MaI5+F`Mjt>+{|GMi@&b5o&hflb~ zML-zXJFqb)1ku^lm-R+lD&cl+6a*~}aG(KqRlHwS#7MF{GkfAqIkH0*#tJY{0gran zW-H&ykQfvJF*D+G*$JSa;c8zULQ~YgybG~Tkpi`J6IR`tNn4@L`kl-MV_c^1-SPK66;1K5*F?B3jLR znI4JaUR0FdfuG*!+%o@^Bi21i>MNx5&TJ@S8BdW-)cwRxI#(5a9%98H+7E+unwxjE zp5KX@sCooAXr3C=qOIpGCIY$~c8^*#4xO0fcuGvG^nwP=2-yO6Sx^^vp`KidRH*%p z9Ky$2+CNGAH$e0-@pfiKQxxQu8(@0?%Fa}<3iMj0<}Uy%-I1mWo>O)zprk5JN%$kZ zMyn|Nxgn+c3?S-&)>p>cU#2{J#7ID|@M}I}RvVgZfwSrtK_`221#wUD2+_MXDqbD} z4epRt$&tdy)v;(BbE8J}T&Z zcDi#f_`xsSS19XJGA~Rdqb?-P_3D-`(H{+!H6Mq6l>*>3`pg0U!lxisGC&2 zpUz>$u9fkP7mZvj?4!qo%u1Q3HaCX4jNM&A(yynWFTj_ei=Pk7I{QRGY6@Sut7GLd z^AQ}*{Z?W*a_TkdewJO_&@1xo^)`mI4bHg|Z?NETUL-x@t-v?MPWD3!ERs8TIKOz- zFs8|X#!JaDa8S+pW)}6&#!RlXD|K&B50KMlW5oB(Ym0@x9Zm*wXQ1P5u>3=OrKMdQ9B&x@cv4;CS=u;rVx-I5tD?#KR^%>JAjSjXMn%a!OWX0VZ?wkO z(AdN6x-Y(LfhIJ~Y*jfxZY@2+Q%+-G%^BWlBbYjUmN}RQX)GF%w2G_a=nt)rc?2q{ zRM*2Ns72mENK{|OE?)XW2JKH4~jsjdFUXi z@AI1+3MQ1#=OOnKevRLWMC^s)M?$WQciJZHp_y37wG zxHf9Q*2w7c^f=TU3n-tNvgkvu(rNaw%d$ZgD+Fbm6Ai;G(ba3tQ9r~^cgtxp_Id>- zSr}5lR4)(obCZfu6sn)spVRM4e{l)4^o${e?$u=0a8d%=n;;W97RqDT!IS&AbUE>2 zSPfu^T&dxr&)g;GbA=&7!pbLO;$4>r5ICO%x?`6wE5c>M%%2rgNIrUhD%HhK0Mctx z=M@ml9ol;3SgFIeERay=I6a(82iZd_+fh_^>}K6;FlE^eN2Yu7E__zMf6t5$hGi_6 z@wgD?if$iOp}oPO7OlRV8Jw7g9$oTDg4*p_eOkKWR^(|hoo9RDCUaP%Cg7g{vF8?s z2pAThvVL3kC^TW4^HxzsO(s>ROQ3lc3E~l(gf5&}7$HPp%=#=Vpup5t%Ps7{ij$3IEHY+oj8>zd9^5t z@C_+uiKJfB1@x+-rr^SpN1~5JwHpP=QOaHxq>^T}2y8;>V5cA&M1Vv@tG^O3;}R1} zsi4{c@FKL@F4O8z-VT-`AZB>tt`I;^iVhazcAg zMv|TeSI01p6q1E~=0HorCKq)U-89KzyBv`UOw@1|h*omjCexL5ZB_0P(=6h!3TjXF z>d=RUC-At(BMFJr005J%i@o3dy^3CuiN4t_i2{U$cT$e0Cnj^CDcDMLaFU?V!%uG^ zi)*6OR@I^)oiGJvl2J>VQMwgE8ym15Jq{u1&7s=#KpWMY%K$yRs_HfKM4Yx3QkWA(#^A%L!(doMv?VlJF+nzPpRAt9q zAyZ1Fs{wEIj=gWJ5n9MeLML9#EFku|6`X7a!}d8sS1n=pdlWnO!WTx>u=8&8nj~@h z%Z4#%ZjL7gurj0l8Y?k&`HG-UMdM47QFW}9-)ScJ=@{!n_Q9_b zFo%2Sd_rvl&O*DDpZxI=tSofrY#)Dc+Cy>j87P^`dkMunJ-XhDVx><+&5{#;Z&Fk4 zWKvYFErhnap;3MJp(_C`r<+-fkSI-BMkRmKjP=C(Q?f(`o8pLt+7rj}*XaSto8#|N z&F1=wQ9a%2Q7N?H%fVrpapUTB(WJZa7E!_s6JnGc)0F2Xrr3R4n`fpY+M?aBJ3f6g zC9a7*z-O-wN^F0>{^P|(%Jb9sX!1CetLVE#71{riM7yOT4J?x_~IICz@h!IM&MLf@llUg{7>%O(TS~JQbp%;8wh4#jgWRx&*a# zvQYEC(V%cX08ulp{gG0N%0^|gf{ShDPM@XTi{tuQ0salm8cjRygm>$uUkN=+>KBGF z8~i2hwc(__rzPz-O+`YIoJjZKRNrPaTC-!m1t7vw4e6WHF6YNlMe$Bo~mPw9F=<>Ly-TJ$3T|8-w;+hJm6k?=- z#S#v9o@RjV)}ri!$OsZ6X0Ho+bd}uuW}HV7a34BufB^+3rGldl)xO$jJitFppPkJhU=_h?auk24? zq-A!H3MDz>gwZHpPJB)`A$!0sC=phqM@yrtRT8G=-K6G<%Ir15Wxp26wT$(rz&hKurb z$a<7!lTlyRfb&nC)&?l0M>sZg)Nafks^VYfm(5gh>T%=zs`N2Zy7%<_t7=!z#Hd^e z3pnNckpRh218^1#mHg18W8RHVd=ExEd&(Hc`67jArXkv#Y9@dfe%DiafIG%iby#$d z-kK?5VgLCHg60TMT2Eutr-^4rbITL`+o5zMee0*MC(LX`VDsq@OyQh|@qJsD1umLBzC?&5)lI*z}u0Xg3?6}~U6HQs8k z-2?)6c@yeN)jYFf6_HLC0_8L2LyBdV=|diPmH5M5@#Dv@ebw0v-O332u}HcW_krZ3 z_)z+nHP!)~u{UQAE@#nrvQ)FjQv(f(V&euq1sn`1CC8(sNbR!{3$|pJp_=Ft?KQ^smRM{^ZOU7@QDa$hTL-vKp=NVqxfgAAK zTWVpSH}5V~iA^e>jP*`zif!c@nWKJKCzd9hu6*!OwRONiI~`ycoB{+C-<U1{N7Gqn5%*v04c(L~;4+}Gz97y&d|{37T-4}5 z{1(ZQ@=%5(6{w9loEGYEM*^Q?TpOcqw4vF=i!Zvi&$D2#g?03yZZ3yUPcH~SNDyL( zo~C$tHFGfHQ0hEqWb12$9WfjNdzFaV4ox}7Y(VqAgFFUR%2ye^xn)0^pYY<=iN$k} z4qRU768b_<+nzJctM-D258E-H_WVCl$vzx6IH8Dt(*3ROCbt5XCyhlbi4avPO1t`? z)`~&sRVq#0>!3Rn+Ve*)B{e?-)ZyV2%1qj@i&;e|&^a3J7UfwJFw=1yTw;yYjYs-9 zuPnpk&P#21$l$L1G{BvT7v~jAg`ru)+|`VJbkUugJT?R$eo$Yqsv{V#$i7G0O4pvQ ztVFVQC$zo3L4lW#M&RnZvTuR5*!2B)Vie@7908ICx{M#y z_XBAI_K#Bl9uqZbysXWHz|BPv2&)O_bod~k;$<@F_fVpwjv6itd5XSd#;(6tv^H5b z6oez_YPf*t&Wr`VYbUwTzA({Jb-_!ODjHo{~{X@x3cCYDQ)_x8Y<&(VXoB;Eya zmlGvF#!=Qudoml}bUKsV<;jvQZxrVCN0CA4?z#jY_p_<7z!)~5`1a5{EET|(&qKvk zXK411(6Z@gFqJHZ4?9h*1z~q_YUs=+(=RO_Opp)BC|U90thDFh^=`8u|D%cCz{%B| zlk7b<8}b4-oTYi`+P323vi)sT8*E_}v>2OuJ;ENL8{dQ88Xe}*;UH{oe5Oz8ZMBnp zlO*byf2px_c>fBFG*wZId{Dq)hp?9pnX-OU&gg9A z!-*z@^`$6lUP;CR)-i|iQ(;2BkEw+NHz4Q0=m}Axv z6R3XBve#F#%Y>UgP@JoM4GpoIum}HqtiS-4zKKN^S(U9HTd(GOg31&+n=yizZHJ`2 zB#F1@sQ}rdE(=5mA$`SABiejcK-Eoc1SO#hoe(V=?K)P-+mxb+KscRKcPbBmhe+8AhVruOqwu~q>>ZgfcO7j z9@&Ja$aLfYTS5Y-^(00!r6Ofm&N@~MBwEJqS#Q-kw0yq}PyV-u!Xw5Nuv?g+y*i$P zJCO>i{IgEYPH{rqg*I{yzs%%^hLpT>{o<6x5i;C)+1=6rykD5<3e|YCc~UkX^jHCy zH)YathkOkPHQLH!4J)9+a2o+%k~T?uDH2m&pfXrzJvVuL8%`ks0%OSRoTA`zgO&4E zPs1vS^AiX<9!V*)q=zsCRT>`}6*CdYbD`-;Ym2#NcClaeZZX@DnmqAgpNg;>HQ#~>iXcuP)|Lmd^|L4R`|=MtJQe(Fs{ zM88_#yPotCRVD(a)ZG{5f=SAr`xgrr$nY(xJ24U0zUY&e=&(0Ay{=R@=Cq?kRD;}> zhlboE?-hgXqR@%qY0%uP;^)?@qM$NmcwlrlK3#oTuc?M#qcVpxDp(C0f=P#Ky8~Co z<#s#TW!VqNBfW<1abVBm3%Us_FWvnHlz13gOe3c|rOx-dj*k(Uni8;f1uS@x7=k2Z z*;s)hy~#r0(>PSRSo8_irXZqqBK@L>9_MbZY9}KVGvpXDt61c}$u6=DiNe`)3n(He z!LzU51t;6aPsvC}YPQJ@f|<@Ka%EmeWpWq92Ag7gMZ7uJaP(k+o)g+r0)NRBl%rz< zIIn>kD+I$b8-%RzEhaDqQZL{{Z^xids5kShraCVv%9x-23m9`OKbcq&NY?n!3+JRj zpkM(;MDqsjV0tE_Ub64V41$e?Mv~L*P}>RUx5?W))jghMJ8y;o@qx__D1MNsfngAx zQ;!v*8eyZG?)eB{^2GsiT!F4|3PoJdx5~%o$^>8pCp4JkM$ScQgx{seTR%vdAknsZ zGg2R52O4l15br$|nTc@5K%Er82R@2d*6UT_Z%Gi#j5qocy?x2#a(e)Ibua8u1@rX3?~LyY0O<}P#{Cc#}pkP7Rli{s31UJ`U*a4rV~s9ol%L^B+(c*+Isejal# zxA_19eSjInMPz0z6RDRI5nearTudi=1zblHm8fJN&8PY#Cd_7Dz`ExM1p56md2rp$-ll#USx6ltl|U3;?- zXxoy>FB552TT9 zhlTU~8O2quV@?SglArL2SziG4x;Ogy1`_fI(Lzmcg4P=iaV2-4-1i2kd#@s>~CxzORL7jZrS(C z?S1YMdRxHeH?D0qQ@`FcP&sUopOYS_W*K_yb2ZrlsI682`Yeun^$%XoFDP4~0er&^ z6>winzFjD^7|Kn(&37pg{E}C!izosr3AuxeliM{qK3<114f0btZ+vZD0;-IjmNx1> zotV(OK>tEYZEsr1QeOU2?Lzv%?%0g*5tNFuYzi>G=j5S^`(#6{L;nf#FmY|7etCZ( zW7x!5;H{;gP;^elT^Z;aQ2fiC@Ey|tO3jx?(Bx9%!ok)+m&B!`x71~IButej{s=?0 zKvir8cZe}5<-D5H3TGw%k8U0Z7np_LgpbT}L00|pYQt7v-O*-GCD7yG96@jJ(a+Q)-aozrWmQO>8w@_mnwm)MwJ!tLIkB$N8;zuRQ!GMM5Ik8fcSD|#tYfl~1NdyKc zuOGbt++}JR{3F7o!b$qS`fLt&!#Fa`|J z&=N7D)qcMwv$%2BL=iR#1V!dYTT3nDm`i!=WYD@C;9;j!8J|3$UTb{Cz2!o~6~0j} zqxMRK6i^A<$R?Ii8n#YwY_4h;J^7 zTMguhE&R?bZE<$cSI)OT+F4%e+ci9VW}5J|$mZC<1ex{m*k|VYoC!Q!+qtOLp;>)< zZ9%7eUA^C2C7s*nf60r!pJZsAuRM6^^Mt(5n}B5okL%Cs`%e1zMjZRg`bP>+aYMsiT?{=cZFgpbMDG<*mt9pQXSRR8>00qg^;-kPvxS7`d(F&a(gpUX zN-+fdMwj5xbewjd$q3{@u1^Mnw|b={yymqOtzT79Ej{FVY&7IV0I$ibc^$LvM4RsV z^;?6I;IM!fHokc*_x;i zAw=ytz;WyMlV=`udgPdGNv|0p>}GHFK%!89QP~D>&BrbAGnmOT%(EDH(}`OslcwaK zusqpJ$uOrTQ0`d;QK<8Awru_aa!1r8f9eAdd*Ouq4G44J={?h*I+8do@qXC+nm9wP`fqZCUmPYty z6wq2xto(^S2K}SdEIg_9JEvO91@@e-@`UN&=9p06^7mWqv98r@?LSEcVt7a zJ@975bsz<-g^4%^6F;&|M0-8N%wMA4xDM}4?9`B&s95@J&l$pvrHe`wo?fhr1NGetP63(%k1yPO!Z? zCS@icVKwT(RvL*;K2@2y4kjDr*zLF&%Brde5ua_IrfK-bv}x!xD|tF~dgAw;A_1g{ z!51R+w2UIV=<``y;;~RKtlf~a9NlGYBwl;1)^y*GTm89dlNJCTz5~1qk^wy_os3Jm z8@Lxk<=+!q)J^7VxVJRqb5T;JbK1CJ=^W+M)Ne(wykua VHVz&Q{D%e}LPb-#2xb-je*n=yYJC6z literal 0 HcmV?d00001 diff --git a/slides/README.md b/slides/README.md index e80c0465..f1247508 100644 --- a/slides/README.md +++ b/slides/README.md @@ -34,3 +34,7 @@ You can then embed the image in the slide with the following markdown. ```md ![](/.drawio.png) ``` + +## Improvement to make + +- [ ] Fix `[bg left]` `[bg right]` in the slides so that the gem5 logo at the bottom doesn't move From 0d1f85155a07aeadc70b367979cf122a9f73bfc4 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 8 Jul 2024 16:39:06 -0700 Subject: [PATCH 58/69] misc: Update vs code settings Add settings for Marp and draw.io --- .vscode/settings.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 07824b76..6d0f7369 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,5 +7,11 @@ "files.insertFinalNewline": true, "markdown.marp.themes": [ "slides/themes/gem5.css" - ] + ], + "markdown.marp.enableHtml": true, + "hediet.vscode-drawio.globalVars": { + "pageScale": "1", + "pageWidth": "1160", + "pageHeight": "440" + } } From 6ef3220a77ae132c5ecf78ee4fc2ba32b5874573 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 8 Jul 2024 16:39:47 -0700 Subject: [PATCH 59/69] slides: update slides readme More styles stuff and to do notes --- slides/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/slides/README.md b/slides/README.md index f1247508..25e9c070 100644 --- a/slides/README.md +++ b/slides/README.md @@ -18,10 +18,12 @@ docker run --rm -v $PWD:/home/marp/app/ -e MARP_USER=$UID:$GID -e LANG=$LANG mar ## Style rules +- INSTALL THE [MARKDOWN LINT EXTENSION IN VS CODE](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) TO HELP WITH FORMATTING. - Use `---` to separate slides. - The first slide should be a "title" slide ``. - The titles of all slides should be heading 2 `##` - Code should be at most 65 characters wide. +- One line per sentence in Markdown. ## Adding diagrams @@ -38,3 +40,5 @@ You can then embed the image in the slide with the following markdown. ## Improvement to make - [ ] Fix `[bg left]` `[bg right]` in the slides so that the gem5 logo at the bottom doesn't move +- [ ] Extend marp to support [asciinema](https://github.com/asciinema/asciinema-player/releases/tag/v3.8.0) + - We could [embed an SVG](https://docs.asciinema.org/manual/server/embedding/#preview-image-link). From 7ebeb0fa98cfb1d8d7d783f2f3830e1b6d820046 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 8 Jul 2024 16:41:05 -0700 Subject: [PATCH 60/69] materials: Add outline for readme --- materials/README.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 materials/README.md diff --git a/materials/README.md b/materials/README.md new file mode 100644 index 00000000..427c6b1e --- /dev/null +++ b/materials/README.md @@ -0,0 +1,6 @@ +# Using the bootcamp materials + +- Explain directory structure + - Same as slides +- All files must have docstring with example usage +- Examples should probably appear in slides somewhere From 118f55194adecc3ef1cbf756eca09e27dd968ae9 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 8 Jul 2024 16:42:37 -0700 Subject: [PATCH 61/69] slides: Update overall outline for bootcamp --- .../00-introduction-to-bootcamp.md | 98 ++++++++++++++++--- 1 file changed, 87 insertions(+), 11 deletions(-) diff --git a/slides/01-Introduction/00-introduction-to-bootcamp.md b/slides/01-Introduction/00-introduction-to-bootcamp.md index 909ec55c..397f799e 100644 --- a/slides/01-Introduction/00-introduction-to-bootcamp.md +++ b/slides/01-Introduction/00-introduction-to-bootcamp.md @@ -3,7 +3,6 @@ marp: true paginate: true theme: gem5 title: Getting Started with gem5 -footer: "![gem5 logo](../themes/gem5Long.png)" --- @@ -25,41 +24,115 @@ footer: "![gem5 logo](../themes/gem5Long.png)" |--------|---------|-----------|----------|--------| - Introduction - - [Background on simulation](01-simulation-background.md) + - [Background on simulation](01-simulation-background.md): 1 hour (Jason) - What is is simulation and why does it matter - gem5 history - - [Getting started with gem5](02-getting-started.md) + - [Getting started with gem5](02-getting-started.md): 30 minutes (Jason) - Getting into the codespace environment - Running your first simulation - - [Background on Python and gem5](03-python-background.md) + - [Background on Python and gem5](03-python-background.md): 1.5 hours (Bobby) - Python basics - Python in gem5 - Object-oriented programming in Python - Using gem5 - - [gem5's standard library](../02-Using%20gem5/01-stdlib.md) - - [gem5 resources](../02-Using%20gem5/02-gem5-resources.md) + - [gem5's standard library](../02-Using-0gem5/01-stdlib.md): 2 hours (Bobby) + - [gem5 resources](../02-Using-0gem5/02-gem5-resources.md): 1 hour (Harshil) - What are resources? (Disks, kernels, binaries, etc.) - How to get resources - How to use resources - Workloads and suites - - [Workloads in gem5](../02-Using%20gem5/03-workloads-in-gem5.md) + - Local resources + - [Running things in gem5](../02-Using-0gem5/03-running-in-gem5.md): 2 hours (Erin / Zhantong) - Intro to syscall emulation mode - The gem5-bridge utility and library - Cross compiling - - Traffic generator - - [Modeling cores in gem5](../02-Using%20gem5/04-cores.md) + - Traffic generator (Test board) + - Process.map and drivers in SE mode (maybe cut) + - [Modeling cores in gem5](../02-Using-0gem5/04-cores.md): 1 hour (Mysore / Jason) - CPU models in gem5 - Using the CPU models + - Branch predictors - Look at the gem5 generated statistics - - [Modeling caches in gem5](../02-Using%20gem5/05-caches.md) + - Overview of ISAs and tradeoffs + - [Modeling caches in gem5](../02-Using-0gem5/05-cache-hierarchies.md): 1.5 hour (Leo / Mahyar) - Cache models in gem5 (Ruby and classic) - Using the cache models + - Replacement policies + - Tag policies - Tradeoffs between classic and Ruby - Look at the gem5 generated statistics - - [Modeling memory in gem5](../02-Using%20gem5/06-memory.md) + - Garnet/network-on-chip + - CHI protocol + - [Modeling memory in gem5](../02-Using-gem5/06-memory.md) 1 hours (Noah / William (Maryam)) - Memory models in gem5 () - Using the memory models - Testing memory with traffic generators + - Comm Monitor + - [Full system simulation](../02-Using-gem5/07-full-system.md) (Harshil) 1 hour + - What is full system simulation? + - Basics of booting up a real system in gem5 + - Creating disk images using packer and qemu + - Extending/modifying a gem5 disk image + - m5term to interact with a running system + - [Accelerating simulation](../02-Using-gem5/08-accelerating-simulation.md) (Zhantong) 0.5 hours + - KVM fast forwarding + - Checkpointing + - [Sampled simulation with gem5](../02-Using-gem5/09-sampling.md) (Zhantong) 1.5 hours + - Simpoint & Looppoint ideas + - Simpoint & Loopoint analysis + - Simpoint & Loopoint checkpoints + - How to analyze sampled simulation data + - Statistical simulation ideas + - Statistical simulation running and analysis + - [Multisim](../02-Using-gem5/10-multisim.md) (Bobby) (10 minutes) + - Example using multisim + - [Power modeling](../02-Using-gem5/10-modeling-power.md) (Jason?) +- Developing + - [SimObject intro](../03-Developing-gem5-models/01-sim-objects-intro.md) (Mahyar) 0.5 hours + - Development environment, code style, git branches + - The most simple `SimObject` + - Simple run script + - How to add parameters to a `SimObject` + - [Debugging and debug flags](../03-Developing-gem5-models/02-debugging-gem5.md) (Mahyar) 0.5 hours + - How to enable debug flags (examples of DRAM and Exec) + - `--debug-help` + - Adding a new debug flag + - Functions other than DPRINTF + - Panic/fatal/assert + - gdb? + - [Event-driven simulation](../03-Developing-gem5-models/03-event-driven-sim.md) (Mahyar) 1 hours + - Creating a simple callback event + - Scheduling events + - Modeling bandwidth and latency with events + - Other SimObjects as parameters + - Hello/Goodbye example with buffer + - Clock domains? + - [Ports and memory-based SimObjects](../03-Developing-gem5-models/04-ports.md) (Mahyar) 1 hours + - Idea of ports (request/response), packets, interface + - A simple memory object that forwards things + - Connecting ports and writing config files + - Adding stats to a SimObject + - [Modeling Cores (Bobby)](../03-Developing-gem5-models/05-modeling-cores.md) 1.5 hours + - New instructions + - How the execution model works + - Debugging + - [Modeling cache coherence with Ruby and SLICC](../03-Developing-gem5-models/06-modeling-cache-coherence.md) (Jason) 1.5 hours + - Ruby intro + - Structure of SLICC + - Building/running/configuring protocols + - Debugging + - Ruby network + - (Note to Jason: could do a whole day here if split like before.) + - [Extending gem5](../03-Developing-gem5-models/07-extending-gem5-models.md) (Zhantong) 0.5 hours + - Probe points + - Base utilites (e.g., bitset) + - Random numbers + - Signal ports? +- [GPU modeling](../04-GPU-model/01-intro.md) (Matt S.) +- Other simulators (Jason?) + - [SST](../05-Other-simulators/01-sst.md) + - [DRAMSim/DRAMSys](../05-Other-simulators/02-dram.md) + - [SystemC](../05-Other-simulators/03-systemc.md) --- @@ -75,6 +148,9 @@ footer: "![gem5 logo](../themes/gem5Long.png)" ## How this is going to work - We'll be going mostly top-down + - First: How to use gem5 + - Second: How to each model can be used + - Third: How to develop your own models and modify existing models - Highly iterative: - You'll see the same thing over and over - Each time it will be one level deeper From 943b80ce2d79322c18bcacc6daf21b550dedee36 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 8 Jul 2024 16:44:00 -0700 Subject: [PATCH 62/69] slides: Style updates - Add bottom logo as css background image - Fix font sizes to all be rem --- .../01-simulation-background.md | 1 - slides/01-Introduction/02-getting-started.md | 8 +++--- slides/02-Using-gem5/04-cores.md | 1 - slides/02-Using-gem5/05-cache-hierarchies.md | 1 - slides/02-Using-gem5/06-memory.md | 1 - slides/themes/gem5.css | 26 ++++++++++++------- 6 files changed, 22 insertions(+), 16 deletions(-) diff --git a/slides/01-Introduction/01-simulation-background.md b/slides/01-Introduction/01-simulation-background.md index dbd093e8..4677aa43 100644 --- a/slides/01-Introduction/01-simulation-background.md +++ b/slides/01-Introduction/01-simulation-background.md @@ -3,7 +3,6 @@ marp: true paginate: true theme: gem5 title: Computer Architecture Simulation -footer: "![gem5 logo](../themes/gem5Long.png)" --- diff --git a/slides/01-Introduction/02-getting-started.md b/slides/01-Introduction/02-getting-started.md index 6b5bdfe6..1224a0d6 100644 --- a/slides/01-Introduction/02-getting-started.md +++ b/slides/01-Introduction/02-getting-started.md @@ -3,7 +3,6 @@ marp: true paginate: true theme: gem5 title: Getting Started with gem5 -footer: "![gem5 logo](../themes/gem5Long.png)" --- @@ -60,7 +59,7 @@ Again, note that this is the repo where the slides are. -![Screenshot]() +![Screenshot of starting a codespace](02-getting-started-imgs/codespaces-screenshot-1.drawio.png) --- @@ -82,6 +81,9 @@ Again, note that this is the repo where the slides are. - If you're using codespaces, we have prebuilt binaries for you. - We'll talk more about the build system and options later. +[![asciicast](https://asciinema.org/a/6rAd24brgGqb3Sj8Kmvy1msaG.svg)](https://asciinema.org/a/6rAd24brgGqb3Sj8Kmvy1msaG) + + --- ## Let’s start by writing a simulation configuration @@ -134,7 +136,7 @@ See the [gem5 resource page](https://resources.gem5.org/resources/x86-ubuntu-24. [Link](https://resources.gem5.org/resources/x86-ubuntu-24.04-boot-no-systemd?version=1.0.0) -![Screenshot of gem5 resources webpage](02-getting-started-imgs/resources-screenshot.png) +![Screenshot of gem5 resources webpage](02-getting-started-imgs/resources-screenshot.drawio.png) --- diff --git a/slides/02-Using-gem5/04-cores.md b/slides/02-Using-gem5/04-cores.md index 58bc8676..7ad57638 100644 --- a/slides/02-Using-gem5/04-cores.md +++ b/slides/02-Using-gem5/04-cores.md @@ -3,7 +3,6 @@ marp: true paginate: true theme: gem5 title: Modeling CPU cores in gem5 -footer: "![gem5 logo](../themes/gem5Long.png)" --- diff --git a/slides/02-Using-gem5/05-cache-hierarchies.md b/slides/02-Using-gem5/05-cache-hierarchies.md index 44a4a812..16899770 100644 --- a/slides/02-Using-gem5/05-cache-hierarchies.md +++ b/slides/02-Using-gem5/05-cache-hierarchies.md @@ -3,7 +3,6 @@ marp: true paginate: true theme: gem5 title: Modeling caches in gem5 -footer: "![gem5 logo](../themes/gem5Long.png)" --- diff --git a/slides/02-Using-gem5/06-memory.md b/slides/02-Using-gem5/06-memory.md index cb2f5e5c..43a185ac 100644 --- a/slides/02-Using-gem5/06-memory.md +++ b/slides/02-Using-gem5/06-memory.md @@ -3,7 +3,6 @@ marp: true paginate: true theme: gem5 title: Modeling DRAM in gem5 -footer: "![gem5 logo](../themes/gem5Long.png)" --- diff --git a/slides/themes/gem5.css b/slides/themes/gem5.css index 10f93e01..65a0662b 100644 --- a/slides/themes/gem5.css +++ b/slides/themes/gem5.css @@ -19,11 +19,16 @@ } section { - font-size: 2.0em; + font-size: 1.6rem; font-family: sans-serif; - line-height: 1.35; + line-height: 2rem; padding: 70px; background-color: var(--gem5-background); + background-image: url("../themes/gem5Long.png"); + background-repeat: no-repeat; + background-position-x: center; + background-size: 220px; + background-position-y: 97%; } /* Move the title of the slide up a bit */ @@ -36,7 +41,7 @@ section>header:first-child+* { h2::before { content: ""; position: absolute; - top: 78px; + top: 65px; left: -10px; width: 0; height: 0; @@ -88,8 +93,8 @@ a { blockquote { position: relative; - margin: 1em 0; - padding: 0 1em; + margin: 0.6rem 0; + padding: 0 1.2rem; border-left: 4px solid var(--gem5-gem5); background-color: var(--gem5-light); } @@ -121,7 +126,8 @@ section.title footer img { } section.title h2 { - font-size: 1.3rem; + font-size: 5rem; + line-height: 5rem; margin-top: 50px; display: block; text-align: center; @@ -133,12 +139,14 @@ section.title { background-image: url("../../slides/themes/gem5ColorVert.png"); background-repeat: no-repeat; background-position: right; + background-size: contain; } /* title on the left */ section.title p { width: 60%; - font-size: 0.6rem; + font-size: 2.5rem; + line-height: 2.5rem; } /****************************************************/ @@ -152,7 +160,7 @@ pre { code { font-family: "Roboto Mono", monospace; - font-size: 0.85em; + font-size: 1.4rem; background-color: #ffffff; } @@ -176,7 +184,7 @@ Typically this "required" baseline CSS is added by `makestuff.js` during build. pre code.hljs { display: block; overflow-x: auto; - padding: 1em; + padding: 1rem; background-color: #ffffff; } From 98cdbceb5326016ad64611f4ec3e1f15511e01c7 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 8 Jul 2024 16:45:40 -0700 Subject: [PATCH 63/69] slides: Fix images in intro --- .../codespaces-screenshot-1.drawio.png | Bin 0 -> 459116 bytes .../resources-screenshot.drawio.png | Bin 0 -> 252264 bytes .../resources-screenshot.png | Bin 34106 -> 0 bytes slides/02-Using gem5/test.drawio.png | Bin 12751 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 slides/01-Introduction/02-getting-started-imgs/codespaces-screenshot-1.drawio.png create mode 100644 slides/01-Introduction/02-getting-started-imgs/resources-screenshot.drawio.png delete mode 100644 slides/01-Introduction/02-getting-started-imgs/resources-screenshot.png delete mode 100644 slides/02-Using gem5/test.drawio.png diff --git a/slides/01-Introduction/02-getting-started-imgs/codespaces-screenshot-1.drawio.png b/slides/01-Introduction/02-getting-started-imgs/codespaces-screenshot-1.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..6e9ed54e609beb42fcd32fdea6c24a31756bd654 GIT binary patch literal 459116 zcmeFZ$?ojVvM#idt`I`H1Ez@S9wNDK1`Nt}xm@ncy*+bV?p^MiH(ooXdbQYyG;io#}LDWW*O=MEHL+_1Ay=um9Ws`fq>x+kbpZg7vq*{fGbI zZ-4tQ{+Ivizl0<5qWZyMbP?ElBi-ADZ@Tgrc2i&Fm>-+e;Lt8e*_TNA`TPIU12FGF|md3(>@Kj-DIcH)2L?0*{nl=uI*_y2nX5P(|-wzysY@x*@}n3waP zVgf__-RG+A&#Z7;J}ni@g&HS$YYua@R6`HvlVMqg?(aC)-Y2*?ZNAg6_8C94!!2G} zUc_q)qxw%hJlg7ew_JuF9F6DSUu#uVM-J=3{kh@epGT2@9=W@Um-z4aW;$G~+ zdG7c-=S8AYMCvQ&(NdAo>jy0i%Ns4MGlP(UPd<#CYq!=V7icLlRj=DWmeTsoUc~oh zGxNkS^%E}IKb!l|oc*(YLPBi69u5aL7Fx|;?ox|SjpfB0XIO+~zq(#7GipYQ75`#;u!PgS$^{P+H6uFb8;=Rb4q{QuAWJ2R8H|DWc?4ZHaOy)0f7hLZ3* z=r=cYkNBPcd&~B&=1tEp2_N5vvY8aa?jvjG0Y7lazq`)Ltc>Yv%;u_gv~>YFEZgW6 z9_Y~hyZv9UPh&?C(P2K_(2t+EVW3}JA7M+by8{7DX5~L8KaJ}LPx^gCnTz&nTe({5qGLyj z-LMyaEZ=2Dj|Ac9X+)8api{Yq zEc+aOlN=)9+$cLGLA(WH(C&Si=xFe7R&6lH@5G|93`;X)%f7HtV^5f_c<4q$gPHZc z`_a%T!qF^2N^DAk#`=Slo`Z{X@*Q~Ee0AnYcbgNV?KK`=2CptvuaQg^i zE2)wffyjucse)6zJGNGAgjGIm-9( z!S4?X7KqqAa*9amEBp+Roby6oCAE#`j})M?< z7(I9ej`tj%P>&~_RMfh76!WCoFCI0PUU(hR4yev$ify4yah&+`(5y*+3HdU&%Ba!e z$dc_k2d3*iOU*$O(L?CcdLw5H<9+OTj_n$4;1k&o&cA3XiS_d!^D%s&zi$a7?rar8 z!{pai>rMHt6lx`UXN%syohrLae7S2|d+e89Pfjj)Vv-LXyE^)fD!EEI`d1fw!SQF)Cy2j&GY3!$)zT=iXGr zHmhUbkodh$MpyUR$f!J$PhX!i@e6a-(H_HvEnJ0-`%#~#8DS~HVx!T@ANSD0b_icI zhYm<=$Jp?BVoNz4J~QW7)<>}WhDIL!daOc|^5>gj_rIPh&DFgM^XndKXC0RiJg_;8XElB;G4yQo@+`>lo=V~~L=v4*oZ-w%=QG3o_16_X6mp%` z!A8SfF`0MiUQ)Y6iyts$+otmjUV(@j7#%GJ5^Kfe_>Vqr&Pxn5Y0^Trg!9DvL6yV5 zf&;HH*#!0nqv5dZl|P&XMACL0ln72^7V-%Fh%hQtn=guce1Dn z6;`R+Y}@%meJ_pdkl+Ju%CY5+bQe97AX zU7poVV15bnxWd11veGQ6l+kx5^W~sRcpIx}-bU(Hsf0B77m3CJw(zSX=P?CC<*or$ z@s%V6>%{8)mgXDTxoBnO;P>VlT(ieUDOm%BosXaLk)kg64Z4~Pcag{F1ba{J;>r`EqeuV3|UW~!>*`4OqAUila#I{$=D z!lR4#lBnCkBri#gXyQ}o-Ss?Rl|;rnFzOyLeXrSXnU!Jv*JA9S#p-}TV2mFI$G>yK zpbZ}P)TOE}`jG?bQ+8rmYMREi?5KLDT0wg))`?M&rwzKgAlnJRWY$ zb4>lUUe7lBx&eqSXH~YH@pgP9j#XiowbF0z1=_-5-Be5FPyZGIK>o^l%rnCa+cb?*x~c&quv$)l5fkyiFJR*o4-9f3b7 zqn;jih0S7&R&q$cgleB-y+aHO<|TV!rZWla6)i{>=~JhnDKfqvfy+NL_jgvWA0vq}2c`o$8`4d!j(NcCb3^M#y&W3&VSC#JG^}09 z{$-N_;gdm%_Dtd*1F5O*=0>v`;U9&z__mLX>_Nr9SNME0>F1ha-7H>&aVw9Pz%`sW z70BV`fbsVXV|ejM%~b`kn+D#4B3B_7{F!^+=BTLoAMVo2>neCx%<@WoEQiZTs`H7* zqf9Wy^v_veKnOIhMxbkM^;+sBsP+JJU*i6{6eVqV6%~%%Sxa&>9)^&0)2BR`_2bLc zQ2*ROV{B$b9h+!Z?O|iUqBBMrZV8R;$+n_4%e@ zg>L)NlLMB@L7)ESv$@GJ*ft!M-AY{e{Yb{;GERJD`4R3Jkqg!bP7EuRngqYKCux`e zJ_~aG^y&KjoM0Xiv1lHHp7rmlA$e=X5={}SBeiY;)BK6MmPU@Fy0%x5l$MInG+Zjpp}`u9Kgc#BVN823VQ)9BWe|ocC6*?l09E}>tf`m zrnG-Ft#h(xH*jDiyXN)6=7|zzd*J+n@vqPGL1Q5JEoHo#B}^>&ZJ3E7SaBy!bLi>CMsApzZT|t@@t+!f5x~O^c0B<)eun0^#Tvn|StqgCFhTaOB61ZmZ^Ho2kHdjgydI-t_KmDmU#0~*!4OPPFtsy?w?#vp!pp&&z^rkZ82y6ixA=zy z#yigHlR+rZnxgqjN*T}zH}1~-du7f3`Xb5?zcC_b8vPr803H-)qk28rZkv%WiDqah z13+2WHs%`_%XVt}kfagEh$aX-_I5HktEW|9YcjqS&#tqmBY6ZuFED)0hSBd#!P%CG z(-Muof^+dAA6;cSH&)m!=QIb!xY*}O>?r@~Zlc4GBpQEGCU-{p*RUH@{l0&Rbb)@D zzF68s;9Ske1dS|u-B$

H{9ZG{cR;F1}~6l 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%0AjTyJU2; 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 literal 0 HcmV?d00001 diff --git a/slides/01-Introduction/02-getting-started-imgs/resources-screenshot.drawio.png b/slides/01-Introduction/02-getting-started-imgs/resources-screenshot.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..1536a6fdcdcff78a199bfa58d03ec1042cbf0f6c GIT binary patch literal 252264 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Ξ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

1yLAfQ>;-qo0uxy=Czt|!JNQ}yc+%_#!}CY&Sx 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 z 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

M(b8lcp`9q#&%;dgBSSpUC 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 LQM_2x=;Qwb3=vcD literal 0 HcmV?d00001 diff --git a/slides/01-Introduction/02-getting-started-imgs/resources-screenshot.png b/slides/01-Introduction/02-getting-started-imgs/resources-screenshot.png deleted file mode 100644 index 1b119ea17c367c04d37db3e83207bb1e8d7bcb9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34106 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%0A_^2wl-CMOaMsg<_`k-! zCIg8J7KTm@@BFGoeTtxbnnlna^-_HeNRo9tN#kOp-z24^#XU=_He0Bb-RTYD9m0Bi ze5|ru1#=3TBt17mAV5K(Xd7}==^=)`oq*F6)WSYNS2tG^cdyXFWI%#h&-m2Ut?%6M zM#by=1fkRqznq{nz^~QIt1(f`EhA_nOrkDY?z~1T*2SfLiH>qHE)g2vX5$Ak>EZ|V zPfb3NBBXKIFNt2a9`~pn2%+9jOBnxt$GGod<|z|AlWA_JjWI-r#9wT`u-{G|pX&UC z;F=YjWdopTH#^pRz)F};OH2EHX&S)jBt>Hy#6rWW1`V%5`JA0G-WDyc*Tu?Q&3y4sPT7KEQqQ)1$2nrBZ~d&Jq2lYH`fX+MG9|zHdyQ;_PiOw zC3luxSKfFJ{8Se26uoxDo{#fduqpMskJGvn^|o{8VKn4yU2@56i>?!QkNnvFhgB4E z|591YwNFS0G>~MA=beT5pK{avjNg^0eTRX^+bdZHb zLyz<<%-;_Kn%=umX{j4s<+RRe(YQOR)ONL2grL1;8gh5#izfDV`&U5Cvz$U=K!DLBMW$y{iHa4JQeI zWEXOjjPsHSnG4JwvgTn>T~=CYcsczGtiDFgk)kwW2WnXA;ANDO@g%32C_YRkU_7

HTERuK#0g* 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 VHVz&Q{D%e}LPb-#2xb-je*n=yYJC6z From c79048683e5a9be63ea6f0aee36ab8c7496ca14d Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 8 Jul 2024 16:46:08 -0700 Subject: [PATCH 64/69] slides: Add outline slides for everything --- .../01-Introduction/03-python-background.md | 18 ++++++++++++++++ slides/02-Using-gem5/02-gem5-resources.md | 18 ++++++++++++++++ ...loads-in-gem5.md => 03-running-in-gem5.md} | 1 - slides/02-Using-gem5/10-modeling-power.md | 18 ++++++++++++++++ ...sim-objects.md => 01-sim-objects-intro.md} | 7 +++++++ .../02-debugging-gem5.md | 21 +++++++++++++++++++ .../03-event-driven-sim.md | 20 ++++++++++++++++++ slides/03-Developing-gem5-models/04-ports.md | 17 +++++++++++++++ ...modeling-cores.md => 05-modeling-cores.md} | 0 ...ence.md => 06-modeling-cache-coherence.md} | 0 .../07-extending-gem5-models.md | 19 +++++++++++++++++ slides/04-GPU-model/01-intro.md | 12 +++++++++++ slides/05-Other-simulators/01-sst.md | 0 slides/05-Other-simulators/02-dram.md | 15 +++++++++++++ slides/05-Other-simulators/03-systemc.md | 16 ++++++++++++++ 15 files changed, 181 insertions(+), 1 deletion(-) rename slides/02-Using-gem5/{03-workloads-in-gem5.md => 03-running-in-gem5.md} (87%) create mode 100644 slides/02-Using-gem5/10-modeling-power.md rename slides/03-Developing-gem5-models/{01-sim-objects.md => 01-sim-objects-intro.md} (56%) create mode 100644 slides/03-Developing-gem5-models/02-debugging-gem5.md create mode 100644 slides/03-Developing-gem5-models/03-event-driven-sim.md create mode 100644 slides/03-Developing-gem5-models/04-ports.md rename slides/03-Developing-gem5-models/{02-modeling-cores.md => 05-modeling-cores.md} (100%) rename slides/03-Developing-gem5-models/{03-modeling-cache-coherence.md => 06-modeling-cache-coherence.md} (100%) create mode 100644 slides/03-Developing-gem5-models/07-extending-gem5-models.md create mode 100644 slides/04-GPU-model/01-intro.md create mode 100644 slides/05-Other-simulators/01-sst.md create mode 100644 slides/05-Other-simulators/02-dram.md create mode 100644 slides/05-Other-simulators/03-systemc.md diff --git a/slides/01-Introduction/03-python-background.md b/slides/01-Introduction/03-python-background.md index e69de29b..47834a68 100644 --- a/slides/01-Introduction/03-python-background.md +++ b/slides/01-Introduction/03-python-background.md @@ -0,0 +1,18 @@ +--- +marp: true +paginate: true +theme: gem5 +title: gem5 and Python Programming +--- + + + +## gem5 and Python Programming + +--- + +## We will cover + +- Python basics +- Python in gem5 +- Object-oriented programming in Python diff --git a/slides/02-Using-gem5/02-gem5-resources.md b/slides/02-Using-gem5/02-gem5-resources.md index e69de29b..c4dd2113 100644 --- a/slides/02-Using-gem5/02-gem5-resources.md +++ b/slides/02-Using-gem5/02-gem5-resources.md @@ -0,0 +1,18 @@ +--- +marp: true +paginate: true +theme: gem5 +title: gem5 Resources +--- + + + +## gem5 Resources + +--- + +- What are resources? (Disks, kernels, binaries, etc.) +- How to get resources +- How to use resources +- Workloads and suites +- Local resources diff --git a/slides/02-Using-gem5/03-workloads-in-gem5.md b/slides/02-Using-gem5/03-running-in-gem5.md similarity index 87% rename from slides/02-Using-gem5/03-workloads-in-gem5.md rename to slides/02-Using-gem5/03-running-in-gem5.md index b8be3ad8..e4218a61 100644 --- a/slides/02-Using-gem5/03-workloads-in-gem5.md +++ b/slides/02-Using-gem5/03-running-in-gem5.md @@ -3,7 +3,6 @@ marp: true paginate: true theme: gem5 title: Running Things on gem5 -footer: "![gem5 logo](../themes/gem5Long.png)" author: "Maryam Babaie" editor: "Jason Lowe-Power" --- diff --git a/slides/02-Using-gem5/10-modeling-power.md b/slides/02-Using-gem5/10-modeling-power.md new file mode 100644 index 00000000..d866a248 --- /dev/null +++ b/slides/02-Using-gem5/10-modeling-power.md @@ -0,0 +1,18 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Modeling Power in gem5 +--- + + + +## Modeling Power in gem5 + +--- + +## What we will cover + +- Idea behind power modeling +- The `MathExprPowerModel` +- An example diff --git a/slides/03-Developing-gem5-models/01-sim-objects.md b/slides/03-Developing-gem5-models/01-sim-objects-intro.md similarity index 56% rename from slides/03-Developing-gem5-models/01-sim-objects.md rename to slides/03-Developing-gem5-models/01-sim-objects-intro.md index 8bc7053c..baca37d1 100644 --- a/slides/03-Developing-gem5-models/01-sim-objects.md +++ b/slides/03-Developing-gem5-models/01-sim-objects-intro.md @@ -12,3 +12,10 @@ title: Developing SimObjects in gem5 In this section, you will go from a blank page to a cache! --- + +## We will cover + +- Development environment, code style, git branches +- The most simple `SimObject` +- Simple run script +- How to add parameters to a `SimObject` diff --git a/slides/03-Developing-gem5-models/02-debugging-gem5.md b/slides/03-Developing-gem5-models/02-debugging-gem5.md new file mode 100644 index 00000000..96ba39b7 --- /dev/null +++ b/slides/03-Developing-gem5-models/02-debugging-gem5.md @@ -0,0 +1,21 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Debugging and Debug Flags +--- + + + +## Debugging and debug flags + +--- + +## We will cover + +- How to enable debug flags (examples of DRAM and Exec) +- `--debug-help` +- Adding a new debug flag +- Functions other than DPRINTF +- Panic/fatal/assert +- gdb? diff --git a/slides/03-Developing-gem5-models/03-event-driven-sim.md b/slides/03-Developing-gem5-models/03-event-driven-sim.md new file mode 100644 index 00000000..6a894ada --- /dev/null +++ b/slides/03-Developing-gem5-models/03-event-driven-sim.md @@ -0,0 +1,20 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Programming Event-Driven Simulation +--- + + + +## Programming Event-Driven Simulation + +Here you'll learn how to actually model architecture! + +--- + +- Creating a simple callback event +- Scheduling events +- Modeling bandwidth and latency with events +- Other SimObjects as parameters +- Hello/Goodbye example with buffer diff --git a/slides/03-Developing-gem5-models/04-ports.md b/slides/03-Developing-gem5-models/04-ports.md new file mode 100644 index 00000000..75f06453 --- /dev/null +++ b/slides/03-Developing-gem5-models/04-ports.md @@ -0,0 +1,17 @@ +--- +marp: true +paginate: true +theme: gem5 +title: "Modeling memory objects in gem5: Ports" +--- + + + +## Modeling memory objects in gem5: Ports + +--- + +- Idea of ports (request/response), packets, interface +- A simple memory object that forwards things +- Connecting ports and writing config files +- Adding stats to a SimObject diff --git a/slides/03-Developing-gem5-models/02-modeling-cores.md b/slides/03-Developing-gem5-models/05-modeling-cores.md similarity index 100% rename from slides/03-Developing-gem5-models/02-modeling-cores.md rename to slides/03-Developing-gem5-models/05-modeling-cores.md diff --git a/slides/03-Developing-gem5-models/03-modeling-cache-coherence.md b/slides/03-Developing-gem5-models/06-modeling-cache-coherence.md similarity index 100% rename from slides/03-Developing-gem5-models/03-modeling-cache-coherence.md rename to slides/03-Developing-gem5-models/06-modeling-cache-coherence.md diff --git a/slides/03-Developing-gem5-models/07-extending-gem5-models.md b/slides/03-Developing-gem5-models/07-extending-gem5-models.md new file mode 100644 index 00000000..bf7fa18b --- /dev/null +++ b/slides/03-Developing-gem5-models/07-extending-gem5-models.md @@ -0,0 +1,19 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Developing SimObjects in gem5 +--- + + + +## Tools to extend gem5 models + +--- + +## We will cover + +- Probe points +- Base utilities like bitsets +- Random number generation +- Signal ports? diff --git a/slides/04-GPU-model/01-intro.md b/slides/04-GPU-model/01-intro.md new file mode 100644 index 00000000..6afb2e38 --- /dev/null +++ b/slides/04-GPU-model/01-intro.md @@ -0,0 +1,12 @@ +--- +marp: true +paginate: true +theme: gem5 +title: gem5's GPU model +--- + + + +## gem5's GPU model + +--- diff --git a/slides/05-Other-simulators/01-sst.md b/slides/05-Other-simulators/01-sst.md new file mode 100644 index 00000000..e69de29b diff --git a/slides/05-Other-simulators/02-dram.md b/slides/05-Other-simulators/02-dram.md new file mode 100644 index 00000000..48aac9ed --- /dev/null +++ b/slides/05-Other-simulators/02-dram.md @@ -0,0 +1,15 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Extending gem5 with DRAMSim and DRAMSys +--- + + + +## Extending gem5 with DRAMSim and DRAMSys + +--- + +- DRAMSim +- DRAMSys diff --git a/slides/05-Other-simulators/03-systemc.md b/slides/05-Other-simulators/03-systemc.md new file mode 100644 index 00000000..e228e0eb --- /dev/null +++ b/slides/05-Other-simulators/03-systemc.md @@ -0,0 +1,16 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Extending gem5 with SystemC +--- + + + +## Extending gem5 with SystemC + +--- + +- What is SystemC +- SystemC in gem5 +- gem5 in SystemC From 9401f1511ee6fd4c43df40e5bd7ab35997733978 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 8 Jul 2024 16:48:28 -0700 Subject: [PATCH 65/69] misc: Fix typo in readme Signed-off-by: Jason Lowe-Power --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e54a07a6..7cf7a46a 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ git branch example-1 # Creating a new branch named 'example-1'. 3. Checkout this branch: ```sh -git checkout example-` +git checkout example-1 ``` 4. Make changes on this branch and commit the changes. From 944379bf57767c2f7112a82da8acc8fbf7d8d165 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 8 Jul 2024 17:41:25 -0700 Subject: [PATCH 66/69] misc: Update devcontainer with drawio extension --- .devcontainer/devcontainer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f8106fe0..77f913f6 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -22,7 +22,8 @@ "ms-vscode.makefile-tools", "Tsinghua-Hexin-Joint-Institute.gem5-slicc", "ms-python.black-formatter", - "marp-team.marp-vscode" + "marp-team.marp-vscode", + "hediet.vscode-drawio" ] } }, From b3d9c0241f0a611f4fd780b4cb9727d8ece27026 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 8 Jul 2024 17:48:35 -0700 Subject: [PATCH 67/69] slides: Fix typos in intro/outline --- .../00-introduction-to-bootcamp.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/slides/01-Introduction/00-introduction-to-bootcamp.md b/slides/01-Introduction/00-introduction-to-bootcamp.md index 397f799e..b7100905 100644 --- a/slides/01-Introduction/00-introduction-to-bootcamp.md +++ b/slides/01-Introduction/00-introduction-to-bootcamp.md @@ -3,6 +3,7 @@ marp: true paginate: true theme: gem5 title: Getting Started with gem5 +author: Jason Lowe-Power --- @@ -20,9 +21,6 @@ title: Getting Started with gem5 ## Plan for the week -| Monday | Tuesday | Wednesday | Thursday | Friday | -|--------|---------|-----------|----------|--------| - - Introduction - [Background on simulation](01-simulation-background.md): 1 hour (Jason) - What is is simulation and why does it matter @@ -35,26 +33,26 @@ title: Getting Started with gem5 - Python in gem5 - Object-oriented programming in Python - Using gem5 - - [gem5's standard library](../02-Using-0gem5/01-stdlib.md): 2 hours (Bobby) - - [gem5 resources](../02-Using-0gem5/02-gem5-resources.md): 1 hour (Harshil) + - [gem5's standard library](../02-Using-gem5/01-stdlib.md): 2 hours (Bobby) + - [gem5 resources](../02-Using-gem5/02-gem5-resources.md): 1 hour (Harshil) - What are resources? (Disks, kernels, binaries, etc.) - How to get resources - How to use resources - Workloads and suites - Local resources - - [Running things in gem5](../02-Using-0gem5/03-running-in-gem5.md): 2 hours (Erin / Zhantong) + - [Running things in gem5](../02-Using-gem5/03-running-in-gem5.md): 2 hours (Erin / Zhantong) - Intro to syscall emulation mode - The gem5-bridge utility and library - Cross compiling - Traffic generator (Test board) - Process.map and drivers in SE mode (maybe cut) - - [Modeling cores in gem5](../02-Using-0gem5/04-cores.md): 1 hour (Mysore / Jason) + - [Modeling cores in gem5](../02-Using-gem5/04-cores.md): 1 hour (Mysore / Jason) - CPU models in gem5 - Using the CPU models - Branch predictors - Look at the gem5 generated statistics - Overview of ISAs and tradeoffs - - [Modeling caches in gem5](../02-Using-0gem5/05-cache-hierarchies.md): 1.5 hour (Leo / Mahyar) + - [Modeling caches in gem5](../02-Using-gem5/05-cache-hierarchies.md): 1.5 hour (Leo / Mahyar) - Cache models in gem5 (Ruby and classic) - Using the cache models - Replacement policies @@ -112,7 +110,7 @@ title: Getting Started with gem5 - A simple memory object that forwards things - Connecting ports and writing config files - Adding stats to a SimObject - - [Modeling Cores (Bobby)](../03-Developing-gem5-models/05-modeling-cores.md) 1.5 hours + - [Modeling Cores](../03-Developing-gem5-models/05-modeling-cores.md) (Bobby) 1.5 hours - New instructions - How the execution model works - Debugging From 0ba25590f8ec3a22286b30634045c3d689169570 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Tue, 9 Jul 2024 16:17:47 -0700 Subject: [PATCH 68/69] slides: Add contributing section Signed-off-by: Jason Lowe-Power --- slides/06-Contributing/01-contributing.md | 15 +++++++++++++++ slides/06-Contributing/02-testing.md | 15 +++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 slides/06-Contributing/01-contributing.md create mode 100644 slides/06-Contributing/02-testing.md diff --git a/slides/06-Contributing/01-contributing.md b/slides/06-Contributing/01-contributing.md new file mode 100644 index 00000000..6719c3f4 --- /dev/null +++ b/slides/06-Contributing/01-contributing.md @@ -0,0 +1,15 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Contributing to gem5 +author: Jason Lowe-Power +--- + + + +## Contributing to gem5 + +Learn to create PRs, issues, and review code in gem5. + +--- diff --git a/slides/06-Contributing/02-testing.md b/slides/06-Contributing/02-testing.md new file mode 100644 index 00000000..333253b3 --- /dev/null +++ b/slides/06-Contributing/02-testing.md @@ -0,0 +1,15 @@ +--- +marp: true +paginate: true +theme: gem5 +title: Running gem5 Tests +author: Jason Lowe-Power +--- + + + +## Running gem5 Tests + +Learn to run, interpret the output, and add new tests to gem5. + +--- From 384f7bec2751f480244c50c08042933b195573fd Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Wed, 10 Jul 2024 10:26:29 -0700 Subject: [PATCH 69/69] Update devcontainer.json to use v24-0 image --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 77f913f6..6adb8220 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "gem5 Development Container", - "image": "ghcr.io/gem5/devcontainer:isca2024", + "image": "ghcr.io/gem5/devcontainer:v24-0", "hostRequirements": { "cpus": 1, "memory": "8gb",