Profiling: Offset between execution and other events
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 686
- Forks
- 549
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 70
Description
Dear Maintainers,
Thanks for providing this library!
I use the latest master branch, but have observed the same issue with the stable release binaries provided on the Xilinx Website. I run Ubuntu 22.04.5 LTS with kernel 5.15.0-119-generic, and an Alveo U200. I use Vitis 2024.2.
I have compiled my kernel with profiling enabled and profile my test application with
[Debug]
device_trace=fine
sc_profile=true
trace_buffer_size=100M
host_trace=true
device_counters=true
Looking at the timeline trace in vitis_analyzer, I see that the compute unit's execution is reported to appear earlier than it is actually the case:
If you ignore the long duration calls at the beginning (those are just setting up some buffers), one can see how the execution of the kernels (yellow blocks are xrt::run::wait calls) begins around 810ms in the trace. However, the kernel execution at the bottom shows that the kernels already start being executed around 760ms. Looking at the end of the trace, the same offset still appears (roughly), so it seems like there is just some constant offset between the timestamps in the alveo card and the PC.
An example of such a xrt.run_summary where this behavior appears is attached (different than the one shown in the screenshot).
I hope you can have a look at this and let me know if you need further information!
Christian
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source file or test entry point is named. Start by inspecting the attached profiling_offset.zip and its xrt.run_summary in Vitis Analyzer, then reproduce the timeline with the stated Ubuntu, kernel, Alveo U200, and Vitis versions. Done means the host and device execution timestamps align, or the constant offset is characterized with a clear cause and regression coverage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100