ACES: GPU Programming

Overview

Instructor: Jian Tao

Time: Tuesday, November 12, 2024 — 1:30PM-4:00PM CT

Location: Online using Zoom

Prerequisites: Current ACCESS ID, Linux/Unix skills, experience with C or C++

This short course covers basic topics in CUDA programming on NVIDIA GPUs. Topics include CUDA architecture; basic language usage of CUDA C/C++; and writing and executing CUDA code.

Registration will open up on this webpage the week before the class.

Course Materials

  • Introduction to CUDA slides (Fall 2024): PDF
  • Exercises (Fall and Spring 2024): tarball

Previous Course Materials

  • Introduction to CUDA slides (Spring 2024): PDF
  • Introduction to CUDA slides (Fall 2023): PDF
  • Introduction to CUDA slides (Spring 2023): PDF
  • Introduction to CUDA exercises (Spring 2023): TGZ

Learning Objectives and Agenda

Learning objectives:

  • Understand the Basics of CUDA: Learn the fundamentals of CUDA, including its architecture, and how it exposes GPU parallelism for general-purpose computing.
  • Familiarize with CUDA Programming: Understand how to write CUDA programs, including how to manage devices, memory, and execute kernels on the GPU
  • Learn Parallel Programming Concepts: Grasp the concepts of parallel programming in CUDA, including how to launch kernels, manage threads, and optimize performance.

Agenda:

  • GPU as an Accelerator
  • Running CUDA Code on ACES
  • CUDA C/C++ Basics
  • Unified Memory Programming
  • Device Management

Note: During the class sessions many aspects of the material will be demonstrated live on the ACES cluster. Attendees will also log in to ACES to complete exercises themselves.