OpenCL Programming Guide (OpenGL)
£21.00
Written by five leading OpenCL authorities, OpenCL Programming Guide covers the entire specification. It reviews key use cases, shows how OpenCL can express a wide range of parallel algorithms, and offers complete reference material on both the API and OpenCL C programming language.
Through complete case studies and downloadable code examples, the authors show how to write complex parallel programs that decompose workloads across many different devices. They also present all the essentials of OpenCL software performance optimization, including probing and adapting to hardware. Coverage includes
- Understanding OpenCL’s architecture, concepts, terminology, goals, and rationale
- Programming with OpenCL C and the runtime API
- Using buffers, sub-buffers, images, samplers, and events
- Sharing and synchronizing data with OpenGL and Microsoft’s Direct3D
- Simplifying development with the C++ Wrapper API
- Using OpenCL Embedded Profiles to support devices ranging from cellphones to supercomputer nodes
- Case studies dealing with physics simulation; image and signal processing, such as image histograms, edge detection filters, Fast Fourier Transforms, and optical flow; math libraries, such as matrix multiplication and high-performance sparse matrix multiplication; and more
- Source code for this book is available at https://code.google.com/p/opencl-book-samples/
Read more
Additional information
Publisher | Addison-Wesley Professional, 1st edition (7 July 2011) |
---|---|
Language | English |
File size | 14003 KB |
Simultaneous device usage | Up to 5 simultaneous devices, per publisher limits |
Text-to-Speech | Enabled |
Screen Reader | Supported |
Enhanced typesetting | Enabled |
X-Ray | Not Enabled |
Word Wise | Not Enabled |
Sticky notes | On Kindle Scribe |
Print length | 799 pages |
by Chris Varnz
This is one of the best sources of info out there for OpenCL, and is well worth picking up if you intend to do any OpenCL programming. It’s got a few errors and errata but this is to be expected from a first edition, and they’re all pretty obvious to spot and correct. It would get 5 stars if not for these errors.
by Dr Mark Christian
Do not buy the Kindle edition – I did and had to return it for refund the same day. The OCR has failed on the code examples. Characters like * and + and minus get displayed on top of identifiers, for example somthing like “identifier += 7” the + gets printed in the middle of identifer. Yes in theory you can work out the correct order of things – but since the Kindle version is only slightly cheaper than the print this is not acceptable in my view.
I have had this problem a lot with Kindle and particularly maths books.
One day hopefully they will get it right.
Back to print for text books I think.
by Gabor Bernat
great description
by Liad Weinberger
OpenCL Programming Guide is the 2nd book (to my awareness) being published, which deals with the new and exciting standard by the KHRONOS Group: OpenCL. The goal of this book is to provide the reader with an extensive walkthrough of the standard, providing explanations to complement the standard’s specs. The authors of the book dim it “a pragmatic guide for people interested in writing code”, and that it is.
The book is at its first edition, and it shows. Throughout the book there are typos, and what can only be explained as ‘copy & paste’ originated mistakes. Some of the code samples contain generic errors such as memory leaks or incorrect remarks, and some of the figures simply do not convey the intended concept, or are erroneous. The majority of errata I personally reported dealt with these types of errors, which are arguably acceptable (for a first edition) as they are not regarding the focus of the book, however, the book also contains some errata that does touch the actual focus, like an incorrect explanation (e.g. reported issue #14 on pg.132, and reported issue #4 on pg.65), or incorrect usage of returned information (e.g. reported issue #8 on page 88).
On the other hand, the book does provide good insight on a vast portion of the standard. Although it claims to cover the entire spec, the level of this coverage is inconsistent and in some aspects completely lacking (e.g. the explanation of clEnqueueTask() could have been accompanied with a concise example, but in turn ended up as a short sub-section). On the portions with most interest, i.e., OpenCL’s support for data-parallel algorithms, the book does provide extended information, and adds to the OpenCL specs, by clarifying the concepts.
The 2nd part of the book, which was added rather close to the final release of the book (from the eyes of a SafariBooksOnline RoughCuts reader), provides 9 case studies of OpenCL usage. Some of these are purely pedagogic (e.g. chapter 15), but some provide more real-world examples of how OpenCL can be used, and optimized (especially for a GPU). These add another dimension to the book, and contribute to its relevancy.
On a closing note, I do think that the book is worth the while. It is currently the best option besides reading the specs, to learn the OpenCL APIs and OpenCL C programming language, and despite the shortcomings I’ve mentioned, it does manage to provide the gist of OpenCL, and add insight to the standard.
—————————–
Proper disclosure: OpenCL and GPU programming is what I do for a living.
by Redundant Tramp
This book is just a rewrite of the OpenCL specification – wouldn’t really recommend it. Would definitely recommend
Heterogeneous Computing with OpenCL
which is much smaller and better written. Also, this book doesn’t talk about thing such as device fission. It does however provide a good overview of the whole OpenCL ecosystem, and, gives a very good outline of memory, execution etc. Useful if you dont have the ability to print the specification.