【发布时间】:2018-03-14 23:58:51
【问题描述】:
我有一个程序将一堆东西排入命令队列,然后尝试 clFlush() 它。我猜有时 clFlush 会失败,因为它是 CL_OUT_OF_HOST_MEMORY 或 CL_OUT_OF_RESOURCES。所以我的问题是,如果这些原因之一是导致失败的原因,那么等待一段时间然后重试是否安全,或者这种失败会持续存在吗?
【问题讨论】:
-
有趣。规范并没有说明如何推理这些错误。考虑到 OpenGL 规范的外观,我会说它是“安全的”,但很难说重试是否能成功。问:你为什么还要猜测?应该很容易确定是哪一个……
-
谢谢,我想我只需要尝试并希望最好。至于返回值,在我正在工作的环境中尝试获取返回值会非常麻烦,否则我肯定会写它来打印错误:)
-
如果 clFlush 或 clFinish 返回错误,这可能是由于在您调用它们之前排队的东西。在您排队的每件事之后尝试 clFinish 以找出导致问题的原因(可能是 clEnqueueNDRangeKernel)。
标签: opencl