Nvidia Ampere die photo, c/o Nvidia

CIS 6010: Special Topics in Computer Architecture: GPGPU Architecture and Programming Fall 2022

Course Information

instructor: Joe Devietti
when: Tuesday/Thursday 10:15-11:45am
where: Towne 311
contact: email, canvas

office hours:

  • Thursdays noon-1pm, Levine 572

Course Description

Graphics Processing Units (GPUs) have become extremely popular and are used to accelerate an increasingly diverse set of non-graphics workloads. This seminar will examine modern GPU architectures, the programming models used to write general-purpose code for GPUs, and the complexities of programming such highly parallel architectures. There will be a special emphasis on concurrency correctness issues as they relate to GPUs, including GPU memory consistency models and GPU concurrency bugs. Graduate-level coursework in computer architecture (e.g., CIS 5710) will be very helpful.

Course Materials

No textbooks are required; links to all readings will be provided at this website.

Grading

  • Project: 40%
  • Participation: 30%
  • Assignments: 20%
  • Reading quizzes: 10%

There will be no exams.

Submit homework, reading quizzes and future-work write-ups via Canvas.

The class project can be done in groups of up to 2. The project is open-ended: it should be something related to GPUs but the specifics are up to you. Choosing a project that incorporates your interests (research or otherwise) is a great idea!

Course Schedule

This schedule is subject to change

Date Topic Presenter
Tue 30 Aug Intro Joe
Thu 1 Sep General-Purpose Graphics Processor Architectures (accessible via Penn VPN), Chapters 1 & 2 Joe
Tue 6 Sep ” Sections 3.1 - 3.3 Joe
Thu 8 Sep ” Section 3.4 - 3.6 Joe
Tue 13 Sep ” Chapter 4 Joe
Thu 15 Sep Real-world GPU design Joe
Tue 20 Sep CUDA Programming Guide Joe
Thu 22 Sep CUDA synchronization Joe
Tue 27 Sep no class - Rosh Hoshana
Thu 29 Sep A Primer on Memory Consistency and Cache Coherence, Chapters 3-5 (SC, TSO, RC) Joe
Tue 4 Oct no class - Yom Kippur
Thu 6 Oct no class - Fall Break
Tue 11 Oct MCM Primer Joe
Thu 13 Oct MCM Primer Joe
Tue 18 Oct MCM Primer Joe
Thu 20 Oct MCM Primer Joe
Tue 25 Oct MCM Primer Joe
Thu 27 Oct MCM Primer Joe
Tue 1 Nov Heterogeneous-Race-Free Memory Models Joe
Thu 3 Nov GPU concurrency: Weak Behaviours and Programming Assumptions slides Joe
Tue 8 Nov no class - Election Day
Thu 10 Nov Dynamic Warp Formation Joe
Tue 15 Nov A Formal Analysis of the NVIDIA PTX Memory Consistency Model Joe
Thu 17 Nov Cache Coherence for GPU Architectures Joe
Tue 22 Nov Cache-Conscious Wavefront Scheduling Shashank + Adwayt
Thu 24 Nov no class - Thanksgiving
Tue 29 Nov SIMR: Single Instruction Multiple Request Processing for Energy-Efficient Data Center Microservices Bhagath + Pranoti
Thu 1 Dec Understanding The Security of Discrete GPUs Sumiran + Arjun
Tue 6 Dec GPUfs: integrating a file system with GPUs Aaraddhya
Thu 8 Dec GPUnet: Networking Abstractions for GPU Programs Shubhendra