Introduction to GPU Programmingwith the CUDA Platform
Marco Dimas [email protected] INFIERI, 2017
Instituto de Matemática e EstatísticaUniversidade de São Paulo
Hardware Acceleration
Percentage of systems with accelerators in the Top500:
Image: top500.org/lists/2016/06/download/TOP500_201606_Poster.pdf [Accessed in 29/07/16]2/7
CUDA C
Programming Model:
• Kernels• Threads hierarchy• Memory hierarchy• Heterogeneous Programming
3/7
CUDA Libraries
Image: developer.nvidia.com/gpu-accelerated-libraries [Accessed in 29/07/16] 4/7
The Lab: Part I
1. Introduction
2. Heterogeneous Computing
3. GPUs
4. CUDA Platform
5. CUDA C
5/7
The Lab: Part II
6. Recapitulation
7. Compiling CUDA Applications
8. Optimization Best Practices
9. Analysing CUDA Applications
10. Otimizing CUDA Applications
11. Conclusion
6/7
Resources
This presentation and all source code are available at GitHub:
• github.com/phrb/intro-cuda
More resources:
• CUDA C: docs.nvidia.com/cuda/cuda-c-programming-guide• CUDA Toolkit: developer.nvidia.com/cuda-toolkit• Best Practices Guide:
• docs.nvidia.com/cuda/cuda-c-best-practices-guide
• GPU Teaching Kit: syllabus.gputeachingkit.com• iPython: ipython.org/notebook.html• Anaconda: continuum.io/downloads
7/7
Introduction to GPU Programmingwith the CUDA Platform
Marco Dimas [email protected] INFIERI, 2017
Instituto de Matemática e EstatísticaUniversidade de São Paulo