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)