GPGPU programming for games and science/ (Record no. 4036)
[ view plain ]
000 -LEADER | |
---|---|
fixed length control field | 10145cam a2200205 i 4500 |
020 ## - INTERNATIONAL STANDARD BOOK NUMBER | |
International Standard Book Number | 9781466595354 (hardback) |
040 ## - CATALOGING SOURCE | |
Transcribing agency | CUS |
082 00 - DEWEY DECIMAL CLASSIFICATION NUMBER | |
Classification number | 006.66 |
Item number | EBE/G |
100 1# - MAIN ENTRY--PERSONAL NAME | |
Personal name | Eberly, David H. |
245 10 - TITLE STATEMENT | |
Title | GPGPU programming for games and science/ |
Statement of responsibility, etc. | David H.Eberly |
260 ## - PUBLICATION, DISTRIBUTION, ETC. (IMPRINT) | |
Place of publication, distribution, etc. | Boca Raton: |
Name of publisher, distributor, etc. | CRC Press, |
Date of publication, distribution, etc. | 2015. |
300 ## - PHYSICAL DESCRIPTION | |
Extent | xxvii, 441 p. : |
Other physical details | ill. ; |
Dimensions | 24 cm. |
504 ## - BIBLIOGRAPHY, ETC. NOTE | |
Bibliography, etc | Includes bibliographical references and index. |
505 ## - FORMATTED CONTENTS NOTE | |
Formatted contents note | 1 Introduction<br/>2.4.1 Conversion from Rational to Binary Scientific Numbers 24<br/>2.4.2 Arithmetic Properties of Binary Scientific Numbers 27<br/>2.4.2.1 Addition of Binary Scientific Numbers . . .<br/>2.4.2.2 Subtraction of Binary Scientific Numbers .<br/>2.4.2.3 Multiplication of Binary Scientific Numbers<br/>2.4.2.4 Division of Binary Scientific Numbers . . .<br/>2.4.3 Algebraic Properties of Binary Scientific Numbers .<br/>2.5 Floating-Point Arithmetic<br/>2.5.1 Binary Encodings<br/>5 CPU Computing<br/>2.1 Numerical Computing ^<br/>2.1.1 The Curse: An Example from Games<br/>2.1.2 The Curse: An Example from Science<br/>2.1.3 The Need to Understand Floating-Point Systems<br/>2.2 Balancing Robustness, Accuracy, and Speed<br/>2.2.1 Robustness<br/>2.2.1.1 Formal Definitions<br/>2.2.1.2 Algorithms and Implementations <br/>2.2.1.3 Practical Definitions<br/>2.2.2 Accuracy<br/>2.2.3 Speed<br/>2.2.4 Computer Science Is a Study of Trade-offs . . .<br/>2.3 IEEE Floating Point Standard<br/>2.4 Binary Scientific Notation<br/>2.5.1.1 8-bit Floating-Point Numbers 33<br/>2.5.1.2 16-Bit Floating-Point Numbers 36<br/>2.5.1.3 32-Bit Floating-Point Numbers 39<br/>2.5.1.4 64-Bit Floating-Point Numbers 41<br/>2.5.1.5 n-Bit Floating-Point Numbers 42<br/>2.5.1.6 Classifications of Floating-Point Numbers . . 45<br/>2.5.2 Rounding and Conversions 50<br/>2.5.2.1 Rounding with Ties-to-Even 51<br/>2.5.2.2 Rounding with Ties-to-Away 52<br/>2.5.2.3 Rounding toward Zero 52<br/>2.5.2.4 Rounding toward Positive 52<br/>2.5.2.5 Rounding toward Negative 53<br/>2.5.2.6 Rounding from Floating-Point to Integral<br/>Floating-Point 54<br/>2.5.2.7 Conversion from Integer to Floating-Point . 60<br/>2.5.2.8 Conversion from Floating-Point to Rational . 64<br/>2.5.2.9 Conversion from Rational to Floating-Point. 67<br/>2.5.2.10 Conversion to Wider Format 70<br/>2.5.2.11 Conversion to Narrower Format 73<br/>2.5.3 Arithmetic Operations 81<br/>2.5.4 Mathematical Functions 82<br/>2.5.5 Floating-Point Oddities 83<br/>2.5.5.1 Where Have My Digits Gone? 83<br/>2.5.5.2 Have a Nice Stay! 88<br/>2.5.5.3 The Best I Can Do Is That Bad? 89<br/>2.5.5.4 You Have Been More Than Helpful 91<br/>2.5.5.5 Hardware and Optimizing Compiler Issues . 92<br/>SIMD Computing<br/>3.1 Intel Streaming SIMD Extensions 93<br/>3.1.1 Shuflling Components 94<br/>3.1.2 Single-Component versus All-Component Access . .. 95<br/>3.1.3 Load and Store Instructions 95<br/>3.1.4 Logical Instructions 98<br/>3.1.5 Comparison Instructions 99<br/>3.1.6 Arithmetic Instructions 100<br/>3.1.7 Matrix Multiplication and TVanspose 100<br/>3.1.8 IEEE Floating-Point Support 103<br/>3.1.9 Keep the Pipeline Running 103<br/>3.1.10 Flattening of Branches 104<br/>3.2 SIMD Wrappers 100<br/>3.3 Function Approximations 107<br/>3.3.1 Minimax Approximations<br/>3.3.2 Inverse Square Root Function Using Root Finding . . 110<br/>3.3.3 Square Root Function HI<br/>3.3.4 Inverse Square Root Using a Minimax Algorithm ... 114<br/>3.3.5 Sine Function 116<br/>3.3.6 Cosine Function ." 116<br/>3.3.7 Tangent Function 117<br/>3.3.8 Inverse Sine Function 117<br/>3.3.9 Inverse Cosine Function 119<br/>3.3.10 Inverse Tangent Function 119<br/>3.3.11 Exponential Functions 120<br/>3.3.12 Logarithmic Functions 120<br/>GPU Computing 123<br/>4.1 Drawing a 3D Object 123<br/>4.1.1 Model Space 123<br/>4.1.2 World Space 123<br/>4.1.3 View Space 124<br/>4.1.4 Projection Space 125<br/>4.1.5 Window Space 129<br/>4.1.6 Summary of the Transformations 130<br/>4.1.7 Rasterization 131<br/>4.2 High Level Shading Language (HLSL) 134<br/>4.2.1 Vertex and Pixel Shaders 134<br/>4.2.2 Geometry Shaders 138<br/>4.2.3 Compute Shaders 141<br/>4.2.4 Compiling HLSL Shaders 144<br/>4.2.4.1 Compiling the Vertex Coloring Shaders . . . 147<br/>4.2.4.2 Compiling the Texturing Shaders 151<br/>4.2.4.3 Compiling the Billboard Shaders 152<br/>4.2.4.4 Compiling the Gaussian Blurring Shaders . . 156<br/>4.2.5 Reflecting HLSL Shaders 160<br/>4.3 Devices, Contexts, and Swap Chains 168<br/>4.3.1 Creating a Device and an Immediate Context 168<br/>4.3.2 Creating Swap Chains 170<br/>4.3.3 Creating the Back Buffer 171<br/>4.4 Resources 173<br/>4.4.1 Resource Usage and CPU Access 174<br/>4.4.2 Resource Views 175<br/>4.4.3 Subresources 178<br/>4.4.4 Buffers 179<br/>4.4.4.1 Constant Buffers 181<br/>4.4.4.2 Texture Buffers 181<br/>4.4.4.3 Vertex Buffers 182<br/>4.4.4.4 Index Buffers 184<br/>4.4.4.5 Structured Buffers 184<br/>4.4.4.6 Raw Buffers 187<br/>4.4.4.7 Indirect-Argument Buffers 189<br/>4.4.5 Textures 189<br/>4.4.5.1 ID Textures 192<br/>4.4.5.2 2D Textures 193<br/>4.4.5.3 3D Textures 194<br/>4.4.6 Texture Arrays 195<br/>4.4.6.1 ID Texture Arrays 195<br/>4.4.6.2 2D Texture Arrays 196<br/>4.4.6.3 Cubemap Textures 197<br/>4.4.6.4 Cubemap Texture Arrays 198<br/>4.4.7 Draw Targets 198<br/>4.5 States 201<br/>4.6 Shaders 202<br/>4.6.1 Creating Shaders 202<br/>4.6.2 Vertex, Geometry, and Pixel Shader Execution . . .. 202<br/>4.6.3 Compute Shader Execution 205<br/>4.7 Copying Data between CPU and CPU 207<br/>4.7.1 Mapped Writes for Dynamic Update 207<br/>4.7.2 Staging Resources 210<br/>4.7.3 Copy from CPU to CPU 211<br/>4.7.4 Copy from CPU to CPU 212<br/>4.7.5 Copy from CPU to CPU 213<br/>4.8 Multiple CPUs 214<br/>4.8.1 Enumerating the Adapters 214<br/>4.8.2 Copying Data between Multiple CPUs 215<br/>4.9 IEEE Floating-Point on the CPU 217<br/>Practical Matters 223<br/>5.1 Engine Design and Architecture 223<br/>5.1.1 A Simple Low-Level D3D11 Application<br/>5.1.2 HLSL Compilation in Microsoft Visual Studio . . .<br/>5.1.3 Design Goals for the Geometric Tools Engine . . .<br/>5.1.3.1 An HLSL Factory<br/>5.1.3.2 Resource Bridges<br/>5.1.3.3 Visual Effects<br/>5.1.3.4 Visual Objects and Scene Graphs . . . .<br/>5.1.3.5 Cameras<br/>5.2 Debugging<br/>5.2.1 Debugging on the CPU<br/>5.2.2 Debugging on the CPU<br/>5.2.3 Be Mindful of Your Surroundings n • •<br/>5.2.3.1 An Example of an HLSL Compiler Bug .<br/>5.2.3.2 An Example of a Programmer Bug . . . .<br/>5.3 Performance<br/>5.3.1 Performance on the CPU<br/>5.3.2 Performance on the CPU<br/>5.3.3 Performance Guidelines<br/>5.4 Code Testing 249<br/>5.4.1 Topics in Code Testing 250<br/>5.4.2 Code Coverage and Unit Testing on the CPU 254<br/>Linear and AfRne Algebra 257<br/>6.1 Vectors 257<br/>6.1.1 Robust Length and Normalization Computations . . . 258<br/>6.1.2 Orthogonality 260<br/>6.1.2.1 Orthogonality in 2D 260<br/>6.1.2.2 Orthogonality in 3D 261<br/>6.1.2.3 Orthogonality in 4D 262<br/>6.1.2.4 Gram-Schmidt Orthonormalization 263<br/>6.1.3 Orthonormal Sets 264<br/>6.1.3.1 Orthonormal Sets in 2D 265<br/>6.1.3.2 Orthonormal Sets in 3D 265<br/>6.1.3.3 Orthonormal Sets in 4D 267<br/>6.1.4 Barycentric Coordinates 269<br/>6.1.5 Intrinsic Dimensionality 270<br/>6.2 Matrices 273<br/>6.2.1 Matrix Storage and Transfom Conventions 274<br/>6.2.2 Base Class Matrix Operations 275<br/>6.2.3 Square Matrix Operations in 2D 278<br/>6.2.4 Square Matrix Operations in 3D 279<br/>6.2.5 Square Matrix Operations in 4D 281<br/>6.2.6 The Laplace Expansion Theorem 282<br/>6.3 Rotations 288<br/>6.3.1 Rotation in 2D 288<br/>6.3.2 Rotation in 3D 289<br/>6.3.3 Rotation in 4D 292<br/>6.3.4 Quaternions 294<br/>6.3.4.1 Algebraic Operations 295<br/>6.3.4.2 Relationship of Quaternions to Rotations . . 297<br/>6.3.4.3 Spherical Linear Interpolation of Quaternions 299<br/>6.3.5 Euler Angles 305<br/>6.3.5.1 World Coordinates versus Body Coordinates 306<br/>6.3.6 Conversion between Representations 308<br/>6.3.6.1 Quaternion to Matrix 309<br/>6.3.6.2 Matrix to Quaternion 309<br/>6.3.6.3 Axis-Angle to Matrix 311<br/>6.3.6.4 Matrix to Axis-Angle 311<br/>6.3.6.5 Axis-Angle to Quaternion 312<br/>6.3.6.6 Quaternion to Axis-Angle 312<br/>6.3.6.7 Euler Angles to Matrix 313<br/>6.3.6.8 Matrix to Euler Angles 313<br/>6.3.6.9 Eiiler Angles to and from Quaternion or Axis-<br/>Angle .. ." 317<br/>6.4 Coordinate Systems 318<br/>6.4.1 Geometry and Affine Algebra 319<br/>6.4.2 Transformations 322<br/>6.4.2.1 Composition of Affine Transformations . . . 322<br/>6.4.2.2 Decomposition of Affine Transformations . . 327<br/>6.4.2.3 A Simple Transformation Factory 330<br/>6.4.3 Coordinate System Conventions 332<br/>6.4.4 Converting between Coordinate Systems 336<br/>Sample Applications 341<br/>7.1 Video Streams 341<br/>7.1.1 The VideoStream Class 341<br/>7.1.2 The VideoStreamManager Class 342<br/>7.2 Root Finding 346<br/>7.2.1 Root Bounding 346<br/>7.2.2 Bisection 347<br/>7.2.3 Newton's Method 348<br/>7.2.4 Exhaustive Evaluation 350<br/>7.2.4.1 CPU Root Finding Using a Single Thread . . 350<br/>7.2.4.2 CPU Root Finding Using Multiple Threads . 351<br/>7.2.4.3 CPU Root Finding 352<br/>7.3 Least Squares Fitting 355<br/>7.3.1 Fit a Line to 2D Points 355<br/>7.3.2 Fit a Plane to 3D Points 358<br/>7.3.3 Orthogonal Regression 359<br/>7.3.3.1 Fitting with Lines 359<br/>7.3.3.2 Fitting with Planes 361<br/>7.3.4 Estimation of Tangent Planes 362<br/>7.4 Partial Sums 364<br/>7.5 All-Pairs Triangle Intersection 368<br/>7.6 Shortest Path in a Weighted Graph 371<br/>7.7 Convolution 377<br/>7.8 Median Filtering 384<br/>7.8.1 Median by Sorting 385<br/>7.8.2 Median of 3 x 3 Using Min-Max Operations 387<br/>7.8.3 Median of 5 x 5 Using Min-Max Operations 389<br/>7.9 Level Surface Extraction 392<br/>7.10 Mass-Spring Systems 398<br/>7.11 Fluid Dynamics 400<br/>7.11.1 Numerical Methods 401<br/>7.11.2 Solving Fluid Flow in 2D 403<br/>7.11.2.1 Initialization of State 405<br/>7.11.2.2 Initialization of External Forces 406<br/>7.11.2.3 Updating the State with Advection 409<br/>7.11.2.4 Applying the State Boundary Conditions . . 410<br/>7.11.2.5 Computing the Divergence of Velocity .... 413<br/>7.11.2.6 Solving the Poisson Equation 413<br/>7.11.2.7 Updating the Velocity to Be Divergence FVee 414<br/>7.11.2.8 Screen Captures from the Simulation .... 415<br/>7.11.3 Solving Fluid Flow in 3D 416<br/>7.11.3.1 Initialization of State 418<br/>7.11.3.2 Initialization of External Forces 419<br/>7.11.3.3 Updating the State with Advection 422<br/>7.11.3.4 Applying the State Boundary Conditions . . 424<br/>7.11.3.5 Computing the Divergence of Velocity .... 425<br/>7.11.3.6 Solving the Poisson Equation 425<br/>7.11.3.7 Updating the Velocity to Be Divergence Free 427<br/>7.11.3.8 Screen Captures from the Simulation .... 427 |
650 #0 - SUBJECT | |
Keyword | Graphics processing units |
650 #7 - SUBJECT | |
Keyword | Computer games--Programming |
942 ## - ADDED ENTRY ELEMENTS (KOHA) | |
Koha item type | General Books |
Withdrawn status | Lost status | Damaged status | Not for loan | Home library | Current library | Shelving location | Date acquired | Full call number | Accession number | Date last seen | Koha item type |
---|---|---|---|---|---|---|---|---|---|---|---|
Central Library, Sikkim University | Central Library, Sikkim University | General Book Section | 30/06/2016 | 006.66 EBE/G | P40899 | 30/06/2016 | General Books |