This is a step-by-step guide for beginners towards GPGPU structure and CUDA programming. Along with my own explanation, I also referenced some great documents and tutorials so you can discover yourself.
Some concepts are mentioned and explained in this tutorial, including:
- Basic CUDA structure;
- Thread indexing;
- Thread hierarchy;
- Shared memory and conflict management;
- Block reduction;
- Basic understanding of C/C++ is enough to start the tutorial.
This tutorial is in fact my personal notes from the course "Programming with GPGPU" by Dr. Pierre-François Bonnefoi, Université de Limoges. The course (in French only) is available here. On a personal side, I admired his effort and passion to deliver huge course contents and detailed instruction.