This book aims to help readers understand the key performance issues that arise when programming ongeneral purposegraphicsprocessingunit(GPGPU)hardware.Althoughtherearemanyexcellent
resources available with similar aims, this book emphasizes general principles in algorithm design and how these are translated into low-level GPGPU architectures and programming. It includes a brief overview of GPGPU architectures and programming (Chapter 1), high-level algorithmic
design theory (Chapter 2), a case study in translating theory into performance engineering practice on GPGPUs (Chapter 3), and a survey of the current state-of-the-art in lower-level performance modeling and analysis for GPGPUs (Chapter 4).Taken together, we hope this material provides a
unique end-to-end view of performance understanding for GPGPUs.