Skip to content

500 ms kernel execution latency on ZynqMP #9737

Description

@apinas

Hello, I have created a dummy kernel to see the XRT latency overhead. It just takes an argument as input but does not write back to memory. Basically:

void basic_kernel(int input_val) {
        int temp;
        temp = input_val + 1;
    }

In my host program I have the following code:

auto krnl = xrt::kernel(device, uuid, "basic_kernel");
xrt::run run(krnl);
run.set_arg(0, dummy_data);
auto t_start = std::chrono::steady_clock::now();
run.start();
run.wait();
auto t_end = std::chrono::steady_clock::now();
auto elapsed_ms = std::chrono::duration_cast<std::chrono::milliseconds>(t_end - t_start).count();

I run this in a loop, and I get ~500ms of elapsed time. I am using the following versions:

Version              : 2.16.0
Branch               : 2023.2
Hash                 : 2865a62b6a417dea523d2d5646154aa94a2cbc28
Hash Date            : 2023-10-06 21:08:57
ZOCL                 : 2.16.0, 2865a62b6a417dea523d2d5646154aa94a2cbc28

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions