Course Outline
Introduction
Grasping the Core Principles of Heterogeneous Computing Approaches
The Rationale for Parallel Computing: Recognizing the Need for Parallelism
Multi-Core Processors: Architectural Insights and Design Considerations
Foundations of Threads, Thread Mechanics, and Key Concepts in Parallel Programming
Exploring the Fundamentals of GPU Software Optimization Workflows
OpenMP: The Standard for Directive-Based Parallel Programming
Practical Demonstration of Various Programs on Multicore Machines
Introduction to GPU Computing
Leveraging GPUs for Parallel Computing
The GPU Programming Model
Practical Demonstration of Various Programs on GPUs
SDKs, Toolkits, and Setting Up the GPU Environment
Utilizing Various Libraries
Demonstrating GPU Capabilities and Tools with Sample Programs and OpenACC
Comprehending the CUDA Programming Model
Mastering the CUDA Architecture
Setting Up and Exploring CUDA Development Environments
Working with the CUDA Runtime API
Understanding the CUDA Memory Model
Exploring Extended CUDA API Features
Efficient Global Memory Access in CUDA: Strategies for Global Memory Optimization
Optimizing Data Transfers in CUDA Using CUDA Streams
Leveraging Shared Memory in CUDA
Understanding and Applying Atomic Operations and Instructions in CUDA
Case Study: Basic Digital Image Processing with CUDA
Working with Multi-GPU Programming
Advanced Hardware Profiling and Sampling on NVIDIA / CUDA
Utilizing the CUDA Dynamic Parallelism API for Dynamic Kernel Launch
Summary and Conclusion
Requirements
- C Programming
- Linux GCC
Testimonials (1)
Trainers energy and humor.