CENG 526

High Performance Artificial Intelligence

CENG526 High Performance Artificial Intelligence

This course provides the knowledge to understand and leverage high performance computing (HPC) for artificial intelligence applications. It explains fundamental HPC concepts, including parallel programming, distributed computing, and HPC infrastructure. The students will explore common AI workloads and their computational requirements by hands-on exercises, gaining insights into how HPC platforms and parallelism techniques optimize AI model training and inference.

Course Objectives

The primary objective of this course is to introduce the high performance computing (HPC) platforms and techniques to accelerate AI model training and inference. It provides a system-oriented perspective and it guides students through the complete execution workflow of AI applications from hardware architecture and system software to job scheduling, parallel execution, performance measurement, and scalability analysis.

Recommended or Required Reading

Chris Fregly. AI Systems Performance Engineering: Optimizing Model Training and Inference Workloads with GPUs, CUDA, and PyTorch. O’Reilly Media, 2025.

Jordi Torres. Supercomputing for Artificial Intelligence: Foundations, Architectures, and Scaling Deep Learning Workloads. 2025.

Wen-mei W. Hwu, David B. Kirk, Izzat El Hajj. Programming Massively Parallel Processors: A Hands-on Approach. Morgan Kaufmann, 2022.

Learning Outcomes

  1. Explain the parallelism techniques for AI execution.
  2. Develop and profile AI executions in parallel GPU systems.
  3. Apply compiler and inference engine optimizations.
  4. Apply fundamental system-level optimization techniques for AI executions.
Week Topics
1 Introduction and artificial intelligence system overview – Basic components of AI software, evaluation of AI systems performance, benchmarking and profiling
2 Operating system support and HPC infrastructure for artificial intelligence – OS-level, networking, and storage optimizations for GPU-based AI systems, Docker container and Kubernetes orchestration
3 Computer architecture and GPU systems – Computer architecture review, GPU architecture basics
4 Artificial intelligence hardware – NVIDIA AI system hardware, SIMD execution units
5 CUDA programming – Compute – NVIDIA CUDA programming fundamentals and CUDA-kernel optimizations
6 CUDA programming – Memory – Optimizations for memory-bound AI computations, FlashAttention, Multi-head Latent Attention
7 MIDTERM EXAM
8 Deep learning frameworks (TensorFlow and PyTorch) – Practical examples for developing AI applications
9 Profiling and tuning AI GPU executions – Profiling tools to evaluate GPU execution and resource utilization, CUDA and PyTorch optimization techniques to align data structures for efficient memory access, eliminate redundant data loads, and overlap data transfers with computation
10 GPU execution pipelining – CUDA streams, advanced CUDA techniques such as warp-specialized pipelines, cooperative groups with grid-level synchronization, persistent kernels
11 Compiler support for artificial intelligence – Basics of dynamic PyTorch compilation stack, how torch.compile works
12 Multinode parallelism – Distributed computing basics, methods to split the inference workload into stages that can run on multiple GPU nodes
13 Inference engine optimizations – Methods to accelerate AI inference implemented in inference servers, practical examples with vLLM, tensorRT
14 Paper presentations – Academic paper presentations by the students

Homeworks: 20%

Project: 20%

Midterm Exam: 20%

Final Examination: 40%