Lower bound on kernel execution time

Open
#9,018 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
cpp

Research direction

Reproduce the reported timing with the empty kernel and the kernel() and wait() calls described in the issue. Trace the XRT execution path involved in launching and waiting for a kernel, then document whether the overhead is expected and identify any supported option or limitation; no source file or test is named.

Written by the indexing model from the issue text.

Description

Hello developers,

While creating a very simple kernel using MLIR-AIE and testing it, I noticed a kind of lower bound on the kernel execution time, using XRT. I measured the time difference between the end of computation of my kernel and the start, and I get around 60 microseconds (so the function kernel() and wait())

Because I was not satisfied by this time, I created an "empty" kernel, doing nothing and moving no data. Using always XRT to call the kernel, I did the same computation to find the time for the kernel to run, and I found something like 45 microseconds.

My questions are

is it normal to have this overhead?
If yes, what are the option? Because actually, my CPU runs my computation faster then, and the NPU would be no need.
Thanks!

Dominant language
C++
Stars
686
Forks
549
Avg merge
2d 4h
Merged PRs (30d)
70

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.

More from Xilinx/XRT

All issues in Xilinx/XRT

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.