Tantárgy adatlapja
Description of the subject:
- CUDA Programming Fundamentals
- Memory Management and Optimization
- Thread Synchronization and Parallel Patterns
- Performance Tuning and Profiling
- Advanced Memory Techniques
- Parallel Algorithm Implementation
- Multi-GPU Programming
- GPU Libraries and Frameworks
- Case Studies and Applications
List of required and recommanded literature:
CUDA by Example: An Introduction to General-Purpose GPU Programming by Jason Sanders and Edward Kandrot (2010)
Programming Massively Parallel Processors: A Hands-on Approach by David B. Kirk and Wen-mei W. Hwu (4th edition, 2022)
List of required and recommanded competences:
Programming Language Proficiency: Mastery of C/C++, Python, and CUDA programming languages, which are essential for GPU development
GPU Architecture Understanding: Ability to analyze GPU architecture, assess its advantages, and identify potential software optimizations
Parallel Computing Principles: Understanding of threads, blocks, grids, and how to optimize algorithms for parallel execution
Memory Management: Knowledge of GPU memory types (global, shared, local, constant, texture) and optimization techniques like memory coalescing
Performance Profiling and Optimization: Proficiency with tools like NVIDIA Nsight Systems and NVIDIA Visual Profiler to identify and address performance bottlenecks