教程OpenCl事件处理

时间:2010-09-17 10:48:46

标签: event-handling opencl

在我的上一个问题OpenCl cleanup causes segfault.中,有人暗示缺少事件处理,即不等待代码完成,可能导致seg错误。从那时起,我再次查看我使用的教程,但他们没有注意事件(Matrix Multiplication 1 (OpenCL)NVIDIA_OpenCL_GettingStartedLinux.pdf)或详细讨论它(对我来说)是可以理解的。

您是否了解OpenCL中where and how to wait的教程?

的Merci!

1 个答案:

答案 0 :(得分:6)

我没有关于OpenCL事件的教程,我不是专家,但是因为没有其他人在回应......

根据经验,您需要等待任何名为clEnqueue*的函数。这些函数在作业完成之前立即返回。确保队列完成的最简单方法是调用clFinish()。在整个队列完成之前,它不会返回。

如果你想获得一点点发烧友,大多数clEnqueue*函数都有一个可以传递的可选cl_event参数。你可以使用clGetEventInfo()检查特定事件,并且您可以等待特定的一组事件以clWaitForEvents()完成。