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

CUDA by Example: An Introduction to General-Purpose GPU Programming
CUDA by Example: An Introduction to General-Purpose GPU Programming

CUDA is a computing architecture designed to facilitate the development of parallel programs. In conjunction with a comprehensive software platform, the CUDA Architecture enables programmers to draw on the immense power of graphics processing units (GPUs) when building high-performance applications. GPUs, of course, have...

CUDA Application Design and Development
CUDA Application Design and Development

As the computer industry retools to leverage massively parallel graphics processing units (GPUs), this book is designed to meet the needs of working software developers who need to understand GPU programming with CUDA and increase efficiency in their projects. CUDA Application Design and Development starts with an introduction to...

Beginning Machine Learning in iOS: CoreML Framework
Beginning Machine Learning in iOS: CoreML Framework
Implement machine learning models in your iOS applications. This short work begins by reviewing the primary principals of machine learning and then moves on to discussing more advanced topics, such as CoreML, the framework used to enable machine learning tasks in Apple products. 

Many applications on iPhone use machine
...

Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics
Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics

Do you want to build web pages but have no prior experience? This friendly guide is the perfect place to start. You’ll begin at square one, learning how the web and web pages work, and then steadily build from there. By the end of the book, you’ll have the skills to create a simple site with multicolumn pages that adapt...

Deep Belief Nets in C++ and CUDA C: Volume 2: Autoencoding in the Complex Domain
Deep Belief Nets in C++ and CUDA C: Volume 2: Autoencoding in the Complex Domain
Discover the essential building blocks of a common and powerful form of deep belief net: the autoencoder. You’ll take this topic beyond current usage by extending it to the complex domain for signal and image processing applications. Deep Belief Nets in C++ and CUDA C: Volume 2 also covers several...
What to Do When Things Go Wrong: A Five-Step Guide to Planning for and Surviving the Inevitable?And Coming Out Ahead
What to Do When Things Go Wrong: A Five-Step Guide to Planning for and Surviving the Inevitable?And Coming Out Ahead
Manage every business problem like you were born for it?from a problem customer to a career-threatening crisis


It’s not being negative or pessimistic to assume that something will always go wrong in business and in your career. It’s being realistic. What you do when crisis
...
©2019 LearnIT (support@pdfchm.net) - Privacy Policy