Skip to content

500 ms kernel execution latency on ZynqMP #9737

@apinas

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions