【发布时间】:2015-08-24 20:32:52
【问题描述】:
我在 GPU 上的 opencl 上实现了一些图像处理。在主机程序上,我启动此内核 4 次,总时间约为 13 毫秒(在 AMD 分析器上),我认为这是一个很好的结果,但如果我通过 QueryPerformanceTimer 测量主机上的内核执行时间,它显示大约 26 毫秒。 clEnqueueNDRangeKernel 执行时间小于 1 毫秒。 26-13 毫秒在哪里?如何修复它?我使用 AMD SDK 3.0 在 GPU 1:AMD Radeon HD 6900 系列上启动它。如果我启动内核一次,但在内核中我添加 4 次循环结果是相同的。
【问题讨论】:
-
可能是你在将内核入队后没有阻塞,你得到的是提交内核到队列所花费的时间——而不是内核执行时间。楼主能发一下代码吗?