Skip to content

OpenCL:Events

Profile example

The following code snippet measures kernel execution using the OpenCL* profiling events (error handling is omitted):

g_cmd_queue = clCreateCommandQueue(CL_QUEUE_PROFILING_ENABLE, NULL);
clEnqueueNDRangeKernel(g_cmd_queue,, &perf_event);
clWaitForEvents(1, &perf_event);
cl_ulong start = 0, end = 0;
clGetEventProfilingInfo(perf_event, CL_PROFILING_COMMAND_START, sizeof(cl_ulong), &start, NULL);
clGetEventProfilingInfo(perf_event, CL_PROFILING_COMMAND_END, sizeof(cl_ulong), &end, NULL);
//END-START gives you hints on kind of “pure HW execution time”
//the resolution of the events is 1e-09 sec
g_NDRangePureExecTimeMs = (cl_double)(end - start)*(cl_double)(1e-06); 

See also

Favorite site

References


  1. OpenCL_Events_-_Tim_Matson_and_Intel.pdf 

  2. SA09-opencl-dg-events-stream.pdf