- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In my program the execution time of the kernel is more than the execution time of the entire program
In the output screen (Attached Screenshot) 'Execution time of kernel' is measured using 'clGetEventProfilingInfo'
and 'Execution time' is measured using clock_t, similar to this link and it measures the total time taken by the main function
This issue occurs only when I run my code on DevCloud, if I run it on my PC then Execution time > Kernel Execution time
Why is this happening?
int main()
{
.
.
.
start = clock();
.
.
err = clEnqueueNDRangeKernel(queue, multiply_ker, 1, NULL, &global, &local, 0, NULL, &event);
clWaitForEvents(1, &event);
clFinish(queue);
.
.
.
end = clock();
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is possible that the OS is reading the CPU clock incorrectly and setting the wrong value for "CLOCKS_PER_SEC". You can try with the high-precision "clock_gettime" function to see if it makes a difference. You can find the function information here:
https://linux.die.net/man/3/clock_gettime
And an example implementation here:
https://github.com/zohourih/FPGAMemBench/blob/master/common/timer.h
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Vishvas,
Thanks for reaching out us.
Could you please let us know the node in which you are running the application, Is it in FPGA nodes of Devcloud?
Regards,
Chithra
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The node is : s001-n139
And Device is Arria 10 Platform as shown in the screenshot
I compiled the OpenCL code into RTL and ran it on FPGA.
The issue I mentioned only occurs on FPGA, if I simulate it on CPU the timings are proper
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Vishvas,
Thanks for the information. Since your issue is related to FPGA, we are moving this query to FPGA forum for a faster response.
Regards,
Chithra
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is possible that the OS is reading the CPU clock incorrectly and setting the wrong value for "CLOCKS_PER_SEC". You can try with the high-precision "clock_gettime" function to see if it makes a difference. You can find the function information here:
https://linux.die.net/man/3/clock_gettime
And an example implementation here:
https://github.com/zohourih/FPGAMemBench/blob/master/common/timer.h
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi ,
Please let us know whether the issue is resolved using clock_gettime. If not we can look in to further possibilities.
Thanks and Regards
Anil
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I had some issues implementing it, but I was able to complete it now
Thanks a lot for your help!
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page