A simple assignment to get students started with gem5. This will introduce the students to how to use gem5, codespaces, etc. In this assignment you will learn how to use gem5’s standard library to:
The assignment is due on 1/15. Read about submission deadlines on the assignment page.
Start assignment 0.
GitHub Classroom link for 154B: https://classroom.github.com/a/MSJXTW62
GitHub Classroom link for 201A: https://classroom.github.com/a/6tW_hScw
This assignment compares the performance difference of x86, Arm, and RISC-V ISAs on a simple matrix multiplication workload. The performance is compared across ISAs and between 1 GHz and 4 GHz. The goal is to use the Iron Law of Performance to explain the results. In this assignment you will:
The assignment is due on 1/20. Read about submission deadlines on the assignment page.
Start assignment 1.
GitHub Classroom link for 154B: https://classroom.github.com/a/U2i19Erv
GitHub Classroom link for 201A: https://classroom.github.com/a/5c60g6T7
This assignment compares the performance of an in-order CPU with different pipeline widths, latencies, and depths. The goal is to understand the impact of the pipeline on performance. In this assignment you will:
The assignment is due on 1/27. Read about submission deadlines on the assignment page.
Start assignment 2.
GitHub Classroom link for 154B: https://classroom.github.com/a/9ttRhgEf
GitHub Classroom link for 201A: https://classroom.github.com/a/wvKeeK6I
This assignment digs into how different parameters of an out-of-order CPU, including width, ROB size, and the number of physical registers, impact performance. This assignment uses a variety of workloads to showcase the differences in how these parameters impact performance. In this assignment you will:
The assignment is due on 2/3. Read about submission deadlines on the assignment page.
Start assignment 3.
GitHub Classroom link for 154B: https://classroom.github.com/a/TOfrsoGz
GitHub Classroom link for 201A: https://classroom.github.com/a/f4SMUSm8
In this assignment, you’ll be investigating the performance impacts of different cache architectures and different algorithm designs on matrix multiplication. It reinforces the average memory access time calculation and the impact of cache size on performance. The goals of this assignment are:
The assignment is due on 2/17. Read about submission deadlines on the assignment page.
Start assignment 4.
GitHub Classroom link for 154B:
GitHub Classroom link for 201A:
In this assignment, you will explore the performance impacts of different virtual memory configurations on a variety of workloads. You will investigate the impact of page size, TLB size, and associativity on performance. The goals of this assignment are:
The assignment is due on 2/24. Read about submission deadlines on the assignment page.
Start assignment 5.
GitHub Classroom link for 154B:
GitHub Classroom link for 201A:
In this assignment, you will explore the performance bottlenecks in poorly-written parallel code, specifically false sharing. It uses a simple parallel workload, shows 6 different implementations, and asks the students to figure out why the performance is different. Then, after seeing which algorithms perform well and poorly on real hardware, we will use a cycle-level simulator (gem5) with a detailed cache model to understand the performance.
The assignment is due on 3/10. Read about submission deadlines on the assignment page.
Start assignment 6.
GitHub Classroom link for 154B:
GitHub Classroom link for 201A: