Skip to content

Instantly share code, notes, and snippets.

@wolfram77
Last active September 28, 2021 07:43
Show Gist options
  • Save wolfram77/51d4a9ca7fbce96e3f2007a1e856ad2a to your computer and use it in GitHub Desktop.
Save wolfram77/51d4a9ca7fbce96e3f2007a1e856ad2a to your computer and use it in GitHub Desktop.
CUDA by Example: Getting Started : NOTES

Highlighted notes of:
Chapter 2: Getting Started

Book:
CUDA by Example
An Introduction to General Purpose GPU Computing

Authors:

  • Jason Sanders
  • Edward Kandrot

“This book is required reading for anyone working with accelerator-based computing systems.”
–From the Foreword by Jack Dongarra, University of Tennessee and Oak Ridge National Laboratory

CUDA is a computing architecture designed to facilitate the development of parallel programs. In conjunction with a comprehensive software platform, the CUDA Architecture enables programmers to draw on the immense power of graphics processing units (GPUs) when building high-performance applications. GPUs, of course, have long been available for demanding graphics and game applications. CUDA now brings this valuable resource to programmers working on applications in other domains, including science, engineering, and finance. No knowledge of graphics programming is required–just the ability to program in a modestly extended version of C.

CUDA by Example, written by two senior members of the CUDA software platform team, shows programmers how to employ this new technology. The authors introduce each area of CUDA development through working examples. After a concise introduction to the CUDA platform and architecture, as well as a quick-start guide to CUDA C, the book details the techniques and trade-offs associated with each key CUDA feature. You’ll discover when to use each CUDA C extension and how to write CUDA software that delivers truly outstanding performance.

Table of Contents:

  • Why CUDA? Why Now?
  • Getting Started
  • Introduction to CUDA C
  • Parallel Programming in CUDA C
  • Thread Cooperation
  • Constant Memory and Events
  • Texture Memory
  • Graphics Interoperability
  • Atomics
  • Streams
  • CUDA C on Multiple GPUs
  • The Final Countdown

All the CUDA software tools you’ll need are freely available for download from NVIDIA.

Jason Sanders is a senior software engineer in NVIDIA’s CUDA Platform Group, helped develop early releases of CUDA system software and contributed to the OpenCL 1.0 Specification, an industry standard for heterogeneous computing. He has held positions at ATI Technologies, Apple, and Novell.

Edward Kandrot is a senior software engineer on NVIDIA’s CUDA Algorithms team, has more than twenty years of industry experience optimizing code performance for firms including Adobe, Microsoft, Google, and Autodesk.

Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment