CSC 290/420 Machine Learning Systems for Efficient AI

Organization

Class
CSC 290/420 Machine Learning Systems for Efficient AI (Fall 2025)
Instructor
Sreepathi Pai
Lecture
MW 9:00-10:15 Hylan 203
E-mail
sree@cs.rochester.edu
Office Location
Wegmans 3409
Office Hours
Wednesdays 14:00 to 15:00, or by appointment.
T.A. Office Hours:
  1. Ethan Chen, Wed 20:00 to 21:00, Zoom (temporary)
Final Exam Date
No final exam

Academic Honesty

All assignments and activities associated with this course must be performed in accordance with the University of Rochester's Academic Honesty Policy. More information is available at: http://www.rochester.edu/college/honesty.

Disability Resources

The University of Rochester respects and welcomes students of all backgrounds and abilities. In the event you encounter any barriers(s) to full participation in this course due to the impact of a disability please contact the Office of Disability Resources. The access coordinators in the Office of Disability Resources can meet with you to discuss the barriers you are experiencing and explain the eligibility process for estabilishing academic accommodations. You can reach the Office of Disability Resources at disability@rochester.edu, (585) 276-5075; Taylor Hall.

Description

This advanced course is aimed at students who wish to build and use efficient large-scale AI systems. It condenses CSC 252, CSC 254, CSC 258, and CSC 255, collating material from those courses that are most relevant to modern AI systems. Topics covered include machine learning (ML) applications, ML programming models, code generation and optimization, manual and automatic parallelization, performance modeling, systems-level challenges, and specialized AI hardware. No background in AI or ML is expected, but proficiency in programming is expected.

Course Objectives and Learning Outcomes

The purpose of this course is to enable students to design, build, and operate efficient AI/ML systems.

In this course, we will learn how programs execute on a computer, with specific focus on the computational units, the memory and storage subsystem, and networking abilities of modern systems containing CPUs and GPUs. We will learn how to model these and reason about them to achieve better performance, lower energy, higher scalability, and overall a notion of "efficiency." The programs we will study will all be taken from the domain of machine learning and/or artificial intelligence, specifically those from deep learning.

At the end of this course, students will be able to:

  1. describe how a program executes on a modern CPU and GPU,
  2. model and reason about performance bottlenecks,
  3. demonstrate the application of various techniques to improve performance of ML/AI programs

Pre-requisites

CSC173, CSC242. Familiarity with the Linux command line recommended.

Grading

This is a 4-credit course. There will be 150 minutes of lecture (two 75-minute lectures/week), 50 minutes of "4th credit hour", and 400 minutes of out-of-class student work. Grade distribution is:

  1. Homeworks (15%)
  2. Assignments (50%) (5 to 6)
  3. Mid-term (10%)
  4. Project (25%)

Letter grades are assigned using a standard scale based on the absolute score. Here is the scale I will use, although I might choose to use a different scale which will not be stricter than this:

ScoreCSC290CSC420
>= 96AA
>= 92A-A-
>= 88B+B+
>= 84BB
>= 80B-B-
>= 76C+C
>= 72CC
>= 70CC
>= 68C-E
>= 60D
< 60E

In case we encounter difficulties due to COVID, I may use projects instead of exams.

Students taking the 4xx version of this course should expect to read more, and expect to solve different problems, and be graded on different criteria.

Late submissions

Inform the instructor in advance if circumstances beyond your control will make you miss a deadline. Otherwise there is no provision for late submissions.

Past offerings of this course

This is the first time this course is being taught.