This repository contains my assignments and project work for the course GPU Computing taught by Prof. Dr. Holger Fröning at Heidelberg University.
The course introduces GPU architecture and programming with CUDA, focusing on performance optimization, memory consistency, and advanced GPU concepts. It also explores alternatives to CUDA through lectures and practical programming exercises.
| Date | Lecture | Exercise |
|---|---|---|
| 16.10.2025 | 1. Intro | Reading / Amdahl |
| 23.10.2025 | 2. CUDA | Kernel launch, data movement |
| 30.10.2025 | Traveling | |
| 06.11.2025 | 3. Basic Architecture | Global memory |
| 13.11.2025 | 4. Shared Memory | MMULT |
| 20.11.2025 | Traveling | |
| 27.11.2025 | 5. Scheduling Optimizations | MMULT GPU + Optimizations (Bonus) |
| 04.12.2025 | 6. Profiling | |
| 11.12.2025 | 7. Particle Methods | Reduction |
| 18.12.2025 | 8. Host Optimizations | |
| 25.12.2025 | XMAS | n-Body + Optimizations (Bonus) |
| 01.01.2026 | XMAS | |
| 08.01.2026 | 9. Stencil Codes / OpenACC | |
| 15.01.2026 | 10. Consistency / Coherence | Stencil + Optimizations |
| 22.01.2026 | 11. Advanced GPU Features | Exam examples |
| 29.01.2026 | 12. Future | |
| 05.02.2026 | Exam |
- CPU: AMD EPYC 7302P
- GPU: NVIDIA RTX 2080
- OS: Debian 12
- NVIDIA Driver: 580.65.06
- CUDA: 13.0
- Python: 3.12.1
- NumPy: 2.3.4
- Pandas: 2.3.3
- Matplotlib: 3.10.7
| Week | Task | Status |
|---|---|---|
| 01 | Reading / Amdahl | ✅ Done |
| 02 | Kernel launch, data movement | ✅ Done |
| 03 | Global memory | ✅ Done |
| 04 | MMULT | 🔄 In Progresse |
| 05 | MMULT GPU + Optimizations (Bonus) | ⏳ |
| 06 | Reduction | ⏳ |
| 07 | n-Body + Optimizations (Bonus) | ⏳ |
| 08 | Stencil + Optimizations | ⏳ |
This project is released under the BSD 2-Clause License.
You are free to use, modify, and redistribute this software, with or without modifications, as long as the copyright notice and this disclaimer are retained.