This course follows one AI system from the agent loop down to the GPU. You first use an agent, replace its framework with a loop you understand, measure it, and optimize it while the model is still a rented API. Then you serve an open-weight model yourself and take responsibility for the layers underneath: GPU kernels, batching and scheduling, KV-cache and prefix reuse, routing, quantization, and speculative decoding. We finish by reversing the question and asking what LLMs can do for systems research. At every layer, the method is the same: define success, account for every token and second, find the binding constraint, and measure what changed.
Tentative and subject to change. Rows with Students as the speaker are student-led: either a paper discussion (see the paper discussion page) or an Assignment sharing session — the Topic cell says which. Readings marked required should be read before class; everything else is optional depth.
| Week | Date | Speaker | Topic | Course Materials | Notes |
|---|---|---|---|---|---|
| Part I — Introduction to LLMs and Agents | |||||
| 1 | 2026-09-02 | Juncheng Yang | Course overview and logistics | Assignment 0 out (use an agent); presentation sign-up opens | |
| 2 | 2026-09-07 | No class — Labor Day | |||
| 2 | 2026-09-09 | Juncheng Yang | Modern ML basics: transformers | ||
| 3 | 2026-09-14 | Juncheng Yang | Agents from a user’s perspective | ||
| 3 | 2026-09-16 | Juncheng Yang | Agents from a designer’s perspective I | Assignment 0 due Sun Sep 20, 11:59pm | |
| 4 | 2026-09-21 | Students | Student sharing I | What you learned from using an agent (Assignment 0): surprises, failures, lessons, insights, new tools/skills/plugins | Assignment 1 out (design an agent) |
| 4 | 2026-09-23 | Juncheng Yang | Agents from a designer’s perspective II | ||
| Part II — Systems for Agents | |||||
| 5 | 2026-09-28 | Juncheng Yang | GPU programming for MLSys: architecture, memory, and kernels | ||
| 5 | 2026-09-30 | Juncheng Yang | Efficient LLM computing: GPU kernels | Assignment 1 due Sun Oct 4, 11:59pm | |
| 6 | 2026-10-05 | Juncheng Yang | Efficient LLM serving: paging, batching, and scheduling I | Assignment 3 out (optimize the agent); Assignment 2 out (contribute problems) | |
| 6 | 2026-10-07 | Students | Efficient LLM serving: batching and scheduling II | Assignment 2 due Sun Oct 11, 11:59pm | |
| 7 | 2026-10-12 | No class — Indigenous Peoples’ Day | |||
| 7 | 2026-10-14 | Students | Efficient LLM serving: routing and load balancing | ||
| 8 | 2026-10-19 | Juncheng Yang | Efficient LLM serving: KV-cache optimization I | ||
| 8 | 2026-10-21 | Students | Efficient LLM serving: KV-cache optimization II | Assignment 3 due Sun Oct 25, 11:59pm | |
| 9 | 2026-10-26 | Guest Speaker | TBD | Assignment 4 out (serve your own agent) | |
| 9 | 2026-10-28 | Students | Student sharing II | What you optimized and what it bought (Assignment 3) | Project proposal due |
| 10 | 2026-11-02 | Guest Speaker | TBD | ||
| 10 | 2026-11-04 | Juncheng Yang | Efficient LLM serving: prefix cache | ||
| 11 | 2026-11-09 | Juncheng Yang | Efficient LLM serving: pruning and quantization | Assignment 4 due Tues Nov 10, 11:59pm | |
| 11 | 2026-11-11 | Students | Efficient LLM serving: speculative decoding | Assignment 5 out (optimize the full stack) | |
| 12 | 2026-11-16 | Guest Speaker | TBD | ||
| 12 | 2026-11-18 | Juncheng Yang | Efficient agent serving systems I | ||
| 13 | 2026-11-23 | Students | Efficient agent serving systems II | ||
| 13 | 2026-11-25 | No class — Thanksgiving recess | |||
| 14 | 2026-11-30 | Students | Student sharing III | What you optimized and what it cost (Assignment 5) | |
| 14 | 2026-12-02 | Students | Student sharing IV | What you optimized and what it cost (Assignment 5) | Assignment 5 due Dec 02, 11:59pm |
| 14 | (TBD) | Students | Final project poster and demo | Time to show case your fun projects to the world! | Final project due Dec 08, 11:59pm; peer reviews due Dec 07, 11:59pm |
The topics below are not covered in lecture. None of them has a class meeting or a paper discussion, and nothing on the schedule assumes you worked through them.
Working with agents in practice. Specification, cheap verification, and when a second agent earns its bill. It was on the schedule and came back off it; the lecture notes are written and stay up, so this is a complete meeting you can work through on your own. Assignments 0 and 1 are the place the material actually gets used. The readings page collects the papers with a note on each.
LLMs for systems. Turning the relationship around: models that write, optimize, and evaluate systems code, and the harnesses that decide whether the answer was any good. It ran as Part III on an earlier version of this schedule and came off it when the semester ran out of meetings — the readings are complete, the second meeting's lecture notes are written and stay up, and the material is the premise behind Assignment 5 and a good deal of what a final project tool has to do. The readings page collects the papers with a note on each.
The training side of the stack. How a model gets built, rather than how it gets served. Work through it if you want the background on distributed training, fine-tuning, or checkpointing. The Ultra-Scale Playbook is the best single entry point; the papers below go deeper, and the readings page collects them in one place with more on each.
| Topic | Materials |
|---|---|
| Working with agents: specification, verification, and multi-agent workflows | lecture notes; SWE-agent, Reflexion, AutoGen, KernelBench |
| LLMs for systems research I: agents that write and optimize systems code | SWE-agent, KernelBench; then LLMs for compiler optimization, OpenHands, SWE-bench Multimodal, BountyBench, measure one level deeper |
| LLMs for systems research II: automating the research loop | lecture notes; MLGym, AI Scientist-v2; then automated statistical model discovery, MLE-bench, SWE-bench, OSWorld |
| Distributed training and fine-tuning I: parallelism and ZeRO | start with Megatron-LM, ZeRO; then FSDP, GPipe, PipeDream, Alpa, LoRA, QLoRA, TorchTitan |
| Distributed training and fine-tuning II: memory, failures, and scale | start with Llama 3 (§3, infrastructure); then MegaScale, DeepSeek-V3, ByteCheckpoint, FP8-LM, ZeRO-Infinity, sublinear memory |
| Data pipelines and checkpointing | Data-Juicer, Dolma, DataComp-LM, CheckFreq, GEMINI, 3FS |
The semester closes with a final project worth 12%: build a tool that does not already exist — for your research, your studies, your week, or as an extension of one of the assignments — solving a problem no existing system solves. Try the three closest things that exist, name what each cannot do, then measure your own tool against them and say plainly where it does not work. Announced Oct 26, one-page proposal due Oct 28, report and repository due Dec 8, and a poster and demo at the December session. Half the project's credit is scored by four classmates at that session, and you review four projects yourself. It replaces the cache competition earlier versions of this schedule ran in the same weeks.
Setup instructions for every environment the course uses are on the computing setup page. Compute for the assignments and the final project comes from:
gpu-cs2680 GPU partition
We are grateful for the support of our sponsors.
The Claude license behind Claude Code.
The course HPC, 72 shared CPU servers and 50 dedicated RTX PRO 6000 Blackwell servers.