Description

Book Synopsis

Duane Storti is a professor of mechanical engineering at the University of Washington in Seattle. He has thirty-five years of experience in teaching and research in the areas of engineering mathematics, dynamics and vibrations, computer-aided design, 3D printing, and applied GPU computing.

 

Mete Yurtoglu is currently pursuing an M.S. in applied mathematics and a Ph.D. in mechanical engineering at the University of Washington in Seattle. His research interests include GPU-based methods for computer vision and machine learning.

 



Table of Contents

Acknowledgments xvii

About the Authors xix

Introduction 1

What Is CUDA? 1

What Does “Need-to-Know” Mean for Learning CUDA? 2

What Is Meant by “for Engineers”? 3

What Do You Need to Get Started with CUDA? 4

How Is This Book Structured? 4

Conventions Used in This Book 8

Code Used in This Book 8

User’s Guide 9

Historical Context 10

References 12

Chapter 1: First Steps 13

Running CUDA Samples 13

Running Our Own Serial Apps 19

Summary 22

Suggested Projects 23

Chapter 2: CUDA Essentials 25

CUDA’s Model for Parallelism 25

Need-to-Know CUDA API and C Language Extensions 28

Summary 31

Suggested Projects 31

References 31

Chapter 3: From Loops to Grids 33

Parallelizing dist_v1 33

Parallelizing dist_v2 38

Standard Workflow 42

Simplified Workflow 43

Summary 47

Suggested Projects 48

References 48

Chapter 4: 2D Grids and Interactive Graphics 49

Launching 2D Computational Grids 50

Live Display via Graphics Interop 56

Application: Stability 66

Summary 76

Suggested Projects 76

References 77

Chapter 5: Stencils and Shared Memory 79

Thread Interdependence 80

Computing Derivatives on a 1D Grid 81

Summary 117

Suggested Projects 118

References 119

Chapter 6: Reduction and Atomic Functions 121

Threads Interacting Globally 121

Implementing parallel_dot 123

Computing Integral Properties: centroid_2d 130

Summary 138

Suggested Projects 138

References 138

Chapter 7: Interacting with 3D Data 141

Launching 3D Computational Grids: dist_3d 144

Viewing and Interacting with 3D Data: vis_3d 146

Summary 171

Suggested Projects 171

References 171

Chapter 8: Using CUDA Libraries 173

Custom versus Off-the-Shelf 173

Thrust 175

cuRAND 190

NPP 193

Linear Algebra Using cuSOLVER and cuBLAS . 201

cuDNN 207

ArrayFire 207

Summary 207

Suggested 208

References 209

Chapter 9: Exploring the CUDA Ecosystem 211

The Go-To List of Primary Sources 211

Further Sources 217

Summary 218

Suggested Projects 219

Appendix A: Hardware Setup 221

Checking for an NVIDIA GPU: Windows 221

Checking for an NVIDIA GPU: OS X 222

Checking for an NVIDIA GPU: Linux 223

Determining Compute Capability 223

Upgrading Compute Capability 225

Appendix B: Software Setup 229

Windows Setup 229

OS X Setup 238

Linux Setup 240

Appendix C: Need-to-Know C Programming 245

Characterization of C 245

C Language Basics 246

Data Types, Declarations, and Assignments 248

Defining Functions 250

Building Apps: Create, Compile, Run, Debug 251

Arrays, Memory Allocation, and Pointers 262

Control Statements: for, if 263

Sample C Programs 267

References 277

Appendix D: CUDA Practicalities: Timing, Profiling, Error Handling, and Debugging 279

Execution Timing and Profiling 279

Error Handling 292

Debugging in Windows 298

Debugging in Linux 305

CUDA-MEMCHECK 308

Using Visual Studio Property Pages 309

References 312

Index 313

CUDA for Engineers

Product form

£31.82

Includes FREE delivery

RRP £33.49 – you save £1.67 (4%)

Order before 4pm today for delivery by Wed 7 Jan 2026.

A Paperback / softback by Duane Storti, Mete Yurtoglu

