- Paperback: 312 pages
- Publisher: Addison-Wesley Professional; 1 edition (July 29, 2010)
- Language: English
- ISBN-10: 0131387685
- ISBN-13: 978-0131387683
- Product Dimensions: 7.4 x 0.9 x 9.1 inches
- Shipping Weight: 1.2 pounds (View shipping rates and policies)
- Average Customer Review: 66 customer reviews
- Amazon Best Sellers Rank: #57,539 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
CUDA by Example: An Introduction to General-Purpose GPU Programming 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
All Books, All the Time
Read author interviews, book reviews, editors picks, and more at the Amazon Book Review. Read it now
Frequently bought together
Customers who bought this item also bought
From the Back Cover
""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 LaboratoryCUDA 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. Major topics covered include
- Parallel programming
- Thread cooperation
- Constant memory and events
- Texture memory
- Graphics interoperability
- CUDA C on multiple GPUs
- Advanced atomics
- Additional CUDA resources
About the Author
Jason Sanders is a senior software engineer in the CUDA Platform group at NVIDIA. While at NVIDIA, he helped develop early releases of CUDA system software and contributed to the OpenCL 1.0 Specification, an industry standard for heterogeneous computing. Jason received his master’s degree in computer science from the University of California Berkeley where he published research in GPU computing, and he holds a bachelor’s degree in electrical engineering from Princeton University. Prior to joining NVIDIA, he previously held positions at ATI Technologies, Apple, and Novell. When he’s not writing books, Jason is typically working out, playing soccer, or shooting photos.
Edward Kandrot is a senior software engineer on the CUDA Algorithms team at NVIDIA. He has more than twenty years of industry experience focused on optimizing code and improving performance, including for Photoshop and Mozilla. Kandrot has worked for Adobe, Microsoft, and Google, and he has been a consultant at many companies, including Apple and Autodesk. When not coding, he can be found playing World of Warcraft or visiting Las Vegas for the amazing food.
Top customer reviews
This book is aimed at a beginner in CUDA and the level of the explanations clearly shows that the authors are aware that it is so new to the reader that he/she will need a lot of explanations. However there are times in which I feel the style of this book is insufferable. For example there is a joke of a program which prints Hello World. This can be annoying to someone keen to see the first real example of parallel programming. The authors dont give you much help with regards to installation.
Yet, I cant think of any book that can really replace this book. If you are starting out, you pretty much have to have it. It covers certain subjects that Wen-mei Hwu does not cover in his book. In fact in the latter's Coursera course he suggests that you read Sander's book for certain topics.
Positive aspects from a starting-out perspective:
-- a small, very readable book focusing on the important parts to start with; comprehensiveness has it's merits but not when we are just starting out
-- brevity does not mean superficialness; the book is very methodical, has examples when you start doing some technique, but alas, it does not improve performance; then it explains more background and help to fix the issue; sticks much better than feeding the conclusion up front
-- complete working samples
-- enjoyable style; one of the very very small number of books where I am able to appreciate all of the humor (and I'm fussy about this topic; have other reviews triggered by the contrived tiresome attempts to be humorous, which is the case in most tech books I've seen)
Will need to read other book(s) after this one but a very good one to start with. Anyone criticizing because of the size is either missing the point or did not get the right book for his own need (through no fault of his own).
It does a good enough job of explaining that it is easy to understand even if you have no background in parallel computing or in C. Each example is built modularly, so you can see how each section works and why they do it that way. This really is a fantastic book to begin your journey into GPU programming with NVIDIA.
University of Illinois at Urbana-Champaign) and Udacity (Intro to Parallel Programming).
I received the (c) 2011 version of the book, which fixed many typos and errors that had been present in the prior version.
However, it does not really talk about parallelization technics, meaning how to take an existing code and adapt it to parallel programming.
Great book for beginners though.
I wish the book existed for HLSL!