microGPU is a small C++ project that implements a functional model of a GPU to explore and understand GPU architecture. The repository defines classes for threads and warps and builds up to compute units and a scheduler.
Current functionality: microGPU accepts warps into a global collection and schedules them onto compute units, which execute warps in a round-robin fashion. Tests verify that warps are created, assigned, and progressed through pipeline stages; logs record pipeline stage changes with timestamps to validate behavior.
I have added logic to handle simple case of divergence as well.
Compiling the code
-
Compile in debug mode
make
-
Compile in release mode
make BUILD=release
-
Sanitizer mode on s make SAN=1
Built API docs (Doxygen): Documentation
