CS250B: Modern Computer Systems

2023 Fall

Overview

Lecturer: Sang-Woo Jun
Hours: MW 11:00PM - 12:20PM
Location: DBH 1300


Descriptions

For a while now, computer systems have not been clean abstractions of homogeneous processors talking to uniform memory. Systems of today are complex, with intelligent cache hierarchies, heterogeneous processors, storage and network that act as first-class system components, and computation accelerators such as General-Purspose Graphic Processing Units (GPGPU) and Field-Programmable Gate-Arrays (FPGA), often organized into warehouse-scale datacenters and/or an elastically allocated cloud infrastructure. There is great performance and power-efficiency to be gained with understanding of this complexity.

This course is a high-level introduction into modern system design, with a focus on modern processor/memory hierarchies, Non-Volatile Memory (NVM) class memories, and especially reconfigurable hardware acceleration using FPGAs. We will experience how simple knowledge about the machine's memory hierarchy and processor capabilities can improve software performance by orders of magnitude, and the use of FPGA accelerators can improve the performance and power efficiency of many applications.

We will use scientific computation and machine learning applications as examples, and use real machines and real data to observe the effects of these modern technologies. We will regularly see multiple orders of magnitude performance improvements, with the right understanding of the underlying architecture.

Topics Covered

The topics covered generally fall into one of two categories:

Grading

Grading will be done based on a small number of labs