ucb-bar / gemmini

Berkeley's Spatial Array Generator
Other
806 stars 168 forks source link

Simulator Hang on High Perf Gemmini SoC config with custom SP/ACC size on Firesim #211

Open hanyax opened 2 years ago

hanyax commented 2 years ago

Hi, we built the high perf Gemmini SoC based on the Gemmini high perf inference config.The Spike simulation of this config passes. However, we tried to run this through FireSim but the simulation hangs on the Called systolic conv layer. The assertion message is:

module: Scratchpad, path: FireSim.lazyModule.system.tile_prci_domain.tile_reset_domain.tile.gemmini.spad] Assertion failed: Execute controller write to AccumulatorMem was skipped

We had no problem simulating the default inference version on fireSim. I am wondering what exactly do I need to change when simulate a high performance configuration on FireSim? how is the SP/ACC size in config.scala related to the band/acc_rows in param.h? and do I need to change the beatByte in Gemmini config to 32 and blockSize to 128?

Thanks!

hngenc commented 2 years ago

Gemmini should create a new gemmini_params.h file for you when you build a new config. You shouldn't need to change it yourself. But if you do want to change it yourself, then your change sounds correct to me.

I suspect that Gemmini won't work with non-power-of-2 memory sizes. Maybe try 1024 KB instead of 768 KB?

Also, you don't need to chang beatByte or blockSize. Those tell Gemmini how to interface with the external memory system, and changing them can be a little tricky.