Xilinx / Xilinx/XRT

Profiling: Offset between execution and other events

Open
#8,971 0 comments 0 reactions 0 assignees View on GitHub

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:

Image

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).

profiling_offset.zip

I hope you can have a look at this and let me know if you need further information!

Christian

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.