Prefer to read without ads? Become a member — from $10/month — and support the work. Already a member? Log in to read ad-free on this device.

Chapter 9 Scaling and Data Movement

The only thing better than porting a program to run on a CUDA GPU is porting a program to run on more than one CUDA GPU! This chapter describes CUDA’s facilities for using more than one GPU – threading models, peer-to-peer, and inter-GPU synchronization – and the data-movement layer that carries a program from a single GPU out to a cluster: the GPUDirect family, collective communication, and direct storage access.

As an example, we’ll explore single- and multi-threaded implementations of the N-body problem that use multiple GPUs.

In this chapter