Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Novice
259 Views

Wall Clock Time on Device

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
Highlighted
239 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

0 Kudos
Highlighted
Novice
237 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

0 Kudos
Highlighted
217 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

0 Kudos
Highlighted
Novice
211 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

0 Kudos
Highlighted
197 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


0 Kudos
Highlighted
Novice
195 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

Tags (1)
0 Kudos
Highlighted
147 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