Home | Amazing | Today | Tags | Publishers | Years | Account | Search 
Hands-On GPU Programming with Python and CUDA: Explore high-performance parallel computing with CUDA

Buy

Build GPU-accelerated high performing applications with Python 2.7, CUDA 9, and open source libraries such as PyCUDA and scikit-cuda. We recommend the use of Python 2.7 as this version has stable support across all libraries used in this book.

Key Features

  • Get to grips with 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

Book Description

GPU programming is the technique of offloading intensive tasks running on the CPU for faster computing. Hands-On GPU Programming with Python and CUDA will help you discover ways to develop high performing Python apps combining the power of Python and CUDA.

This book will help you hit the ground running-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. You'll then see how to query a GPU's features and copy arrays of data to and from its memory. As you make your way through the book, you'll run your code directly on the GPU and write full blown GPU kernels and device functions in CUDA C. You'll even get to grips with profiling GPU code and fully test and debug your code using Nsight IDE. Furthermore, the book covers some well-known NVIDIA libraries such as cuFFT and cuBLAS.

With a solid background in place, you'll be able to develop your very own GPU-based deep neural network from scratch, and explore advanced topics such as warp shuffling, dynamic parallelism, and PTX assembly. Finally, you'll touch up on topics and applications like AI, graphics, and blockchain.

By the end of this book, you'll be confident in solving problems related to data science and high-performance computing with GPU programming.

What you will learn

  • Write effective and efficient GPU kernels and device functions
  • Work with libraries such as cuFFT, cuBLAS, and cuSolver
  • Debug and profile your code with Nsight and Visual Profiler
  • Apply GPU programming to data science problems
  • Build a GPU-based deep neural network from scratch
  • Explore advanced GPU hardware features such as warp shuffling

Who this book is for

This book is for developers and data scientists who want to learn the basics of effective GPU programming to improve performance using Python code. Familiarity with mathematics and physics concepts along with some experience with Python and any C-based programming language will be helpful.

Table of Contents

  1. Why GPU Programming?
  2. Setting Up Your GPU Programming Environment
  3. Getting Started with PyCUDA
  4. Kernels, Threads, Blocks, and Grids
  5. Streams, Events, Contexts, and Concurrency
  6. Debugging and Profiling Your CUDA Code
  7. Using the CUDA Libraries with Scikit-CUDA Draft complete
  8. The CUDA Device Function Libraries and Thrust
  9. Implementing a Deep Neural Network
  10. Working with Compiled GPU Code
  11. Performance Optimization in CUDA
  12. Where to Go from Here
(HTML tags aren't allowed.)

Introduction to Parallel Computing (Oxford Texts in Applied and Engineering Mathematics)
Introduction to Parallel Computing (Oxford Texts in Applied and Engineering Mathematics)
In the last few years, courses on parallel computation have been developed and offered in many institutions in the UK, Europe and US as a recognition of the growing significance of this topic in mathematics and computer science. There is a clear need for texts that meet the needs of students and lecturers and this book, based on the author's...
Bioinformatics: High Performance Parallel Computer Architectures (Embedded Multi-Core Systems)
Bioinformatics: High Performance Parallel Computer Architectures (Embedded Multi-Core Systems)

New sequencing technologies have broken many experimental barriers to genome scale sequencing, leading to the extraction of huge quantities of sequence data. This expansion of biological databases established the need for new ways to harness and apply the astounding amount of available genomic information and convert it into substantive...

Learning Data Mining with Python
Learning Data Mining with Python

Harness the power of Python to analyze data and create insightful predictive models

About This Book

  • Learn data mining in practical terms, using a wide variety of libraries and techniques
  • Learn how to find, manipulate, and analyze data using Python
  • Step-by-step instructions...

Java 9 for Programmers (4th Edition) (Deitel Developer Series)
Java 9 for Programmers (4th Edition) (Deitel Developer Series)

The professional programmer’s Deitel® guide to Java® 9 and the powerful Java platform

 

Written for programmers with a background in another high-level language, this book applies the...

Python Projects for Beginners: A Ten-Week Bootcamp Approach to Python Programming
Python Projects for Beginners: A Ten-Week Bootcamp Approach to Python Programming

Immerse yourself in learning Python and introductory data analytics with this book’s project-based approach. Through the structure of a ten-week coding bootcamp course, you’ll learn key concepts and gain hands-on experience through weekly projects.

Each chapter in this book is presented as a full week of...

Fundamentals of Cryptology: A Professional Reference and Interactive Tutorial
Fundamentals of Cryptology: A Professional Reference and Interactive Tutorial
The protection of sensitive information against unauthorized access or fraudulent changes has been of prime concern throughout the centuries. Modern communication techniques, using computers connected through networks, make all data even more vulnerable to these threats. In addition, new issues have surfaced that did not exist previously, e.g....
©2019 LearnIT (support@pdfchm.net) - Privacy Policy