Intel® High Level Design
Support for Intel® High Level Synthesis Compiler, DSP Builder, OneAPI for Intel® FPGAs, Intel® FPGA SDK for OpenCL™
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
438 Discussions

Wall Clock Time on Device

tde_m
Novice
447 Views

Hello,

is there a way in Intel FPGA OpenCL to get the wall clock time (in clock cycles) directly on the device?

This could be useful, for example, to profile the occurrence of certain events.

 

Thanks

0 Kudos
7 Replies
AnilErinch_A_Intel
427 Views

Hi , 

You can use the OpenCL profiling to get the delay information. 

Please see the below link for the reference. 

https://software.intel.com/content/www/us/en/develop/articles/intel-sdk-for-opencl-applications-perf...

Thanks and Regards

Anil

tde_m
Novice
425 Views

Hi Anil,

thanks for your reply.
As far as I know, OpenCL profiling events can be used to get timings at the "kernel level" (e.g. the entire kernel execution time).

Instead, I was wondering if there is a way directly on device to get timing information (e.g. the number of clock cycles that passes between two events).

Thanks

AnilErinch_A_Intel
405 Views

Hi , 

It turns out that  Intel® VTune™ Profiler can be used to measure the wall time for events as you have mentioned. 

Please see the link below for more information about VTune profiler. 

https://software.intel.com/content/www/us/en/develop/tools/vtune-profiler.html

Thanks and Regards

Anil

tde_m
Novice
399 Views

Dear Anil,

thanks for your reply, but it doesn't seem that Vtune can do what I was asking for.
It seems that with vtune I can profile CPU/FPGA interaction (preview feature), similar to what I can do with OpenCL events.

I was asking if there is the possibility to count clock cycles (or any other time units) directly on the device, pretty much like one takes the clock cycles (or the wall clock time) on the CPU.
If this can be done with Vtune as well, can you please point me to the exact documentation?

Thanks for your help,
Tiziano

AnilErinch_A_Intel
385 Views

Hi ,

You have two other options also to measure the time.

Method1:


cl_int status;

cl_ulong start, end, elapsed_time;

cl::Event myevent();

cl::CommandQueue myqueue(context, device, CL_QUEUE_PROFILING_ENABLE, &status);

myqueue.enqueue…(…, &myevent);

status = myevent.getProfilingInfo(CL_PROFILING_COMMAND_START, &start);

status = myevent.getProfilingInfo(CL_PROFILING_COMMAND_END, &end, NULL);

elapsed_time = end - start;//Time it took for the task to run in nanoseconds

Method2:

You can also use the dynamic profiler described here on this YouTube video. https://youtu.be/nyivIknJaV8?t=2437


Thanks and Regards

Anil


tde_m
Novice
383 Views

Hi Anil,

yes, I was aware of these solutions.

But none of them allow me what I wanted (measure time directly on device).

Should I assume that there is no way of obtaining the wall clock time / a clock cycle counter directly on the device?

 

Thanks

AnilErinch_A_Intel
335 Views

Hi Tiziano,

There is no support to have a clock counter on device which will read the real time information ,other than the methods suggested so far. If any such support comes in future , I will keep you updated.

Thanks and Regards

Anil


Reply