OpenCL in Action: How to Accelerate Graphics and Computations
R**K
Bleading Edge Graphics Computing at the tip of your brain's comprehension or the GPGPU revolution revealed
Manning's "OpenCL in Action" is just what the doctor ordered, if he is a doctor of Astrophysics, Mathematics or a graphics computing specialist, possibly even you. Do you harbor the desire to acquire StarTrek's ship computer for your personal use? Perhaps you could be delighted to discover that your GPU card has a secret identity as a supercomputer? If so, this book will open up the world of graphics super computing ( GPGPU ) to you for only a small fee and a few dozen hours of study. Be forewarned though, this is not a journey for the timid or the unprepared. Matthew Scarpino delves into a comprehensive introduction to the world of OpenCL computing that will challenge your comprehension and energy to gain a wide understanding of how to couple various standard computing languages and commercial computing platforms into opening up the mysterious ability hidden your computer's GPU that can amplify the power of your computer over 100 to 1.It is rare that a revolution in any field will happen in most people's career. Most developments are incremental and well understood before they are widely accepted. I have watched the field of personal computing evolve for thirty years in a slow and methodical way. Computing advances have followed More's law of increasing complexity in the number of transistors on a die for just as long. Computing speed has been tied directly to this, until now. But with the ability to run parallel computing on a GPU using hundreds of processors, the ability to achieve an astounding leap for personal computers has arived overnight.This book is one of the first to explore this fascinating and rapidly expanding area of programming. The author gives a comprehensive introduction to OpenCL and source code is available for download from his site( [...] ) or from Manning's site. C++, Python, and Java language approaches are all covered. The book is an introduction though, there is far too much material to cover to hold the reader's hand for every step. You will have to try things out and experiment with your own programs to master this programming area. The book will get you close enough for your imagination to complete the journery.There are three parts to the book. Part one is the largest having ten chapters. It introduces OpenCL's fundamental data types and structures. Then it introduces kernel operations and image processing. I advise you to think of these features abstractly to derive the most from the text. Diagrams and code snippits abound in order to make the training more digestable. Each chapter follows the well known teaching process of: Tell them what you're going to teach them; Then teach them; then summerize what you just taught them. This part ends with superficial training in three different computer languages.Part two delves deeper into the use of matrices and sorting which are the power centers of parallel computing. Here is some of the best advice the book has to give on how to get the GPU to perform well for you. Finally, the use of the Fast Fourier Transform is introduced as a tool that can be used to identify patterns of energy in a matrix or find hidden signals in a message. Engineers will be especially interested in this chapter.Part three is a short one chapter section detailing how to use OpenCL with OpenGL. This section focuses on the primary use of the GPU which is to apply this long introduction to GPGPU computing to delivering processed images to the video monitor. I know that Linux programmers have been wishing for something like this in Linux programming books for a decade. Your ship has finally come in.A block of appendices ends the book with a number of topics mostly surrounding the use of OpenGL and GLUT. This may not be the happiest place for Windows programmers, but since Microsoft is moving Windows into the mobile computing world at a fast pace, this information may be of surprisingly good value for phone and tablet users.I found a lot to think about reading this book. It opened up areas that I didn't even know were associated with my computing needs and I'm now shopping for GPUs with a much greater computing power than I have in the past. I want to use this new ability of my desktop to try out computing goals that I could only dream about before. And I want to design a program to do field testing of automobiles on a tablet.One last word of warning, looking through the specs of these high performance computing cards shows that each one can draw from 200 W on idle to almost 600 W when fully operating. There are motherboards that have three or four PCIe slots for GPUs. This is why a motherboard with a fast CPU and 12GB of memory can reliably run off a 250 W power supply. Plug in two GPUs and you won't get a game to finish unless that power supply can source over 1200 W!! To quote one move "I think I need a bigger box".
M**S
Excellent coverage of OpenCL
Really found this book indispensable. OpenCL is a pretty advanced topic, and takes diligence and patience to learn. But "OpenCL in Action" has been a terrific guide. The book was so thorough, it even covered a number of related algorithms such as sparse matrices - interesting reading and examples. The only issues are that the OpenCL spec is still being modified, so keep OpenCL specs 1.1 and 2.0 handy (in high tech, we are all used to this), and a few of the book's demo's needs additional downloads to run, but most ran right away.Overall, the book is well-written, at a nice pace, interesting, and quite beneficial.
E**R
Excellent book to start learning OpenCL
It summarizes in a very clear way the fundamentals and more advanced topics of OpenCL.The example codes are in general very clear and easy to compile and execute under Visual Studio 2010, but some codes need corrections in order to be able to use them.It is a must if one wants to start learning OpenCL.
J**A
Good book
Good book. The book teach you how to program in OpenCL. The good thing is that it is not necessary have so much experience programming with this kind of technology.
D**T
Great jump start
Great to start with.This book was enough for me to start OpenCL development. I did cross OpenCL/cuda sometime ago and this book was great jump start. After reading book you just need OpenCL Reference Card (google it) to work.
A**A
OpenCL begins here!
If you are a newbie in OpenCL and want to explore this wonderful parallel world, this is the way!C programming knowledge and this book is all you need.There is no other book better explained out there. This book will bring you all the basics, and after this you can continue with more advanced books.
A**R
Four Stars
Very informative in my learning process, converting from C to OpenCL. A worth while read.
M**F
Looks useful
Looks like it will be useful once I get started with a compatible C++ compiler.
A**R
Its not perfect but it is a good starting text for a ...
The book has become a little dated, and would benefit from a second edition. The text is clear and well written and the examples given are pure gold. The examples in the text have OpenCL code that you can download and try which is how all computer language books should be written. Its not perfect but it is a good starting text for a beginner, but wont be of much use to an experienced openCL programmer.
J**A
Das beste Buch über OpenCL 1.x
Für mich persönlich ist dieses das beste Buch, um OpenCL zu lernen. Es ist eine hervorragende Einführung in OpenCL 1.1.Das Besondere an diesem Buch ist, das der Autor versucht, die Programme wirklich zu erklären. Man erfährt die Gründe für seine Design-Entscheidungen. Das Lernen von OpenCL ist keine so einfache Sache. Bevor man zum Programmieren kommt, muss man schon eine Menge Infrastruktur beherrschen. Meiner Meinung nach löst Matthew Scarpino dieses Problem hervorragend.Die Beispielprogramme hingegen sind aus verschiedenen Themenbereichen, gut kommentiert und teilweise sehr mathematisch. Das störte mich aber nicht, denn OpenCL wird auch oft im Embedded Bereich eingesetzt, der oftmals sehr mathematisch ist, wie z. B. die Signal- oder die Bildverarbeitung.Das Buch hat inzwischen allerdings schon ein paar Jahre auf dem Buckel. Die Performancetipps müssten inzwischen wohl auf den Prüfstand. Und auch das Kapitel über die Schnittstellen zu anderen Programmiersprachen, Aparapi, JavaCL, PyOpenCL sind wahrscheinlich etwas veraltet.Aber das Buch enthält so viel Wissen über OpenCL 1.1, so dass es auch heute noch (Februar 2015) *DAS* Buch zum Einstieg in OpenCL ist.P.S. Ich habe als technischer Editor an diesem Buch mitgearbeitet (siehe S. xvii).
O**W
Gute Einführung
Der Autor nimmt sich Zeit, die Grundlagen wirklich gut zu vermitteln.Die Codebeispiele sind gut gewählt, die Erklärungen werden oft durch Skizzen ergänzt.Part 1 erklärt alles wesentliche, danach war ich in der Lage, mit OpenCL einen Bildverarbeitungsalgorithmus auf die GPU zu portieren (und ja, die Laufzeit verbesserte sich tatsächlich ggü. der CPU Version).Part 2 zeigt ein paar Algorithmen, welche mit OpenCL implementiert sind.Part 3 wiederum zeigt die Verbindung von OpenGL und OpenCL, um z.B. mit OpenCL auf vertex buffers und Texturen zugreifen zu können.Hier und da sind ein paar kleine Fehler im Buch (z.B. falsch dereferenzierte Pointer).Nett wäre noch gewesen, die abstrakte Implementierung von OpenCL anhand einer tatsächlichen Implementierung einer GPU zu erklären. Erst das Studium des AMD OpenCL Programming Guide hat mir geholfen zu verstehen, wieso gewisse Dinge so sind wie sie sind (warum braucht es work groups, warum ist lokaler Speicher nur innerhalb von work groups referenzierbar, wie ist die parallele Abarbeitung nun tatsächlich implementiert innerhalb einer work unit, wie unterscheiden sich buffer und images, ...).Mein Tipp für OpenCL Interessierte: dieses Buch besorgen, Part 1 durcharbeiten, selbst ein paar OpenCL Beispiele programmieren, AMD OpenCL Programming Guide lesen, ggf. noch das Buch Heterogeneous Computing with OpenCL durcharbeiten.
A**O
Ottimo libro di approfondimento
Ottimo libro non di introduzione, ma di approfondimento. Personalmente ho particolarmente apprezzato la parte relativa alla gestione dei work Group e degli eventi nei kernel
C**N
Muy buen libro
Llegó en el tiempo estimado y está cumpliendo con mis expectativas de contenido para el trabajo que estoy realizando :).
Trustpilot
4 days ago
5 days ago