Samaksh, like Matt said the new gem5 (like gem5-gpu) models both a GPU and CPU at the same time, and keeps memory coherent between them.
As for bugs out of your control, you should really only run into serious bugs if you make functional changes to the simulator (say to the coherence protocol) that
the simulator might now be *currently* coded to handle. I haven't run into any bugs that didn't have *something* to do with a change I made or a unique I was using the simulator.
You can probably knock it out in a couple of days and it's really helpful to have the different pieces of the simulator explained .
This will be particularly helpful when studying the code to understand what the simulator is doing. Which you will absolutely have to do :)
I recommend having a good IDE/Editor setup too. I'm running gem5 via my research groups cluster which initially made having an IDE very difficult
and I used GVIM and scripts to find stuff in the codebase and it was miserable lol. If this is your situation I recommend https://github.com/cdr/code-server
which lets you run VsCode in a browser.