9 GPU architectures and concepts
This chapter covers
- The GPU hardware and its connected components
- Estimating the theoretical performance of your GPU
- Measuring the performance of your GPU
- Different application use models for effectively using a GPU
Why do we care about GPUs for high-performance computing? GPUs provide a massive source of parallel operations that can greatly exceed that which is available on the more conventional CPU architecture. It is essential to understand GPU architectures to be able to exploit their capabilities. Though GPUs have often been used for graphical processing, GPUs are also used for general purpose parallel computing. This chapter provides an overview of the hardware on a graphics processing unit (GPU)-accelerated platform. What systems today are GPU accelerated? Virtually every computing system provides the powerful graphics capabilities expected by today’s users. These GPUs range from small components of the main CPU to large peripheral cards taking up a large part of space in a desktop case. HPC systems are increasingly coming equipped with multiple GPUs. On occasion, even personal computers used for simulation or gaming can sometimes connect two GPUs for higher graphics performance.
In this chapter we present a conceptual model that identifies key hardware components of a GPU accelerated system. This consists of the components shown in figure 9.1.