The CUDA Handbookbegins where CUDA By Exampleleaves off, discussing both CUDA hardware and software in detail that will engage any CUDA developer, from the casual to the most hardcore. Newer CUDA developers will see how the hardware processes commands and the driver checks progress; hardcore CUDA developers will appreciate topics such as the driver API, context migration, and how best to structure CPU/GPU data interchange and synchronization. The book is partly a reference and partly a cookbook. Careful descriptions of hardware and software abstractions, best practices, and example source code are included. Much of the source code appears in the form of reusable "microbenchmarks" or "microdemos" designed to expose specific hardware characteristics or highlight specific use cases. Best practices are discussed and accompanied with source code. One idea emphasized is the "EERS Principle" (Empirical Evidence Reigns Supreme): that is, determining the fastest way to perform a given operation is best done empirically. The book includes an extensive glossary, because it's difficult to write about this topic without throwing word salad at the reader.
a highly experienced developer of low-level system, graphics, and performance software, currently is a Principal Software Engineer at Amazon.com, working on the GPU product of their Elastic Compute Cloud (EC2). For nine years, until 2010, Nicholas was a Software Architect for NVIDIA, working on CUDA from its inception. He was the principal architect of CUDA's driver API and most of CUDA's key abstractions. An NVIDIA Distinguished Inventor, he holds numerous patents in computer vision, color conversion, and memory management. Before joining NVIDIA, he worked on multimedia software at Microsoft, serving as development lead for Direct3D 5.0 and 6.0, building the first prototype of a page-flipping Windows desktop, and securing a number of patents for general-purpose GPU programming. Nicholas is the author of two previous books, Object-Oriented Ray Tracing in C++
(Wiley & Sons, 1994) and Classical Algorithms in C++
(Wiley & Sons, 1995).