CS 8803 O21: GPU Hardware and Software
Instructional Team

Hyesoon Kim
Creator, Instructor

Scott Madeira
Head TA
Overview
This course explores the software and hardware aspects of GPU development. Through hands-on projects, you'll gain basic CUDA programming skills, learn optimization techniques, and develop a solid understanding of GPU architecture. Additionally, you'll delve into compiler principles to comprehend software-related GPU issues and read research papers on hardware challenges. By the end, you'll have enhanced your knowledge of compilers, programming, and computer architecture for modern GPUs.
Sample Syllabi
Summer 2025 syllabus (PDF)
Spring 2025 syllabus (PDF)
Fall 2024 syllabus (PDF)
Note: Sample syllabi are provided for informational purposes only. For the most up-to-date information, consult the official course documentation.
Before Taking This Class...
Suggested Background Knowledge
- Linux command prompt experience
- C/C++ and Python orogramming skills are necessary.
- Prior CUDA programming experience is not mandatory.
- Familiarity with basic computer organization, including topics like instruction sets and pipelining, as covered in undergraduate computer architecture courses, is expected.
- CS 6200: Introduction to Operating Systems would be advantageous, especially for course projects #3, #4, and #5 involving large C++ projects.
- CS 6290: High Performance Computer Architecture would be beneficial, particularly for course projects #3 and #4, as it aids in understanding architecture simulators.
- CSE 6220: Intro to High-Performance Computing would be beneficial, especially for course projects #1 and #2 involving CUDA programming.
- CS 6340: Software Analysis would be beneficial, especially for course project #5 involving program analysis.
Academic Integrity
All Georgia Tech students are expected to uphold the Georgia Tech Academic Honor Code. This course may impose additional academic integrity stipulations; consult the official course documentation for more information.