Timing execution of OpenCL kernels

前端 未结 1 609
长发绾君心
长发绾君心 2021-01-21 07:36

Is this a correct way of timing kernel execution time for OpenCL? I am quite keen on using the c++ wrapper (which unfortunately does not have many examples of timings).

相关标签:
1条回答
  • 2021-01-21 08:27

    I think your approach should work just fine (is it not?). Alternately, if you want to time each call, you can pass an event to enqueueNDRangeKernel and call getProfilingInfo on that enqueueNDRangeKernel.

    cl::Event evt;
    err = queue.enqueueNDRangeKernel(kernel, cl::NullRange, cl::NDRange(512), cl::NullRange, NULL, &evt);
    evt.wait();
    elapsed += evt.getProfilingInfo<CL_PROFILING_COMMAND_END>() -
                evt.getProfilingInfo<CL_PROFILING_COMMAND_START>();
    
    0 讨论(0)
提交回复
热议问题