GPGPU Programming for Games and Science 1st Edition by David H. Eberly (PDF)

6

 

Ebook Info

  • Published: 2014
  • Number of pages: 469 pages
  • Format: PDF
  • File Size: 4.35 MB
  • Authors: David H. Eberly

Description

An In-Depth, Practical Guide to GPGPU Programming Using Direct3D 11GPGPU Programming for Games and Science demonstrates how to achieve the following requirements to tackle practical problems in computer science and software engineering:RobustnessAccuracySpeedQuality source code that is easily maintained, reusable, and readableThe 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 ResourceAvailable 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.

User’s Reviews

Editorial Reviews: About the Author David H. Eberly

Reviews from Amazon users which were colected at the time this book was published on the website:

⭐If you’re familiar with the writing of David Eberly, you’ll come to this book knowing what to expect: exacting (sometimes tedious), low-level, mathematical explanations of the subject. Unfortunately, while the topics actually covered by this book are well-suited to this writing style, the book as a whole underwhelms. The reasons for this will become obvious as we go through the book chapter-by-chapter below.Chapter 1 is a brief overview of the subject matter.Chapter 2 deals primarily with finite binary encodings of the reals, with emphasis on the IEEE 754 floating-point standard. Much of this material could have been pared down or omitted. Even “Numerical Recipes in C”, a book entirely about numerical methods, spends only a few pages on such low-level technicalities.Chapter 3 is a discussion of SIMD computing. It covers some useful techniques for avoiding branching, and places a heavy emphasis on polynomial approximations of common arithmetic and trigonometric functions. Eberly takes a principled approach using the Chebyshev equioscillation theorem (in particular, the Remez algorithm for computing minimax approximations). The second half of the chapter is somewhat redundant due to the presence of intrinsics in HLSL for all of the described functions.Chapter 4 is the first practical chapter in the book. It introduces the 3D graphics pipeline, with a brief discussion of coordinate spaces, projection, and rasterization. A few trivial shaders are decompiled and analyzed, but this chapter is mostly a laundry list of the steps required to do useful work with Direct X 11. Everything you would expect to see is here: devices, contexts, swap chains, buffers, textures, states, shaders, and techniques for copying from CPU to GPU and vice-versa. A few, mostly trivial, examples are scattered throughout, but very little of this material is motivated.We’re now halfway through the book, page-wise, and we haven’t seen any practical compute shaders yet. A bit curious for a book with “GPGPU” in the title.Chapter 5 is a grab-bag of OOD, debugging, performance, and testing advice. There are a few useful tidbits here.Chapter 6 is yet another 90-page chapter with hardly any content relevant to GPGPU. We get coverage of the geometric and algebraic properties of vectors, matrices, and rotations, and a quite thorough discussion of coordinate space conventions, but it’s hard to see how any of this relates to work one might be interested in doing on the GPU that isn’t directly related to 3D rendering.Chapter 7 redeems the book somewhat. It contains a survey of GPGPU implementations of various problems in collision detection, physical system simulation, image processing, and level set extraction. These are all well-illustrated and lucidly explained.So, now for the verdict.I can’t imagine an audience that will find this book indispensible. Chapters 2, 3, 5, and 6 could be condensed to about 20 pages total while retaining most of their value. The content of Chapter 4 is better covered in a book expressly on DX11 and HLSL, such as Varcholik’s. The actual GPGPU examples are worth studying on their own, but comprise so little of the book’s contents. The GPU Gems and GPU Pro series have roughly the same proportion of GPGPU content in each volume, and the techniques are generally self-contained and lavishly illustrated.A final note: Eberly’s codebase (GTEngine) is currently implemented only in DirectX, and thus is of limited utility to non-Windows users. By the time it is ported to OpenGL and GLSL, it will probably have undergone architectural shifts (as did every version of Eberly’s Wild Magic / Geometric Tools codebase when he was writing his 3DGEA and 3DGED texts). Nevertheless, it does make for interesting reading.

⭐This is a great book. David Eberly is an amazing technical writer and great programmer as well. This book shows the elegance of previous book. I like the second chapter, called CPU Computing. I love understanding at the level he talks about. Then, the Single Instruction Multiple Data (SIMD) that shows how SIMD works (that’s why the previous chapter is needed, to place things into perspective) it is really cool and something I had not seen before. Chapter 4 talks about the GPU. This is an important chapter. Later, he adds great tips in chapter 5 for Practical Matters. Great Chapters 6, in particular section 6.3 (Rotations). Chapter 7 provides some great samples to get yourself working — I know a few bad reviews about this book may make you wonder. One of the reviews talks about the digital copy DRM issues… the other one doesn’t like because it saids only a 1/4 of the book is about GPU. Eberly’s books are always complete and with details that you cannot get in most other books (There will be books about GPGPU, but not like this one. I do have all of his books. Thank you David for such an amazing job! It is funny that people complaint.

⭐The book gives a nice overview of numerical programming issues but offers little more than that in the way of programming, as other reviewers point out. My main complaint is the stupid access restrictions placed on this book by CRC Press and Amazon, by acquiescence. So, I can look at the book on my Android tablet, but not on my Android phone. I can look at the book using Kindle for PC but not in Kindle Cloud reader on that same PC. Kindle for PC is the worst platform for Kindle, and I was never able to download this book to it, at all. I called Amazon support, had an English speaker agree with me that these access restrictions are stupid, then was directed to a non-speaker of English in Amazon Kindle support. Needless to say, no help was forthcoming. Either improve Kindle for PC to be a decent piece of software, or allow people to read all books in Amazon cloud reader, which is a nice platform, and remove silly and arbitrary access restrictions.

Keywords

Free Download GPGPU Programming for Games and Science 1st Edition in PDF format
GPGPU Programming for Games and Science 1st Edition PDF Free Download
Download GPGPU Programming for Games and Science 1st Edition 2014 PDF Free
GPGPU Programming for Games and Science 1st Edition 2014 PDF Free Download
Download GPGPU Programming for Games and Science 1st Edition PDF
Free Download Ebook GPGPU Programming for Games and Science 1st Edition

Previous articleMATHEMATICAL FOUNDATIONS OF COMPUTER SCIENCE by Shahnaz Bathul (PDF)
Next articleThe Mathematics of Inheritance Systems (Research Notes in Artificial Intelligence) by David S. Touretzky (PDF)