【发布时间】:2014-09-17 04:57:59
【问题描述】:
我已经使用 clCreateCommandQueue() 创建了多个 OpenCL 队列。
cl_int ret_code = CL_SUCCESS;
cl_command_queue queue1 = clCreateCommandQueue(GPU_context, GPU_device_ID, CL_QUEUE_PROFILING_ENABLE, &ret_code);
...
cl_command_queue queueN = clCreateCommandQueue(GPU_context, GPU_device_ID, CL_QUEUE_PROFILING_ENABLE, &ret_code);
所有队列均无错误地创建。其中一个队列暂时没有命令。所有内核执行都很好,等等。最后我需要释放我创建的队列。所有 clFinish() 都正常,除了一个 - 等待队列,其中没有命令(例如,queueN 中没有命令)。这样
clFinish(queue1);
...
clFinish(queueK);
正确返回,但是
clFinish(queueN);
永远挂起。有什么解决办法?
操作系统是 Ubuntu 12.04 x64。 GPU 是 GeForce GTS450。 OpenCL SDK 1.1
【问题讨论】: