CS343D: Domain-Specific Programming Models and Compilers

Current Offering

Course Description

This class will cover the principles and practices of domain-specific programming models and compilers for dense and sparse applications in scientific computing, data science, and machine learning. We will study programming models from the recent literature, categorize them, and discuss their properties. We will also discuss promising directions for their compilation, including the separation of algorithm, schedule, and data representation, polyhedral compilation versus rewrite rules, and sparse iteration theory. Prerequisites: CS161 or equivalent, STATS116 or equivalent.

Basic Logistics

Professors: Fred Kjolstad, Pat Hanrahan

CA: Dillon Huff

Lecture Times: Tue, Thu 10:30 AM - 11:50 AM

Lectures are held on Zoom, scheduled through the course Canvas page.

Schedule

Date Topic Readings
Lecture 1 September 15 Introduction
Lecture 2 September 17 Why Domain-Specific Compilers
Lecture 3 September 22 Building DSLs
Lecture 4 September 24 Collection-Oriented Languages
Lecture 5 September 29 Dense Programming Systems
Lecture 6 October 1 Sparse Programming Systems
Lecture 7 October 6 Sparse Iteration Theory I
Lecture 8 October 8 Sparse Iteration Theory II
Lecture 9 October 13 Project Pitch
Lecture 10 October 15 Notation
Lecture 11 October 20 The Polyhedral Model
Lecture 12 October 22 Project Discussion I
Lecture 13 October 27 Project Discussion II
Lecture 14 October 29 How to Write a (Systems) Paper
Lecture 15 November 3 Class canceled due to Election Day
Lecture 16 November 5 Guest speaker: Guy Blelloch on the most important operations on collections, and the parlay library
Lecture 17 November 10 Guest speaker: Chris Lattner on the MLIR compiler infrastructure
Lecture 18 November 12 Guest speaker: Gilbert Bernstein on Differentiating a Tensor Language
Lecture 19 November 17 Project demo
Lecture 20 November 19 Project demo