gpt4 book ai didi

c++ - 在调用 clFinish 或 clWaitForEvents 之前,OpenCL 内核执行不会开始

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:55 24 4
gpt4 key购买 nike

我正在尝试在 GPU 上运行内核并在主机 (CPU) 上进行额外的计算。我看到了这个效果:

只有内核需要大约 2000 毫秒:

clEnqueueNDRangeKernel ...

clFinish (or clWaitForEvents, I tried both)

我使用 sleep(10) 在 CPU 上模拟了额外的计算:

clEnqueueNDRangeKernel ...

sleep(10);

clFinish (or clWaitForEvents)

理论上,内核应该在 GPU 上运行,并且在 10 秒 sleep 后内核应该完成。但是时间测量说这一切都需要 12000ms 而不是 10000。

clFinish 或 clWaitForEvents 调用内核启动还是我错过了什么?

我正在使用 AMD Fusion CPU/GPU 和 Linux。

非常感谢。

最佳答案

尝试在 clEnqueueNDRangeKernel 之后立即调用 clFlush:

clFlush

Issues all previously queued OpenCL commands in a command-queue to the device associated with the command-queue.

http://www.khronos.org/registry/cl/sdk/1.0/docs/man/xhtml/clFlush.html

关于c++ - 在调用 clFinish 或 clWaitForEvents 之前,OpenCL 内核执行不会开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12509587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com