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