You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue lists out first steps for profiling! (Mostly so I can organize my TODOs.) Will update as I move along.
First Pass: Cycle-level performance info at the Calyx level
Metadata generation
Print JSON from TDCC (add another pass option to print JSON instead of the dump)
Write JSON to file
Instead of hacking through the enable assignment, we directly keep track of group to FSM state mappings
Refactor this by directly building a FSMStateInfo when processing enables.
Fix JSON emission to output a single JSON file at the end (when there are multiple TDCC groups, like in language-tutorial-iterate, the individual TDCC FSMs overwrite each other)
Right now (for optimization purposes?) the first group is morphed with the setup. Want to differentiate for more accurate counts of the first group.
Merge dump-fsm and dump-fsm-json for TDCC
Add FSM name information to JSON
If the par arm/component does not yield a FSM, need to output corresponding information (check go and done instead!)
We want information about parentage (if a FSM is managing a par arm, we want to know what the par itself is)?
Make first pass script for reading vcd and outputting group lengths based on FSM values
Remove assumption that there is only one FSM
Remove assumption that each cycle takes 10ms (have a counter mechanism of how many cycles passed between X ms and Y ms)
Sample signals on rising/falling clock edge (comment)
Check out example programs with parallelism
Produce summary: compute the total cycles that a given group was active, the number of times it was active (the number of segments), and the average running time (which is just the quotient of the previous two values).
Multi-component programs:
Fix hardcoding of "TOP.TOP.main.go"
Find edge cases where timing info is not actionable
Don't start counting clock cycles until main.go is 1
Make flame graphs
There is probably a library out there to generate a flame graph.
This issue lists out first steps for profiling! (Mostly so I can organize my TODOs.) Will update as I move along.
First Pass: Cycle-level performance info at the Calyx level
FSMStateInfo
when processing enables.language-tutorial-iterate
, the individual TDCC FSMs overwrite each other)Right now (for optimization purposes?) the first group is morphed with the setup. Want to differentiate for more accurate counts of the first group.dump-fsm
anddump-fsm-json
for TDCCgo
anddone
instead!)"TOP.TOP.main.go"
main.go
is 1The text was updated successfully, but these errors were encountered: