Pitfalls of Unified Memory Models in GPUs

QCon London 2024

Session

Pitfalls of Unified Memory Models in GPUs

Monday Apr 8 / 01:35PM BST, Windsor (5th Fl.)

Abstract

Modern GPUs offer support for so-called unified memory, providing a universal address space for both CPUs and GPUs. Whilst attractive from a programming perspective, the use of unified memory can often introduce performance regressions and a surprising level of additional complexity.

This presentation explores the use of unified memory on modern GPUs, the low-level details of how unified memory is realized on an x86-64 system, and some of the tools that can be used to understand exactly what's happening on your GPU.

Interview

I spend most of my time trying to understand mathematical objects and algorithms before implementing them as efficiently as I possibly can across different hardware. This work spans across all levels of the computing hierarchy.

To help the audience understand how unified memory can both help and hinder software development, as well as the tools that can be used to profile and understand the code that runs on their GPUs.

There will be something in this talk for a range of personas, provided that they're interested in GPUs. The talk will cover the high-level ideas behind how a GPU works before we dive into the deep details. This talk will likely not appeal to highly-experienced GPU programmers. I would like to reach an audience that
is curious about how programming a GPU is different compared to programming for a CPU.

Software engineering is a constant balance between complexity and performance. I would like everyone to walk away with the knowledge that this relationship is not necessarily linear; indeed, we can sometimes reduce complexity without harming the overall performance of our software. On the other hand, it is sometimes necessary to make our programs slightly more complicated in order to achieve peak performance.

76% senior dev or higher
1:11 speaker ratio
60+ practitioners

QCon London 2024 is a three day conference for senior software engineers, architects and team leads. An international program committee of working engineers selects every session. Patterns and practices, not products and pitches.

Share

From the same track

Monday 8 April

10:35 Mountbatten (6th Fl.) Session performance A Walk Along the Complexity-Performance Curve Richard Startin Senior Software Engineer @Datadog 11:45 Windsor (5th Fl.) Session Linux kernel Opening the Box: Diagnosing Operating-System Task-Scheduler Behavior on Highly Multicore Machines Julia Lawall Senior Scientist @INRIA 13:35 Windsor (5th Fl.) Session Pitfalls of Unified Memory Models in GPUs Joe Rowell Founding Engineer @poolside.ai, Low-Level Performance Engineer, Cryptographer and PhD Candidate @RHUL 14:45 Rutherford (4th Fl.) Unconference Unconference: Performance Engineering Unleashed 15:55 Windsor (5th Fl.) Session Practical Benchmarking: How To Detect Performance Changes in Noisy Results Matt Fleming CTO @Nyrkiö, Former Linux Kernel Maintainer @Intel and @SUSE 17:05 Windsor (5th Fl.) Session Panel: What Does the Future of Computing Look Like Julia Lawall, Matt Fleming, Joe Rowell