我将编写一个 OpenCL 程序,它在任务级别处理大量数据(无法进一步并行,但数据量足够高)数据本身是从文件中读取的,结果应该写入另一个文件. 现在我认为让 1 个线程读取文件并将数据推送到内核,而另一个线程获取完成的数据并将其写入文件可能是最好的(最快的)。所以我实际上需要类似 ReadData->CopyToDevice->ExecuteKernel->CopyToHost->WriteData
有没有什么例子,如何做到最好?我会从一个大约 10 个(队列、InputMemory、OutputMemory、Events)的数组开始。第一个线程:读取数据,等待下一个事件条目为空,填充此数组,下一个
第二个线程:事件!=null->waitforevent,写入数据,将事件设置为空或者可能使用 10-Semaphore 而不是检查无效的