Course Outline
Introduction
Core Principles of Heterogeneous Computing
The Role of Parallel Computing: Addressing Modern Computational Needs
Multi-Core Processor Architecture and Design
Threads and Parallel Programming Fundamentals
Basics of GPU Software Optimization
OpenMP: Directive-Based Parallel Programming Standards
Practical Demonstration of Multicore Programs
Foundations of GPU Computing
Leveraging GPUs for Parallel Computing
The GPU Programming Model
Hands-on GPU Programming Exercises
GPU SDKs, Toolkits, and Environment Setup
Utilizing Essential Libraries
Exploring GPU Tools, OpenACC, and Sample Implementations
The CUDA Programming Model
Architectural Insights into CUDA
Configuring CUDA Development Environments
Integration with the CUDA Runtime API
CUDA Memory Management Strategies
Advanced CUDA API Capabilities
Efficient Global Memory Access and Optimization in CUDA
Enhancing Data Transfer via CUDA Streams
Implementing Shared Memory in CUDA
Atomic Operations and Instructions in CUDA
Case Study: Digital Image Processing with CUDA
Multi-GPU Programming Techniques
Advanced Hardware Profiling and Sampling on NVIDIA CUDA
Dynamic Kernel Launching via CUDA Dynamic Parallelism API
Summary and Conclusion
Requirements
- C Programming
- Linux GCC
Testimonials (1)
Trainers energy and humor.