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);
すべてのキューがエラーなしで作成されます。そのキューの 1 つには、しばらくコマンドがありません。すべてのカーネルの実行は正常に行われます。最後に、作成したキューを解放する必要があります。すべての clFinish() は、コマンドが含まれていないキューを待機する 1 つを除いて正常に動作します (たとえば、キュー N にはコマンドが含まれていません)。となることによって
clFinish(queue1);
...
clFinish(queueK);
正しく戻りますが、
clFinish(queueN);
永久にハングアップします。解決策は何ですか?
OSはUbuntu 12.04 x64です。GPUはGeForce GTS450です。OpenCL SDK 1.1