GPGPU Programming for Games and Science: 1st Edition (Hardback) book cover

GPGPU Programming for Games and Science

1st Edition

By David H. Eberly

A K Peters/CRC Press

469 pages | 54 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781466595354
pub: 2014-08-15
SAVE ~$19.59
$97.95
$78.36
x
eBook (VitalSource) : 9780429168666
pub: 2014-08-15
from $46.98


FREE Standard Shipping!

Description

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.

Table of Contents

Introduction

CPU Computing

Numerical Computing

Balancing Robustness, Accuracy, and Speed

IEEE Floating Point Standard

Binary Scientific Notation

Floating-Point Arithmetic

SIMD Computing

Intel Streaming SIMD Extensions

SIMD Wrappers

Function Approximations

GPU Computing

Drawing a 3D Object

High Level Shading Language (HLSL)

Devices, Contexts, and Swap Chains

Resources

States

Shaders

Copying Data between CPU and GPU

Multiple GPUs

IEEE Floating-Point on the GPU

Practical Matters

Engine Design and Architecture

Debugging

Performance

Code Testing

Linear and Affine Algebra

Vectors

Matrices

Rotations

Coordinate Systems

Sample Applications

Video Streams

Root Finding

Least Squares Fitting

Partial Sums

All-Pairs Triangle Intersection

Shortest Path in a Weighted Graph

Convolution

Median Filtering

Level Surface Extraction

Mass-Spring Systems

Fluid Dynamics

Bibliography

Subject Categories

BISAC Subject Codes/Headings:
COM000000
COMPUTERS / General
COM012000
COMPUTERS / Computer Graphics
COM012040
COMPUTERS / Programming / Games