Describes parallel programming in general, and use of OpenCL in particular. Includes how to set up OpenCL development environment, how OpenCL works (phases of compilation), OpenCL's strengths and weaknesses, and sample programs.
Official webpage at (including a PDF version for sale, and a free HTML version).
OpenCL has such a strange workflow associated with it that this book is a welcome discovery for me. The book begins with "hello world" style programs, covers the workflow, proceeds to advanced options, and ends with medium-sized examples (including one "watch the evolution of this program" example).
Additionally, The OpenCL Programming Book discusses data parallel and task parallel designs, and shows how OpenCL supports both approaches. And there is some discussion about memory access concerns (including the lack of hardware caching on existing GPUs).
Well written, easy to follow, and useful. It's hard to think of higher praise for a technical book. I would recommend it to anyone learning GPU programming.