Free Downloads
OpenCL Programming Guide

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/

Paperback: 648 pages

Publisher: Addison-Wesley Professional; 1 edition (July 23, 2011)

Language: English

ISBN-10: 0321749642

ISBN-13: 978-0321749642

Product Dimensions: 6.7 x 1.4 x 9 inches

Shipping Weight: 2.1 pounds (View shipping rates and policies)

Average Customer Review: 4.1 out of 5 stars  See all reviews (15 customer reviews)

Best Sellers Rank: #313,098 in Books (See Top 100 in Books) #27 in Books > Computers & Technology > Programming > Parallel Programming #121 in Books > Computers & Technology > Digital Audio, Video & Photography > Video Production #1183 in Books > Textbooks > Computer Science > Programming Languages

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 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.

Programming #8:C Programming Success in a Day & Android Programming In a Day! (C Programming, C++programming, C++ programming language, Android , Android Programming, Android Games) Programming #57: C++ Programming Professional Made Easy & Android Programming in a Day (C++ Programming, C++ Language, C++for beginners, C++, Programming ... Programming, Android, C, C Programming) OpenCL Programming Guide Programming #45: Python Programming Professional Made Easy & Android Programming In a Day! (Python Programming, Python Language, Python for beginners, ... Programming Languages, Android Programming) C#: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of C# programming (C#, C# Programming, C++ Programming, C++, C, C Programming, C# Language, C# Guide, C# Coding) Android: Programming in a Day! The Power Guide for Beginners In Android App Programming (Android, Android Programming, App Development, Android App Development, ... App Programming, Rails, Ruby Programming) DOS: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of DOS programming (DOS, ADA, Programming, DOS Programming, ADA ... LINUX, RPG, ADA Programming, Android, JAVA) ASP.NET: Programming success in a day: Beginners guide to fast, easy and efficient learning of ASP.NET programming (ASP.NET, ASP.NET Programming, ASP.NET ... ADA, Web Programming, Programming) FORTRAN Programming success in a day:Beginners guide to fast, easy and efficient learning of FORTRAN programming (Fortran, Css, C++, C, C programming, ... Programming, MYSQL, SQL Programming) Prolog Programming; Success in a Day: Beginners Guide to Fast, Easy and Efficient Learning of Prolog Programming (Prolog, Prolog Programming, Prolog Logic, ... Programming, Programming Code, Java) Parallel Programming: Success in a Day: Beginners' Guide to Fast, Easy, and Efficient Learning of Parallel Programming (Parallel Programming, Programming, ... C++ Programming, Multiprocessor, MPI) Programming: Computer Programming for Beginners: Learn the Basics of Java, SQL & C++ - 3. Edition (Coding, C Programming, Java Programming, SQL Programming, JavaScript, Python, PHP) Raspberry Pi 2: Raspberry Pi 2 Programming Made Easy (Raspberry Pi, Android Programming, Programming, Linux, Unix, C Programming, C+ Programming) R Programming: Learn R Programming In A DAY! - The Ultimate Crash Course to Learning the Basics of R Programming Language In No Time (R, R Programming, ... Course, R Programming Development Book 1) XML Programming Success in a Day: Beginner's Guide to Fast, Easy, and Efficient Learning of XML Programming (XML, XML Programming, Programming, XML Guide, ... XSL, DTD's, Schemas, HTML5, JavaScript) Programming Raspberry Pi 3: Getting Started With Python (Programming Raspberry Pi 3, Raspberry Pi 3 User Guide, Python Programming, Raspberry Pi 3 with Python Programming) VBScript: Programming Success in a Day: Beginner's Guide to Fast, Easy and Efficient Learning of VBScript Programming (VBScript, ADA, ASP.NET, C#, ADA ... ASP.NET Programming, Programming, C++, C) MYSQL Programming Professional Made Easy 2nd Edition: Expert MYSQL Programming Language Success in a Day for any Computer User! (MYSQL, Android programming, ... JavaScript, Programming, Computer Software) Apps: Mobile App Trends in 2015 (iOS, Xcode Programming, App Development, iOS App Development, App Programming, Swift, Without Coding) ((Android, Android ... App Programming, Rails, Ruby Programming)) Raspberry Pi 3: Get Started With Raspberry Pi 3 - A Simple Guide To Understanding And Programming Raspberry Pi 3 (Raspberry Pi 3 User Guide, Python Programming, Mathematica Programming)