0

OpenCL プログラムのパフォーマンス/タイミング/イベント分析用の単純なプロファイリング ツール (winOS)を作成するタスクがあります。誰かが開始方法についてアドバイスをくれますか?

4

2 に答える 2

1

最も単純なもので、すべてのプラットフォームで正確に動作します:

  cl_event perfEvent;
  cl_ulong start=0, end=0;
  float t_kernel;

  /* Enqueue kernel */
  clEnqueueNDRangeKernel(commandQueue, kernel, 1, NULL, globalWorkSize, localWorkSize, 0, NULL, &perfEvent);
  clWaitForEvents( 1, &perfEvent );

  /* Get the execution time */
  clGetEventProfilingInfo(perfEvent, CL_PROFILING_COMMAND_START, sizeof(cl_ulong), &start, NULL);
  clGetEventProfilingInfo(perfEvent, CL_PROFILING_COMMAND_END, sizeof(cl_ulong), &end, NULL);
  t_kernel = (end-start)/1000000.0f;
  std::cout << t_kernel << std::endl;
于 2012-06-22T01:29:52.727 に答える