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.
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.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 |