3

在我的最后一个问题中,OpenCl 清理会导致段错误。,有人暗示缺少事件处理,即不等待代码完成,可能会导致段错误。从那以后,我再次查看了我使用的教程,但他们不关注事件(矩阵乘法 1(OpenCL)NVIDIA_OpenCL_GettingStartedLinux.pdf),或者详细讨论它并且(对我而言)可以理解。

你知道where and how to waitOpenCL 的教程吗?

谢谢!

4

1 回答 1

6

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

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

如果您想更高级一点,大多数clEnqueue*函数都有一个cl_event可以传入的可选参数。您可以使用 来检查特定事件clGetEventInfo(),并且可以使用 等待特定事件集完成clWaitForEvents()

于 2010-09-20T23:21:39.973 回答