MPCS 52072 GPU Programming (Summer 2024)

Section 1
Instructor(s) Kenneth Samuels, Lamont (lamonts)
Location Online Only
Meeting Times Wednesday 5:30pm - 7:30pm
Fulfills Core Systems Elective Specialization - High Performance Computing (HPC-2)

Syllabus

This course provides an introduction to programming for Graphics Processing Units (GPUs), primarily focusing on both the theoretical aspects and practical implementations for programming on them. With the increasing demand for high-performance computing, understanding how to leverage GPUs is becoming essential for various fields including machine learning, scientific computing, and computer graphics. Students will learn the fundamental principles of GPU architecture, which includes  GPU hardware structure, memory hierarchy, and execution model. Students will gain proficiency in writing GPU programs by using industry-standard frameworks such as CUDA and OpenCL. By the end of this course, students will know how to proficiently use GPU resources to accelerate the performance of a wide range of applications that require their computational power.

Course Prerequisites

Core Programming; knowledge of C programming

Other Prerequisites

Non-MPCS students need to complete the Course Request Form here: https://forms.gle/7mrwg2u3Knn8ogHL7. This course requires competency in Unix and Linux. If you attended the MPCS Unix Bootcamp you covered the required material. If you did not, please review the UChicago CS Student Resource Guide here: https://uchicago-cs.github.io/student-resource-guide/.

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 53113-1 -- Natural Language Processing
  • MPCS 52553-1 -- Web Development
  • MPCS 50101-1 -- Concepts of Programming

Eligible Programs

Masters Program in Computer Science MS in Computational Analysis in Public Policy (Year 1) MS in Computational Analysis in Public Policy (Year 2) MA in Computational Social Science (Year 1) MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 2: Professionally-oriented - CS Majors) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors) MS in Molecular Engineering Undergraduate - CS Minor Undergraduate - CS Major