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.)

Upgrading and Repairing PCs (20th Edition)
Upgrading and Repairing PCs (20th Edition)

Welcome to Upgrading and Repairing PCs, 20th edition. Since debuting as the first book of its kind on the market in 1988, no other book on PC hardware has matched the depth and quality of the information found in this tome. This edition continues Upgrading and Repairing PCs’ role as not only the best-selling book of...

The Man Who Knew Infinity: A Life of the Genius Ramanujan
The Man Who Knew Infinity: A Life of the Genius Ramanujan
'An exquisite portrait...the rarest of literary achievements...Ramanujan's tale is the stuff of fable' LOS ANGELES TIMES 'an exciting and thoughtful book... should catch the imagination of any reader- even the reader with little mathematical background.' INDEPENDENT 'This is a fine example of a work of popularising mathematics, and deserves a wide...
X.400 and Smtp: Battle of the E-Mail Protocols
X.400 and Smtp: Battle of the E-Mail Protocols
X.400 and X.500: An Introduction is aimed at those with current or planned involvement in the management of X.400, including messaging managers, system or network planners, and software developers. This book provides background knowledge of mailing systems and functionality as well as a grasp of how the underlying network operates. It explains the...

Real-Time Systems: Formal Specification and Automatic Verification
Real-Time Systems: Formal Specification and Automatic Verification
Real-time systems need to react to certain input stimuli within given time bounds. For example, an airbag in a car has to unfold within 300 milliseconds in a crash. There are many embedded safety-critical applications and each requires real-time specification techniques. This text introduces three of these techniques, based on logic and automata:...
The Making of Information Systems: Software Engineering and Management in a Globalized World
The Making of Information Systems: Software Engineering and Management in a Globalized World
Information systems (IS) are the backbone of any organization today, supporting all major business processes.

This book deals with the question: how do these systems come into existence? It gives a comprehensive coverage of managerial, methodological and technological aspects including:

    * Management
...
Java Servlet Programming
Java Servlet Programming
A few years ago, the hype surrounding applets put Java on the map as a programming language for the Web. Today, Java servlets stand poised to take Java to the next level as a Web development language. The main reason is that servlets offer a fast, powerful, portable replacement for CGI scripts.

The Java Servlet API, introduced as the
...
©2021 LearnIT (support@pdfchm.net) - Privacy Policy