More Information
  • Launch GPU code directly from Python
  • Write effective and efficient GPU kernels and device functions
  • Develop a custom TensorFlow module in CUDA
  • Explore advanced GPU hardware features, such as warp shuffling
  • Profile your Python code to determine bottlenecks using the CPython module
  • Develop a simple ray tracer from scratch in CUDA

GPUs are designed for maximum throughput but are subject to low-level subtleties. In contrast, Python is a high-level language that places emphasis on ease-of-use over speed. This updated second edition follows a practical approach to teaching you efficient GPU programming techniques with the latest version of Python and CUDA.

You’ll start by learning how to apply Amdahl’s Law, use a code profiler to identify bottlenecks in your Python code, and set up a GPU programming environment. In the chapters that follow, you’ll understand how to query the GPU’s features and set up an environment on the Microsoft Azure cloud, and on a NVIDIA Jetson Nano board. Next, you’ll get hands-on with launching code directly onto the GPU and writing GPU kernels and device functions in CUDA C. You’ll later get to grips with profiling GPU code, and testing and debugging your code using Nsight IDE. The book will then delve into well-known NVIDIA libraries, such as cuFFT and cuBLAS. From developing a custom TensorFlow module in CUDA to adding gradient outputs to a TensorFlow module, you’ll gradually build on your skills. Finally, you'll learn ray tracing in CUDA, and how to develop a simple ray tracer from scratch.

By the end of this book, you’ll be able to apply GPU programming to solve problems related to data science and high-performance computing.

  • Get to grips with graphics processing unit (GPU) programming tools such as PyCUDA, scikit-cuda, and Nsight
  • Explore CUDA libraries such as cuBLAS, cuFFT, and cuSolver
  • Apply GPU programming to modern data science applications
Page Count 296
Course Length 8 hours 52 minutes
ISBN 9781839214530
Date Of Publication 16 Oct 2020


Dr. Brian Tuomanen

Dr. Brian Tuomanen has been working with CUDA and General-Purpose GPU Programming since 2014. He received his Bachelor of Science in Electrical Engineering from the University of Washington in Seattle, and briefly worked as a Software Engineer before switching to Mathematics for Graduate School. He completed his Ph.D. in Mathematics at the University of Missouri in Columbia, where he first encountered GPU programming as a means for studying scientific problems. Dr. Tuomanen has spoken at the US Army Research Lab about General Purpose GPU programming, and has recently lead GPU integration and development at a Maryland based start-up company. He currently lives and works in the Seattle area.