GPU Programming with CUDA and Python ( cudapython | 14 hours )
- Python programming experience
- Experience with NumPy (ndarrays, ufuncs, etc.)
Audience
- Developers
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.
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
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