GPGPU Programming for Games and Science

David H. Eberly

August 15, 2014 by A K Peters/CRC Press
Reference - 469 Pages - 54 B/W Illustrations
ISBN 9781466595354 - CAT# K20720

was $89.95

USD$71.96

SAVE ~$17.99

Add to Wish List
SAVE 25%
When you buy 2 or more print books!
See final price in shopping cart.
FREE Standard Shipping!

Features

  • Presents SIMD extensions to the CPU as well as a large collection of approximations for standard mathematics functions
  • Provides examples of how to draw using a combination of vertex, geometry, and pixel shaders and how to execute a compute shader
  • Shows you how to copy data between CPU and GPU and offers guidance on parallelizing data transfer
  • Explains how to work with multiple GPUs regarding D3D11 adapter enumeration and device creation
  • Discusses IEEE floating-point support on a GPU, which is especially important for writing compute shaders that require knowledge of how subnormal floating-point numbers are handled
  • Helps you understand coordinate systems and how to convert among them
  • Illustrates how to use the Geometric Tools Engine and the resource types in D3D11, with the source code available on a supporting website

Summary

An In-Depth, Practical Guide to GPGPU Programming Using Direct3D 11

GPGPU Programming for Games and Science demonstrates how to achieve the following requirements to tackle practical problems in computer science and software engineering:

  • Robustness
  • Accuracy
  • Speed
  • Quality source code that is easily maintained, reusable, and readable

The book primarily addresses programming on a graphics processing unit (GPU) while covering some material also relevant to programming on a central processing unit (CPU). It discusses many concepts of general purpose GPU (GPGPU) programming and presents practical examples in game programming and scientific programming.

The author first describes numerical issues that arise when computing with floating-point arithmetic, including making trade-offs among robustness, accuracy, and speed. He then shows how single instruction multiple data (SIMD) extensions work on CPUs since GPUs also use SIMD.

The core of the book focuses on the GPU from the perspective of Direct3D 11 (D3D11) and the High Level Shading Language (HLSL). This chapter covers drawing 3D objects; vertex, geometry, pixel, and compute shaders; input and output resources for shaders; copying data between CPU and GPU; configuring two or more GPUs to act as one; and IEEE floating-point support on a GPU.

The book goes on to explore practical matters of programming a GPU, including code sharing among applications and performing basic tasks on the GPU. Focusing on mathematics, it next discusses vector and matrix algebra, rotations and quaternions, and coordinate systems. The final chapter gives several sample GPGPU applications on relatively advanced topics.

Web Resource
Available on a supporting website, the author’s fully featured Geometric Tools Engine for computing and graphics saves you from having to write a large amount of infrastructure code necessary for even the simplest of applications involving shader programming. The engine provides robust and accurate source code with SIMD when appropriate and GPU versions of algorithms when possible.