-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Profiling] Visualizations: Cycle flame graph, frequency flame graph, timeline view #2284
Conversation
…I wrote 3 months ago
…lled twice in a row
Hey @ayakayorihiro. This PR has a couple of flamegraphs that don't seem to be connected to any inputs or tests. Can you either (1) remove them, or (2) connect them to a test suite? If these are needed for testing/evaluation of a current paper, can you create a new repo to store those changes? |
The flame graphs that I included in this PR were me sketching out what a more ADL-friendly flame graph would look like, as opposed to what the profiler currently produces, so in a sense they're more "notes for the future"/"proof of concept" than anything connected to a concrete test. I can remove them from the repo if you think it's not appropriate to keep here though! They just seemed too small to create a whole new repo for, but I can do that in a quick separate PR + private repo. |
Got it! I've found that having a private repo to track these kinds of design notes can be useful so I would recommend using one for ideas/sketches (and linking to it in issues and discussions when appropriate). My worry with these kinds of files is that they will remain committed in the repo and bit rot away. |
Gotcha! Makes sense, that sounds like a good plan :) |
Done! #2286 |
The profiling script (
get-profile-counts-info.sh
) now produces visualizations!flame.svg
can be viewed using your favorite web browser. For any group, it shows the "call stack" and the number of cycles it was active for.frequency-flame.svg
can also be viewed using your favorite web browser. For any group, it shows the "call stack" and the number of times the group was active.timeline.json
is a JSON file in the Google Trace File Format. You can visualize the timeline using Perfetto UI.The biggest caveat to the profiler right now is that the visualizations only work for non-optimized, sequential (i.e. no
par
) Calyx programs. I will work on expanding the profiler's capabilities in the near future (after finding some example use cases where knowing performance information was helpful).