OpenCL Parallel Programming Development Cookbook
Packt Publishing Ltd, 302p., 2013
@book{tay2013opencl,
title={OpenCL Parallel Programming Development Cookbook},
author={Tay, Raymond},
year={2013},
publisher={Packt Publishing Ltd}
}
Welcome to the OpenCL Parallel Programming Development Cookbook! Whew, that was more than a mouthful. This book was written by a developer, that’s me, and for a developer, hopefully that’s you. This book will look familiar to some and distinct to others. It is a result of my experience with OpenCL, but more importantly in programming heterogeneous computing environments. I wanted to organize the things I’ve learned and share them with you, the reader, and decided upon taking an approach where each problem is categorized into a recipe. These recipes are meant to be concise, but admittedly some are longer than others. The reason for doing that is because the problems I’ve chosen, which manifest as chapters in this book describe how you can apply those techniques to your current or future work. Hopefully it can be a part of the reference, which rests on your desk among others. I certainly hope that understanding the solution to these problems can help you as much as they helped me. This book was written keeping a software developer in mind, who wishes to know not only how to program in parallel but also think in parallel. The latter is in my opinion more important than the former, but neither of them alone solves anything. This book reinforces each concept with code and expands on that as we leverage upon more recipes. This book is structured to ease you gently into OpenCL by getting you to be familiar with the core concepts of OpenCL, and then we’ll take deep dives by applying that newly gained knowledge into the various recipes and general parallel computing problems you’ll encounter in your work. To get the most out of this book, it is highly recommended that you are a software developer or an embedded software developer, and is interested in parallel software development but don’t really know where/how to start. Ideally, you should know some C or C++ (you can pick C up since its relatively simple) and comfortable using a cross-platform build system, for example, CMake in Linux environments. The nice thing about CMake is that it allows you to generate build environments for those of you who are comfortable using Microsoft’s Visual Studio, Apple’s XCode, or some other integrated development environment. I have to admit that the examples in this book used neither of these tools.
September 27, 2013 by hgpu