OpenCL Programming Guide (OpenGL) and over 2 million other books are available for Amazon Kindle . Learn more

Buy New

or
Sign in to turn on 1-Click ordering.
Buy Used
Used - Good See details
Price: £19.52

or
 
   
Trade in Yours
For a £4.58 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Colour:
Image not available

 
Start reading OpenCL Programming Guide (OpenGL) on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

OpenCL Programming Guide (OpenGL) [Paperback]

Aaftab Munshi , Benedict Gaster , Timothy G. Mattson , James Fung , Dan Ginsburg
3.7 out of 5 stars  See all reviews (3 customer reviews)
Price: £34.99 & FREE Delivery in the UK. Details
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 5 left in stock (more on the way).
Dispatched from and sold by Amazon. Gift-wrap available.
Want it tomorrow, 2 Nov.? Choose Express delivery at checkout. Details

Formats

Amazon Price New from Used from
Kindle Edition £17.79  
Paperback £34.99  
Trade In this Item for up to £4.58
Trade in OpenCL Programming Guide (OpenGL) for an Amazon Gift Card of up to £4.58, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Learn more

Book Description

13 July 2011 0321749642 978-0321749642 1
Using the new OpenCL (Open Computing Language) standard, you can write applications that access all available programming resources: CPUs, GPUs, and other processors such as DSPs and the Cell/B.E. processor. Already implemented by Apple, AMD, Intel, IBM, NVIDIA, and other leaders, OpenCL has outstanding potential for PCs, servers, handheld/embedded devices, high performance computing, and even cloud systems. This is the first comprehensive, authoritative, and practical guide to OpenCL 1.1 specifically for working developers and software architects.

 

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/

Frequently Bought Together

OpenCL Programming Guide (OpenGL) + OpenCL in Action: How to accelerate graphics and computation + Heterogeneous Computing with OpenCL: Revised OpenCL 1.2 Edition
Price For All Three: £112.60

Buy the selected items together


Product details

  • Paperback: 648 pages
  • Publisher: Addison Wesley; 1 edition (13 July 2011)
  • Language: English
  • ISBN-10: 0321749642
  • ISBN-13: 978-0321749642
  • Product Dimensions: 17.9 x 3.2 x 23.1 cm
  • Average Customer Review: 3.7 out of 5 stars  See all reviews (3 customer reviews)
  • Amazon Bestsellers Rank: 599,442 in Books (See Top 100 in Books)
  • See Complete Table of Contents

More About the Authors

Discover books, learn about writers, and more.

Product Description

Review

“Welcome to the new world of heterogeneous parallel programming with this authoritative and accessible guide to the complete OpenCL Programming Model.”

–Professor Pat Hanrahan, Stanford University

About the Author

Aaftab Munshi is the spec editor for the OpenGL ES 1.1, OpenGL ES 2.0, and OpenCL specifications and coauthor of the book OpenGL ES 2.0 Programming Guide (with Dan Ginsburg and Dave Shreiner, published by Addison-Wesley, 2008). He currently works at Apple.

 

Benedict R. Gaster is a software architect working on programming models for next-generation heterogeneous processors, in particular looking at high-level abstractions for parallel programming on the emerging class of processors that contain both CPUs and accelerators such as GPUs. Benedict has contributed extensively to the OpenCL’s design and has represented AMD at the Khronos Group open standard consortium. Benedict has a Ph.D. in computer science for his work on type systems for extensible records and variants. He has been working at AMD since 2008.

 

Timothy G. Mattson is an old-fashioned parallel programmer, having started in the mid-eighties with the Caltech Cosmic Cube and continuing to the present. Along the way, he has worked with most classes of parallel computers (vector supercomputers, SMP, VLIW, NUMA, MPP, clusters, and many-core processors). Tim has published extensively, including the books Patterns for Parallel Programming (with Beverly Sanders and Berna Massingill, published by Addison-Wesley, 2004) and An Introduction to Concurrency in Programming Languages (with Matthew J. Sottile and Craig E. Rasmussen, published by CRC Press, 2009). Tim has a Ph.D. in chemistry for his work on molecular scattering theory. He has been working at Intel since 1993.

 

James Fung has been developing computer vision on the GPU as it progressed from graphics to general-purpose computation. James has a Ph.D. in electrical and computer engineering from the University of Toronto and numerous IEEE and ACM publications in the areas of parallel GPU Computer Vision and Mediated Reality. He is currently a Developer Technology Engineer at NVIDIA, where he examines computer vision and image processing on graphics hardware.

 

Dan Ginsburg currently works at Children’s Hospital Boston as a Principal Software Architect in the Fetal-Neonatal Neuroimaging and Development Science Center, where he uses OpenCL for accelerating neuroimaging algorithms. Previously, he worked for Still River Systems developing GPU-accelerated image registration software for the Monarch 250 proton beam radiotherapy system. Dan was also Senior Member of Technical Staff at AMD, where he worked for over eight years in a variety of roles, including developing OpenGL drivers, creating desktop and hand-held 3D demos, and leading the development of handheld GPU developer tools. Dan holds a B.S. in computer science from Worcester Polytechnic Institute and an M.B.A. from Bentley University.


Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index
Search inside this book:

What Other Items Do Customers Buy After Viewing This Item?


Customer Reviews

5 star
0
2 star
0
1 star
0
3.7 out of 5 stars
3.7 out of 5 stars
Most Helpful Customer Reviews
3 of 3 people found the following review helpful
4.0 out of 5 stars Mostly a good choice for learning OpenCL 12 Aug 2011
Format:Paperback
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.
Read more ›
Comment | 
Was this review helpful to you?
4.0 out of 5 stars Great tutorial and reference 8 Nov 2011
Format:Paperback
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.
Comment | 
Was this review helpful to you?
0 of 1 people found the following review helpful
3.0 out of 5 stars Rewrite of the docs 14 Jan 2012
Format:Paperback
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.
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on Amazon.com (beta)
Amazon.com: 4.2 out of 5 stars  13 reviews
19 of 20 people found the following review helpful
4.0 out of 5 stars Mostly a good choice for learning OpenCL 12 Aug 2011
By Liad Weinberger - Published on Amazon.com
Format:Kindle Edition
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.
8 of 9 people found the following review helpful
5.0 out of 5 stars This is a really good book. I will definitely buy the next edition! 3 Oct 2011
By SmilingDeveloper - Published on Amazon.com
Format:Paperback
The heavy book with the thin green cover is a "must read" book for beginning OpenCL developers. Experienced OpenCL developers could find some chapters interesting too. The book can be used both as day to day reference book and as a manual.

The detailed introduction (chapter 1) enables the reader to understand the essentially important thing - the design of the technology (OpenCL standard v.1.1). It is considered in the book from 4 sides which are reviewed in the connection with each other: platform, execution, memory and programming models. If you are the novice in OpenCL, I urgently recommend you to read introduction firstly.

The narration continues with the "Hello World" example (chapter 2). It is big enough and divided into several subsections. Each of them we can consider as simple steps to create a real OpenCL application. I like it. After 1st an 2nd chapters, I guess, it is hard enough to NOT understand how to write your own OpenCL software. Sure, in this case you need to use some reference book (or the text of OpenCL standard), but from this point you are able to do it without a special assistance.

The next several chapters represent the mentioned by me so called "reference book". In particular, chapter 3 gives a detailed account of OpenCL platform, devices and context; chapters 4 ad 5 represent in detail OpenCL C programming language (operators, types, keywords and other things which you could find in any other programming language); chapters 6, 7, 8 and 9 describe in detail remained components of the technology: kernels, memory objects, images, events and so on. Well, I've concluded that chapters from 3 to 9 could be use as a real day to day reference book. For me it is quite useful.

To tell you the truth, the chapters 10 and 11 and 13 I've skipped, because interoperability with D3D and OpenGL, and embedded development with OpenCL are not interesting for me, but for somebody it could be useful too. The chapter 12 concerns the details of the C++ wrapper API: all staff in cl.hpp header file are briefly but well described.

The second and most interesting for experienced developers part of the book describes real cases of OpenCL using. Here 9 OpenCL-implementations of the specific algorithms are well described. It looks like all of them have been taken from the real author's software. Good. Some of the algorithms are illustrated with explicative figures. I think this part of the book with case studies could be a separated book. I just want to noted that I would glad to see more case studies, especially with vectors and matrices operations.

In addition, I want to mention chapter 20 "Using OpenCL with PyOpenCL". In recent times adopting of python in high performance applications is more and more wide. There are many techniques to improve the performance of python applications, but using GPGPU in intensive computing parts of application could become real help for python developers.

Also, it could be interesting to add chapter concerning using WebCL. Sure, nowadays WebCL is not so widely used, but the next year (2012) promises to be an year of WebCL. I hope.

To sum up, what I like in this book: organization of material, good introduction in OpenCL, detailed "Hello, world" chapter, appropriate case studies, detailed "reference book" part, print quality. Dislike: too soft cover, the lack of WebCL chapter, the number of case studies could be bigger.
2 of 2 people found the following review helpful
5.0 out of 5 stars Great introduction to OpenCL 30 Aug 2011
By itsMikeLee - Published on Amazon.com
Format:Paperback
Prior to this book I have never heard of OpenCL. I've heard of OpenGL used for graphics, but had never imagined that such a push to use similar parallel-programming techniques in graphics existed for applications outside of the realm of graphics.

From the beginning in chapter 1, the book does a great job introducing the history of how OpenCL came about and it's significance it'll play as the world of computers turns to parallel systems. They get you up to speed on the various terms and techniques used in OpenCL.

It was helpful that as you read into chapter 2 (the hello world example), they go through the process of getting your development set up. It was refreshing to read a programming book that didn't choose to only go through one OS setup but detail Windows, Mac OSX, and Linux. Many programming books that I've read in the past only chose to pick one, at most two platforms and most of the time very spotty in the way they described their setup for the development environment. Which led me to do many searches on Google before diving into the meat of the book, which is the programming.

The quality of the book is definitely written in a form of a reference book. It provides various examples on parallel programming. I could see this book serving as a textbook in a upper level computer science special topics course. As an undergraduate student myself in computer science I found the topic of OpenCL very intriguing but the book a bit tough to follow past the first few chapters.
3 of 4 people found the following review helpful
5.0 out of 5 stars Excellent book for OpenCL beginners. 19 Sep 2011
By pandragon - Published on Amazon.com
Format:Paperback
For people who know nothing on OpenCL and little on heterogeneous programming, this is a must-have book. The books cover a lot of OpenCL stuffs, including basic concepts, API calls, and programming in OpenCL C language. And in the second part of the book, a few application using the OpenCL programming platform are presented, in which OpenCL optimization skills are discussed and we can see as a new standard OpenCL could be very promising in future. This book assumes the readers have C/C++ programming experience and does a great job on introducing OpenCL to these audience.

Aside from the excellent introduction and programming guidance, as a beginning to intermediate programmer using OpenCL, I wish the book can have more material on the following few aspects:

1. The book does not cover too many optimization techniques. The book is to teach you how to use OpenCL but not how to optimize the code. This is understandable because OpenCL is a technology still in its infant stage. But adding those could definitely improve people's interest in OpenCL and meet needs of those more advanced readers.

2. Debug technique. Debugging a kernel in OpenCL can be a huge pain! You cannot step into the kernel to trace it. I wish to read more debug techniques.

3. The code samples are downloaded using CVS and it seems like there are problems when using them. It also lacks of detailed readme files.

4. OpenCL platform/hardware comparison, say nVidia:AMD:Intel:QUALCOMM on OpenCL.

5. More use case studies on mobile platforms.

6. Future of OpenCL. As a new technology/standard, what challenges it is facing and where it is heading to.

This book is probably the first complete OpenCL programming guide book. And I highly recommend it.
3 of 4 people found the following review helpful
4.0 out of 5 stars Decent introduction to OpenCL 1 Sep 2011
By Rahul Garg - Published on Amazon.com
Format:Paperback
The book covers an introduction to OpenCL, chapters introducing the various API calls in detail and finally many case studies.
The introductory chapters are well written. The book is authoritative and has no bias towards any particular hardware or vendor. Instead, it focuses only on precisely describing OpenCL standard. The book makes clear which parts of the API are mandatory for a conforming implementation and which are optional and stays clear of proprietary extensions.

The case studies cover many different kernels including matrix multiplication, graph computations and sparse matrix computations. The case studies are very helpful in learning to think in OpenCL. In contrast to the book, many introductory tutorials available online stop at matrix multiplication which make it difficult for the learner to apply the skills in other problems. Thus the fact that the book tackles interesting case studies is particularly welcome.

One major negative of the book is that it contains many many pages of API documentation listing. Much of this can be found in the online documentation available from Khronos. Secondly, you will need to complement this book with documentation from the vendors as this book will not teach you a lot of optimization tricks necessary to fully utilize the power of OpenCL. This is partly intentional as the book tries to stay vendor neutral. Also, there are some errors and typos in the book. Many of these can be found at the book's website so the reader is definitely advised to check out the book website.

Overall I will rate this book as "good-to-have" rather than a "must-have". It does a good job of introducing the reader to OpenCL, but is not enough by itself.
Were these reviews helpful?   Let us know
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   


Look for similar items by category


Feedback