Product details
- Publisher : Packt Publishing (November 27, 2018)
- Language : English
- Paperback : 310 pages
- ISBN-10 : 1788993918
-
ISBN-13 : 978-1788993913
کتاب Hands-On GPU Programming with Python and CUDA: Explore high-performance parallel computing with CUDA
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
- Why GPU Programming?
- Setting Up Your GPU Programming Environment
- Getting Started with PyCUDA
- Kernels, Threads, Blocks, and Grids
- Streams, Events, Contexts, and Concurrency
- Debugging and Profiling Your CUDA Code
- Using the CUDA Libraries with Scikit-CUDA Draft complete
- The CUDA Device Function Libraries and Thrust
- Implementing a Deep Neural Network
- Working with Compiled GPU Code
- Performance Optimization in CUDA
- Where to Go from Here
منابع کتاب کتاب Hands-On GPU Programming with Python and CUDA: Explore high-performance parallel computing with CUDA
با Python 2.7، CUDA 9 و کتابخانه های منبع باز مانند PyCUDA و scikit-cuda، برنامه های کاربردی با عملکرد بالا با شتاب GPU بسازید. ما استفاده از Python 2.7 را توصیه می کنیم زیرا این نسخه از تمام کتابخانه های استفاده شده در این کتاب پشتیبانی پایدار دارد.
ویژگی های کلیدی
- با ابزارهای برنامه نویسی GPU مانند PyCUDA، scikit-cuda و Nsight آشنا شوید.
- کتابخانه های CUDA مانند cuBLAS، CUFFT و cuSolver را کاوش کنید
- برنامه نویسی GPU را در برنامه های کاربردی علم داده مدرن اعمال کنید
توضیحات کتاب
برنامه نویسی GPU تکنیک بارگیری وظایف فشرده در حال اجرا بر روی CPU برای محاسبات سریعتر است. برنامهنویسی GPU دستی با پایتون و CUDA به شما کمک میکند راههایی را برای توسعه برنامههای پایتون با عملکرد بالا با ترکیب قدرت پایتون و CUDA کشف کنید.
این کتاب به شما کمک میکند که به موفقیت دست پیدا کنید - با یادگیری نحوه اعمال قانون Amdahl، استفاده از یک پروفایلکننده کد برای شناسایی تنگناها در کد پایتون و راهاندازی یک محیط برنامهنویسی GPU شروع میکنید. سپس خواهید دید که چگونه می توان ویژگی های یک GPU را پرس و جو کرد و آرایه های داده را در حافظه آن و از آن کپی کرد. همانطور که در کتاب پیش میروید، کد خود را مستقیماً روی GPU اجرا میکنید و هستههای گرافیکی کامل و عملکردهای دستگاه را در CUDA C مینویسید. حتی میتوانید با پروفایل کد GPU کنار بیایید و کد خود را به طور کامل آزمایش و اشکالزدایی کنید. با استفاده از Nsight IDE علاوه بر این، این کتاب برخی از کتابخانههای معروف NVIDIA مانند CUFFT و cuBLAS را پوشش میدهد.
با داشتن یک پسزمینه قوی، میتوانید شبکه عصبی عمیق مبتنی بر GPU خود را از ابتدا توسعه دهید و موضوعات پیشرفتهای مانند در هم ریختگی، موازیسازی پویا و مونتاژ PTX را بررسی کنید. در نهایت، موضوعات و برنامه هایی مانند هوش مصنوعی، گرافیک و بلاک چین را بررسی خواهید کرد.
در پایان این کتاب، در حل مشکلات مربوط به علم داده و محاسبات با کارایی بالا با برنامه نویسی GPU مطمئن خواهید بود.
آنچه خواهید آموخت
- هسته های GPU و توابع دستگاه موثر و کارآمد را بنویسید
- با کتابخانه هایی مانند cuFFT، cuBLAS و cuSolver کار کنید
- کد خود را با Nsight و Visual Profiler اشکال زدایی و نمایه کنید
- برنامه نویسی GPU را برای مشکلات علم داده اعمال کنید
- یک شبکه عصبی عمیق مبتنی بر GPU از ابتدا بسازید
- ویژگیهای سختافزار پیشرفته GPU، مانند تار زدن را بررسی کنید
این کتاب برای چه کسی است
این کتاب برای توسعه دهندگان و دانشمندان داده است که می خواهند اصول برنامه نویسی موثر GPU را برای بهبود عملکرد با استفاده از کد پایتون بیاموزند. آشنایی با مفاهیم ریاضی و فیزیک به همراه کمی تجربه با پایتون و هر زبان برنامه نویسی مبتنی بر C مفید خواهد بود.
فهرست مطالب
- چرا برنامه نویسی GPU؟
- تنظیم محیط برنامه نویسی GPU
- شروع با PyCUDA
- هسته ها، موضوعات، بلوک ها و شبکه ها
- جریانها، رویدادها، زمینهها و همزمانی
- اشکال زدایی و پروفایل کد CUDA شما
- استفاده از کتابخانه های CUDA با پیش نویس Scikit-CUDA کامل شده است
- کتابخانه ها و تراست عملکرد دستگاه CUDA
- پیاده سازی شبکه عصبی عمیق
- کار با کد GPU کامپایل شده
- بهینه سازی عملکرد در CUDA
- از اینجا کجا برویم
ارسال نظر درباره کتاب Hands-On GPU Programming with Python and CUDA: Explore high-performance parallel computing with CUDA