GPU Programming with CUDA and Python ( cudapython | 14 hours )

Prerequisites:
  • Python programming experience
  • Experience with NumPy (ndarrays, ufuncs, etc.)

Audience

  • Developers
Overview:

CUDA (Compute Unified Device Architecture) is a parallel computing platform and API created by Nvidia.

This instructor-led, live training (online or onsite) is aimed at intermediate-level developers who wish to use CUDA to build Python applications that run in parallel on NVIDIA GPUs.

By the end of this training, participants will be able to:

  • Use the Numba compiler to accelerate Python applications running on NVIDIA GPUs.
  • Create, compile and launch custom CUDA kernels.
  • Manage GPU memory.
  • Convert a CPU based application into a GPU-accelerated application.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.
Course Outline:

Introduction

  • What is GPU programming?
  • Why use CUDA with Python?
  • Key concepts: Threads, Blocks, Grids

Overview of CUDA Features and Architecture

  • GPU vs CPU architecture
  • Understanding SIMT (Single Instruction, Multiple Threads)
  • CUDA programming model

Setting up the Development Environment

  • Installing CUDA Toolkit and drivers
  • Installing Python and Numba
  • Setting up and verifying the environment

Parallel Programming Fundamentals

  • Introduction to parallel execution
  • Understanding threads and thread hierarchies
  • Working with warps and synchronization

Working with the Numba Compiler

  • Introduction to Numba
  • Writing CUDA kernels with Numba
  • Understanding @cuda.jit decorators

Building a Custom CUDA Kernel

  • Writing and launching a basic kernel
  • Using threads for element-wise operations
  • Managing grid and block dimensions

Memory Management

  • Types of GPU memory (global, shared, local, constant)
  • Memory transfer between host and device
  • Optimizing memory usage and avoiding bottlenecks

Advanced Topics in GPU Acceleration

  • Shared memory and synchronization
  • Using streams for asynchronous execution
  • Multi-GPU programming basics

Converting CPU-based Applications to GPU

  • Profiling CPU code
  • Identifying parallelizable sections
  • Porting logic to CUDA kernels

Troubleshooting

  • Debugging CUDA applications
  • Common errors and how to resolve them
  • Tools and techniques for testing and validation

Summary and Next Steps

  • Review of key concepts
  • Best practices in GPU programming
  • Resources for continued learning
Sites Published:

United Arab Emirates - GPU Programming with CUDA and Python

Qatar - GPU Programming with CUDA and Python

Egypt - GPU Programming with CUDA and Python

Saudi Arabia - GPU Programming with CUDA and Python

South Africa - GPU Programming with CUDA and Python

Brasil - GPU Programming with CUDA and Python

Canada - GPU Programming with CUDA and Python

中国 - GPU Programming with CUDA and Python

香港 - GPU Programming with CUDA and Python

澳門 - GPU Programming with CUDA and Python

台灣 - GPU Programming with CUDA and Python

USA - GPU Programming with CUDA and Python

Österreich - GPU Programming with CUDA and Python

Schweiz - GPU Programming with CUDA and Python

Deutschland - GPU Programming with CUDA and Python

Czech Republic - GPU Programming with CUDA and Python

Denmark - GPU Programming with CUDA and Python

Estonia - GPU Programming with CUDA and Python

Finland - GPU Programming with CUDA and Python

Greece - GPU Programming with CUDA and Python

Magyarország - GPU Programming with CUDA and Python

Ireland - GPU Programming with CUDA and Python

Israel - GPU Programming with CUDA and Python

Luxembourg - GPU Programming with CUDA and Python

Latvia - GPU Programming with CUDA and Python

España - GPU Programming with CUDA and Python

Italia - GPU Programming with CUDA and Python

Lithuania - GPU Programming with CUDA and Python

Nederland - GPU Programming with CUDA and Python

Norway - GPU Programming with CUDA and Python

Portugal - GPU Programming with CUDA and Python

România - GPU Programming with CUDA and Python

Sverige - GPU Programming with CUDA and Python

Türkiye - GPU Programming with CUDA and Python

Malta - GPU Programming with CUDA and Python

Belgique - GPU Programming with CUDA and Python

France - GPU Programming with CUDA and Python

日本 - GPU Programming with CUDA and Python

Australia - GPU Programming with CUDA and Python

Malaysia - GPU Programming with CUDA and Python

New Zealand - GPU Programming with CUDA and Python

Philippines - GPU Programming with CUDA and Python

Singapore - GPU Programming with CUDA and Python

Thailand - GPU Programming with CUDA and Python

Vietnam - GPU Programming with CUDA and Python

India - GPU Programming with CUDA and Python

Argentina - GPU Programming with CUDA and Python

Chile - GPU Programming with CUDA and Python

Costa Rica - GPU Programming with CUDA and Python

Ecuador - GPU Programming with CUDA and Python

Guatemala - GPU Programming with CUDA and Python

Colombia - GPU Programming with CUDA and Python

México - GPU Programming with CUDA and Python

Panama - GPU Programming with CUDA and Python

Peru - GPU Programming with CUDA and Python

Uruguay - GPU Programming with CUDA and Python

Venezuela - GPU Programming with CUDA and Python

Polska - GPU Programming with CUDA and Python

United Kingdom - GPU Programming with CUDA and Python

South Korea - GPU Programming with CUDA and Python

Pakistan - GPU Programming with CUDA and Python

Sri Lanka - GPU Programming with CUDA and Python

Bulgaria - GPU Programming with CUDA and Python

Bolivia - GPU Programming with CUDA and Python

Indonesia - GPU Programming with CUDA and Python

Kazakhstan - GPU Programming with CUDA and Python

Moldova - GPU Programming with CUDA and Python

Morocco - GPU Programming with CUDA and Python

Tunisia - GPU Programming with CUDA and Python

Kuwait - GPU Programming with CUDA and Python

Oman - GPU Programming with CUDA and Python

Slovakia - GPU Programming with CUDA and Python

Kenya - GPU Programming with CUDA and Python

Nigeria - GPU Programming with CUDA and Python

Botswana - GPU Programming with CUDA and Python

Slovenia - GPU Programming with CUDA and Python

Croatia - GPU Programming with CUDA and Python

Serbia - GPU Programming with CUDA and Python

Bhutan - GPU Programming with CUDA and Python

Nepal - GPU Programming with CUDA and Python