OpenCL中的大提交 - >启动延迟

时间:2013-11-28 03:42:13

标签: opencl

我看到提交给AMD GPU并实际执行的内核之间存在大量延迟。我的程序正在执行阻塞写入/读取(使用blocking = CL_TRUE)以确保I / O不干扰内核。然后我使用clGetEventProfilingInfo获取有关内核排队,提交,开始和结束的信息。下面的数据(和代码)显示内核花了大约5秒钟提交,然后运行5秒。通常,看起来提交的时间与运行时间一致。我查看了许多关于内核执行延迟的论坛帖子(例如,http://devgurus.amd.com/thread/166587),但似乎没有解决方案。我已经检查过GPU没有处于低功耗模式。有没有其他人看到这个或有如何诊断它的建议?

write 131.000000 ms
kernel queued->submitted 0.022348 ms
kernel submitted->started 5553.957663 ms
kernel started->ended 5529.893060 ms
read 39.000000 ms

1306       cl_ulong end, queued, start, submit;
1307       clGetEventProfilingInfo(jniContext->exec_event,
1308               CL_PROFILING_COMMAND_QUEUED, sizeof(queued), &queued, NULL);
1309       clGetEventProfilingInfo(jniContext->exec_event,
1310               CL_PROFILING_COMMAND_SUBMIT, sizeof(submit), &submit, NULL);
1311       clGetEventProfilingInfo(jniContext->exec_event,
1312               CL_PROFILING_COMMAND_START, sizeof(start), &start, NULL);
1313       clGetEventProfilingInfo(jniContext->exec_event,
1314               CL_PROFILING_COMMAND_END, sizeof(end), &end, NULL);

1 个答案:

答案 0 :(得分:0)

跟进:从最新发布的驱动程序(2013年5月29日发布的v13.4)升级到最新的beta驱动程序(2013年11月22日发布)后,我们不再看到此性能问题。使用AMD A10-6700在64位Centos上出现此问题,但是如果您看到此问题并且使用不同的芯片组,我建议升级到最新的beta驱动程序并查看是否能解决此问题。