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: CS143 or equivalent

Basic Logistics

Professor: Fred Kjolstad

CA: Caleb Donovick

Lecture Times: Tue, Thu 9:45 AM - 11:15 AM

Lecture Location: Sequoia Hall 200

Schedule

Date Topic Readings
Lecture 1 September 21 Introduction
Lecture 2 September 23 Domain-Specific Compilers
Lecture 3 September 28 Building DSLs I
Lecture 4 September 30 Collection-Oriented Languages
Lecture 5 October 5 Dense Programming Systems
Lecture 6 October 7 Sparse Programming Systems
Lecture 7 October 12 Sparse Iteration Model I
Lecture 8 October 14 Sparse Iteration Model II
Lecture 9 October 19 Project Pitch
Lecture 10 October 21 Building DSLs in Python (Caleb Donovick)
Lecture 11 October 26 Project Discussion I
Lecture 12 October 28 Project Discussion II
November 2 Democracy Day (no classes)
Lecture 13 November 4 Building DSLs II (Pat Hanrahan)
Lecture 14 November 9 Guest speaker: Towards Automated Construction of Compiler Optimizations (Charith Mendis)
Lecture 15 November 11 Notation (Pat Hanrahan)
Lecture 16 November 16 Guest speaker: Mehdi Amini on MLIR
Lecture 17 November 18 Fast Compilers
November 23 Thanksgiving Break (no classes)
November 25 Thanksgiving Break (no classes)
Lecture 18 November 30 Project demo
Lecture 19 December 3 Project demo