I made this project as an assignment for one of my courses at DAE. We had to choose a small research topic ourselves. Because I'm very interested in graphics, I wanted to try and make a boids algorithm using the GPU.
I started from an empty project. I implemented OpenGL to render everything. For the computations itself I implemented OpenCL.
The goal I set for myself was to have 20,000 boids at 60fps. In the final result I managed to have 20,000 boids running at ~197fps.
While making this project I learned a lot about optimizing code for the GPU. The project also helped me learn a lot about the GPU in general.
Because I didn't seem to find any debugging tools for OpenCL kernels I had to do more myself. This helped me to become better at debugging my code.
In the end I feel like the 2-3 weeks I worked on this have teached me a lot about programming in general. Because all my "fancy" tools I have in C++ aren't there in OpenCL C.