Thank you for open-sourcing this impressive project!
While going over your code, I had a couple of questions.
- In function
simulate_systolic_array_cycle_count(), in /software_model/matmul.py, from line 1368 to line 1402, why is it returning the cycles based on analytical calculation? Are they based on the assumption of double-buffering?
In fact, I actually do agree that those calculations would be highly accurate. Then, my question is, why bother with the ScaleSim in the first place? Isn't that part also be replaced by pencil & paper calculation, instead of "simulating" the systolic array at cycle-level, and creating lookup-table based on those?
Thank you.