Index

Table of contents

Assignment 0

In this assignment you will learn how to use gem5’s standard library to:

  • describe the computer system you would like to simulate,
  • set up the workloads and benchmarks you need to evaluate your system’s performance,
  • set up a simulation environment,
  • use gem5 in command line.

This assignment is not graded and aims to teach students how to use gem5 as a tool for this course.

Start assignment 0.

Assignment 1

In this assignment you will:

  • compare the performance of a single-cycle CPU and an in-order pipelined CPU,
  • evaluate the effect of changing CPU clock frequency on the overall performance,
  • and investigate the impact of memory on the overall performance of the system.

The assignment is due on 1/19. Read about submission deadlines on the assignment page.

Start assignment 1.

Assignment 2

In this assignment you will:

  • learn how you can use gem5 to profile programs,
  • evaluate the performance of different configurations of a pipeline,
  • and use Amdahl’s law in practice.

The assignment is due on 1/29. Read about submission deadlines on the assignment page.

Start assignment 2.

Assignment 3

In this assignment you will:

  • Show how applications have different behaviors as the microarchitecture changes.
  • Give you experience investigating the bottleneck in a particular architecture.
  • Improve your understanding of out-of-order processor architecture.

The assignment is due on 2/16. Read about submission deadlines on the assignment page.

Start assignment 3.

Assignment 4

In this assignment, you’ll be investigating the performance impacts of different cache architectures and different algorithm designs on matrix multiplication. The goals of this assignment are:

  • Show how algorithms have different behaviors as the microarchitecture changes.
  • Show how changing the algorithm can change performance on the same microarchitecture.
  • Improve your understanding of cache architectures.

The assignment is due on 3/1. Read about submission deadlines on the assignment page.

Start assignment 4.

Assignment 5

In this assignment, you will explore the performance bottlenecks in poorly-written parallel code. We will take a very simple application, summing the values in an array, and see how if you are not careful how you parallelize the application, the performance will become quite poor.

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/15. Read about submission deadlines on the assignment page.

Start assignment 5.


Next submodule: