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



or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $2.88 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
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.
Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

OpenCL Programming Guide [Paperback]

Aaftab Munshi , Benedict Gaster , Timothy G. Mattson , James Fung , Dan Ginsburg
4.1 out of 5 stars  See all reviews (12 customer reviews)

List Price: $54.99
Price: $39.48 & FREE Shipping. Details
You Save: $15.51 (28%)
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 8 left in stock (more on the way).
Ships from and sold by Amazon.com. Gift-wrap available.
Want it Wednesday, May 22? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Formats

Amazon Price New from Used from
Kindle Edition $25.07  
Paperback $39.48  
Rent Your Textbooks
Save up to 70% when you rent your textbooks on Amazon. Keep your textbook rentals for a semester and rental return shipping is free.

Book Description

July 23, 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

Best Value

Buy CUDA Handbook: A Comprehensive Guide to GPU Programming, The and get OpenCL Programming Guide at an additional 5% off Amazon.com's everyday low price.

CUDA Handbook: A Comprehensive Guide to GPU Programming, The + OpenCL Programming Guide
Buy together today: $80.45

One of these items ships sooner than the other. Show details



Editorial Reviews

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


Product Details

  • Paperback: 648 pages
  • Publisher: Addison-Wesley Professional; 1 edition (July 23, 2011)
  • Language: English
  • ISBN-10: 0321749642
  • ISBN-13: 978-0321749642
  • Product Dimensions: 7 x 1.3 x 8.9 inches
  • Shipping Weight: 2.1 pounds (View shipping rates and policies)
  • Average Customer Review: 4.1 out of 5 stars  See all reviews (12 customer reviews)
  • Amazon Best Sellers Rank: #266,897 in Books (See Top 100 in Books)

More About the Authors

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

4.1 out of 5 stars
(12)
4.1 out of 5 stars
This book covers the OpenCL 1.1 specification in its entirety which is a good thing. Raymond Tay  |  2 reviewers made a similar statement
Well organized, has very good introduction(the most interesting part), has small amount of mistakes. Alexey Mateosyan  |  2 reviewers made a similar statement
If you are the novice in OpenCL, I urgently recommend you to read introduction firstly. SmilingDeveloper  |  3 reviewers made a similar statement
Most Helpful Customer Reviews
15 of 16 people found the following review helpful
4.0 out of 5 stars Mostly a good choice for learning OpenCL August 12, 2011
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.
Comment | 
Was this review helpful to you?
6 of 7 people found the following review helpful
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.
Comment | 
Was this review helpful to you?
1 of 1 people found the following review helpful
5.0 out of 5 stars Great introduction to OpenCL August 30, 2011
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.
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
4.0 out of 5 stars Very good and complete introduction of OpenCL
Review of the kindle verion on Android: This book is a very good and complete introduction of OpenCL. Read more
Published 5 months ago by Teun Schenk
4.0 out of 5 stars Usefull manual
Well organized, has very good introduction(the most interesting part), has small amount of mistakes. Read more
Published 5 months ago by Alexey Mateosyan
1.0 out of 5 stars Disappointing
I don't understand the favourable reviews (which led me into buying this book). The first third of the book is about how cool everyone is and about how cool and how flexible and... Read more
Published 19 months ago by Thomas Denk
5.0 out of 5 stars Excellent book for OpenCL beginners.
For people who know nothing on OpenCL and little on heterogeneous programming, this is a must-have book. Read more
Published 20 months ago by Hongqiang Wang
4.0 out of 5 stars The ultimate guide
First, let me begin by what i feel about the book and then i'll proceed to give a more detailed review. Read more
Published 20 months ago by Raymond Tay
4.0 out of 5 stars Very good OpenCL guide and reference
The OpenCL Programming Guide is the 1st decent book on OpenCL to be published (the actual first book was fairly useless). Read more
Published 20 months ago by K. Landrus
4.0 out of 5 stars Decent introduction to OpenCL
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. Read more
Published 20 months ago by Rahul Garg
4.0 out of 5 stars Useful introduction and reference on OpenCL
This is a useful reference and introduction to programming with OpenCL. It appears to be aimed mainly at experienced programmers, ideally those with some previous exposure to GPGPU... Read more
Published 20 months ago by Paul Russell
5.0 out of 5 stars The definitive OpenCL reference
I was surprised by the quality of this book. First, it is a complete reference to the OpenCL API, the OpenCL C language. Read more
Published 21 months ago by Krys
Search Customer Reviews
Only search this product's reviews


Forums

There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
Topic:
First post:
Prompts for sign-in
 



So You'd Like to...


Create a guide


Look for Similar Items by Category