||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Graphics programming, GPU processors, high performance graphics
Title: GPU Gems 2Editor: Matt Pharr
Verdict: Essential to anyone working with modern GPUs
GPU Gems 2 edited by Matt Pharr is a collection of forty-eight white papers that detail cutting edge techniques based on today's latest graphical processing units (GPU). The full color hardcover text is 784 pages and includes a CD-ROM with working demos and source for some of the articles presented in the book.
The book is divided into six parts: geometric complexity, shading, high-quality rendering, general purpose computation on the GPU, image oriented computing, and numerical algorithms. A part has anywhere from five to twelve chapters. Each chapter is written by a different author but the format and style is consistent. The chapters have an introduction, discussion of the problem or technique, conclusion, and references. The material is presented with color illustrations and occasionally some pseudo-code or code fragments. Generally, the material is extremely current and very approachable to read.
As a sequel to its well received predecessor, the text focuses on taking advantage of the computational power and features of today's high-powered GPU boards. The first part of the book, geometric complexity, emphasizes this with chapters dedicated to batch rendering, using multi-streaming, hardware occlusion, and displacement pixel-shaders. Each chapter illustrates how operations traditionally performed on the CPU can be moved into the GPU for efficiency and greater effect.
The subsequent two parts on shading and rendering continue along the same theme: improved performance by using hardware functionality found on the GPU. Each topic considers the performance ramifications and GPU capabilities when discussing the problem domain of a rendering technique and factors it into the final solution. For example, chapter 10 considers irradiance environment maps for fast lighting - but with a twist - using the GPU to do the calculations in real-time. In doing so, the book's real value becomes apparent.
The fourth part on general purpose GPU computation is an interesting addition to the text. The chapters illustrate methods of offloading traditional CPU tasks by exploiting the inherent parallel nature of modern GPU hardware. Since the book features Nvidia hardware, the architecture and performance capabilities largely focused on their products.
In the fifth part of the book, hardware assisted image creation and analysis is considered. By using context clues from the spatial, texture, or lighting data - additional refinements can be made to a scene prior to rasterization. The topics presented in this part are further refinements of the text's main theme (using the GPU fully) and are specific solutions to uncommon problems - or approaches to rasterization. None the less as GPUs continue to evolve, the topics presented in this section will undoubtedly become more common.
Finally, the sixth part of the book provides several non-traditional graphics examples to illustrate calculating data on the GPU: solving linear equations, options pricing, and numerical simulation - just to name a few. As using the raw floating point power of modern GPU is a growing trend - these sections were quite interesting and well done.
The included CD-ROM contains examples to 28 of the 48 articles in the book. In most cases, the example material includes source code as well as pre-compiled binaries to help illustrate the topic presented in the text. In order to run the majority of the samples, Cg must be installed on the host computer. In addition, the CD-ROM provides access to Nvidia's software development kit, Cg toolkit, performance tools, and several helpful reference links to on-line sites.
GPU Gems 2 provides a cutting edge view of the capabilities found in today's video cards. The selected articles illustrate that every part of the rendering process can be enhanced in some fashion by fully using the underlying hardware. As such, this book is essential to anyone working with modern GPUs.