Collectable class #262
-
In CoreModel's Execute.hpp, I see that there's an example of a pipeline collector object: sparta::collection::Collectable collected_inst_; I also see examples with the execution time of the instruction is being collected: collected_inst_.collectWithDuration(ex_inst, exe_time); However I'm not seeing where this data is being used in the final report stats. Am I missing something here? What's the intended usage of this class? Separately, is there a good example of how to go about collecting histograms of different latencies (say for memory responses)? The intent is to be able at end of simulation to display a histogram of all encountered latencies. I've only seen histograms being output for sparta::Queue objects but not for anything else. Thanks! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
Good questions. When building a sparta model, there are three major focus areas for development:
When all three are in place (like in the Core Example) the performance architect can run the model and collect data to help find performance related issues. That data is collected using modeler-added instances of Counter, Histogram Counters (many examples here's one), etc as part of the Statistic APIs (see an example here). These counters are automatically collected by the framework and provided in a report either at the end of simulation or even during simulation at phases the perf architect requests (like every N instructions completed). The command line Collectables and Collection are different and are not related to reporting nor statistics. They are related to data collection similar to a VCD/fsdb data dump in hardware. By default the sparta modeling framework will not collect any signal-based information without the modeler explicitly adding collectors for that data. This is to keep the performance of the simulation high and not clutter generated output. When collectors are added and enabled, this data is collected on every cycle and dumped into a database. This is typically called "generating a pipeout." The command |
Beta Was this translation helpful? Give feedback.
-
There is a class called |
Beta Was this translation helpful? Give feedback.
Good questions. When building a sparta model, there are three major focus areas for development:
When all three are in place (like in the Core Example) the performance architect can run the model and collect data to help find performance related issues. That data is collected using modeler-adde…