-
Notifications
You must be signed in to change notification settings - Fork 17
WIP Caliper integration and instrumentation #130
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
Conversation
5504b98 to
efc3e39
Compare
b43125d to
48b5b29
Compare
needs updates for make build systems
2cd73fe to
e4c3f30
Compare
|
This is super cool! It was awesome to hear about it in the AHM today. I wanted to share one update from Caliper that might be useful to integrate into this PR (or a follow up). Since version 2.12.0 (from November 2024), Caliper has a Python API. It may be interesting to add Caliper support into the Python API of PerfFlow, similar (but much easier) to how you have added it to the C/C++ API. |
|
Absolutely, @ilumsden, it'll be great to have the Caliper Python API integration as well! I'll create an issue for this, |
|
A new PR needs to be opened to replace this one. This PR targeted the old pass manager (work on this was started before we pinned PFA to clang18). |
|
New PR created #190. Closing. |
Supersedes #118
TODO:
find_package(caliper)should follow current pattern with other dependencies (this was initially done before we refactored thefind_packagecalls after running into issues on turing)config/*.cmakefiles to indicate to external software that perfflowaspect was built (or not built) with caliper --> bigger lift as this will require testing integration of PFA+caliper with other software tools, maybe this becomes a second PR, but realistically should be a single PR since external tools will link against these cmake filesCopying over notes from #118:
Couple of things before we can merge:
LLVM function names that get passed to Caliper (eg
_Z3fooRKsinstead of justfoo) look confusing and don't match the original function name. Let's see if we can do better.Caliper should not be "required" library. Many users may not need low-level perf counter details on their workflow and may just want the timeline traces. So, we need to add in an option/flag that determines if PFA should be built with Caliper for users who want something fine grained. With multiple workflow components eg in MuMMI or AHA Moles, we don't need this detail all the time and simple timelines are sufficient.
We need to update the CI to match these build changes (we need to build caliper in the CI tests)
We need to add detailed docs:
CALI_CONFIG=runtime-report ./smoketestorCALI_CONFIG=runtime-report,output=test.cali ./smoketestor something with cali-query) and show the corresponding generated output, and