2 in stock


    View other formats and editions of CUDA for Engineers by Duane Storti

    Publisher: Pearson Education (US)
    Publication Date: 24/12/2015
    ISBN13: 9780134177410, 978-0134177410
    ISBN10: 013417741X

    Description

    Book Synopsis

    Duane Storti is a professor of mechanical engineering at the University of Washington in Seattle. He has thirty-five years of experience in teaching and research in the areas of engineering mathematics, dynamics and vibrations, computer-aided design, 3D printing, and applied GPU computing.

     

    Mete Yurtoglu is currently pursuing an M.S. in applied mathematics and a Ph.D. in mechanical engineering at the University of Washington in Seattle. His research interests include GPU-based methods for computer vision and machine learning.

     



    Table of Contents

    Acknowledgments xvii

    About the Authors xix

    Introduction 1

    What Is CUDA? 1

    What Does “Need-to-Know” Mean for Learning CUDA? 2

    What Is Meant by “for Engineers”? 3

    What Do You Need to Get Started with CUDA? 4

    How Is This Book Structured? 4

    Conventions Used in This Book 8

    Code Used in This Book 8

    User’s Guide 9

    Historical Context 10

    References 12

    Chapter 1: First Steps 13

    Running CUDA Samples 13

    Running Our Own Serial Apps 19

    Summary 22

    Suggested Projects 23

    Chapter 2: CUDA Essentials 25

    CUDA’s Model for Parallelism 25

    Need-to-Know CUDA API and C Language Extensions 28

    Summary 31

    Suggested Projects 31

    References 31

    Chapter 3: From Loops to Grids 33

    Parallelizing dist_v1 33

    Parallelizing dist_v2 38

    Standard Workflow 42

    Simplified Workflow 43

    Summary 47

    Suggested Projects 48

    References 48

    Chapter 4: 2D Grids and Interactive Graphics 49

    Launching 2D Computational Grids 50

    Live Display via Graphics Interop 56

    Application: Stability 66

    Summary 76

    Suggested Projects 76

    References 77

    Chapter 5: Stencils and Shared Memory 79

    Thread Interdependence 80

    Computing Derivatives on a 1D Grid 81

    Summary 117

    Suggested Projects 118

    References 119

    Chapter 6: Reduction and Atomic Functions 121

    Threads Interacting Globally 121

    Implementing parallel_dot 123

    Computing Integral Properties: centroid_2d 130

    Summary 138

    Suggested Projects 138

    References 138

    Chapter 7: Interacting with 3D Data 141

    Launching 3D Computational Grids: dist_3d 144

    Viewing and Interacting with 3D Data: vis_3d 146

    Summary 171

    Suggested Projects 171

    References 171

    Chapter 8: Using CUDA Libraries 173

    Custom versus Off-the-Shelf 173

    Thrust 175

    cuRAND 190

    NPP 193

    Linear Algebra Using cuSOLVER and cuBLAS . 201

    cuDNN 207

    ArrayFire 207

    Summary 207

    Suggested 208

    References 209

    Chapter 9: Exploring the CUDA Ecosystem 211

    The Go-To List of Primary Sources 211

    Further Sources 217

    Summary 218

    Suggested Projects 219

    Appendix A: Hardware Setup 221

    Checking for an NVIDIA GPU: Windows 221

    Checking for an NVIDIA GPU: OS X 222

    Checking for an NVIDIA GPU: Linux 223

    Determining Compute Capability 223

    Upgrading Compute Capability 225

    Appendix B: Software Setup 229

    Windows Setup 229

    OS X Setup 238

    Linux Setup 240

    Appendix C: Need-to-Know C Programming 245

    Characterization of C 245

    C Language Basics 246

    Data Types, Declarations, and Assignments 248

    Defining Functions 250

    Building Apps: Create, Compile, Run, Debug 251

    Arrays, Memory Allocation, and Pointers 262

    Control Statements: for, if 263

    Sample C Programs 267

    References 277

    Appendix D: CUDA Practicalities: Timing, Profiling, Error Handling, and Debugging 279

    Execution Timing and Profiling 279

    Error Handling 292

    Debugging in Windows 298

    Debugging in Linux 305

    CUDA-MEMCHECK 308

    Using Visual Studio Property Pages 309

    References 312

    Index 313

    Recently viewed products

    © 2026 Book Curl

      • American Express
      • Apple Pay
      • Diners Club
      • Discover
      • Google Pay
      • Maestro
      • Mastercard
      • PayPal
      • Shop Pay
      • Union Pay
      • Visa

      Login

      Forgot your password?

      Don't have an account yet?
      Create account