我正在尝试在 GPU 上运行内核并在主机(CPU)上进行额外的计算。我看到了这个效果:
只有内核需要大约 2000 毫秒:
clEnqueueNDRangeKernel ...
clFinish(或 clWaitForEvents,我都试过了)
我用 sleep(10) 在 CPU 上模拟了额外的计算:
clEnqueueNDRangeKernel ...
睡眠(10);
clFinish(或 clWaitForEvents)
理论上内核应该在 GPU 上运行,并且在 10 秒睡眠后内核应该完成。但是时间测量表明这一切都需要 12000 毫秒而不是 10000 毫秒。
clFinish 或 clWaitForEvents 是调用内核启动还是我错过了什么?
我正在使用 AMD Fusion CPU/GPU 和 Linux。
非常感谢。