Programming Massively Parallel Processors: A Hands-on Approach shows both student and professional alike the basic concepts of parallel programming and GPU architecture. Concise, intuitive, and practical, it is based on years of road-testing in the authors' own parallel computing courses. Various techniques for constructing parallel programs are explored in detail, while case studies demonstrate the development process, which begins with computational thinking and ends with effective and efficient parallel programs. Topics of performance, parallel patterns, and dynamic parallelism are covered in depth. The new edition includes updated coverage of CUDA, including the newer libraries such as CuDNN. New chapters on frequently used parallel patterns have been added, and case studies have been updated to reflect current industry practices.NEW FOR THE THIRD EDITION- Parallel Patterns Includes several new chapters on frequently used parallel patterns (histogram, merge sort, and graph search).- Deep Learning A new chapter on deep learning has been added as an application case study.- Advanced CUDA Features The advanced features of CUDA are explored in a new chapter.- Pascal Recent GPU architectural features are covered, including Pascal.