Build real-world GPU applications with Python and CUDA and explore methods related to GPU programmingKey FeaturesLearn Easy, Effective, Efficient GPU programming with Python and CUDAApply GPU programming to modern data science applicationsLeverage the the power of both Python and CUDA that will help you create high performing applicaitonsBook DescriptionGPUs are highly parallel, subject to hardware subtleties, designed for maximum throughput, and they offer a tremendous advantage in the performance. On the other hand, the programming language such as Python favours ease over computational speed. In this book, we will combine the power of both Python and CUDA that will help you create high performing applications.We first start with a brief overview of how to set up the development environment on a standard Linux or Windows system, and then we dive right into showing the reader how to effectively copy data from the GPU. You will then explore basic and advanced notions and learn to write full-blown CUDA kernels. Next, we will learn to profile code effectively with the Nvidia profiler. Here you will also learn to fully test and debug your CUDA code using Nvidia Nsight IDE. Now with a solid CUDA background, you will explore some of the more well-known Nvidia libraries like CuFFT, CuBLAS, etc. utilising Scikit-Cuda wrapper library for Python. Next, we dive deep into advanced topics such as warp shuffling, dynamic parallelism and basic PTX assembly language. Finally, we end this book by discussing future of GPU programming with AI, computer vision and Blockchain.What you will learnWrite efficient algorithms which help with GPU gain.Learn to write effective CUDA kernels. Learn to effectively use, link and interface libraries with Python and CUDA C.Effectively profile and debug your GPU code.Build real-world applications related to image processing, image filtering, morphological operations, and blob detection.Writing custom wrappers for CUDA libraries.Solve recursive problems utilising dynamic parallelism feature in CUDA.Who This Book Is ForThis book is for Python developers who want to learn effective GPU programming with CUDA to achieve high performance and boost the productivity of applications. The readers should have an understanding of basic mathematical concepts necessary and an introductory background about any C-based programming language (C, C++, Java, C#, and so forth.)About the AuthorBrian Tuomanen has been working with CUDA and General-Purpose GPU Programming since 2014. He received his Bachelor of Science in ElectricalEngineering from the University of Washington in Seattle, and briefly worked as a Software Engineer before switchingto Mathematics for Graduate School. He completed hisPh.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 Labin Maryland aboutGeneral Purpose GPU programming,and he is currentlyleading GPU integration and development at Department 13, LLC.
Author: Brian Tuomanen