gpt4 book ai didi

c - 如何获取 EventID 并使用它来获取 GPU 处理内核的实际时间?

转载 作者:行者123 更新时间:2023-11-30 17:56:03 25 4
gpt4 key购买 nike

可能是论坛上更直接、更快速回答的问题之一。我正在开发一个 openCL 项目,我正在尝试找到一种方法来获取 eventID,以便使用 getEvent() 来找出 GPU 处理图像所花费的时间(我正在处理图像)卷积)。有人知道如何做到这一点吗?

谢谢。

最佳答案

任何以 clEnqueue 开头的命令都可以返回 cl_event(或者更准确地说,可以填写您传入的 cl_event 的地址中的内容)。这是创建事件的典型方法,您可以稍后从中查询计时值。

因此,声明一个 cl_event 对象,然后将其地址作为最后一个参数传递给 clEnqueueNDRangeKernel,然后在内核完成运行后(您可以使用 clFinish 或等待事件),使用 cl_event 调用 clGetEventProfilingInfo 并请求 CL_PROFILING_COMMAND_START 和然后 CL_PROFILING_COMMAND_END,减去它们即可得到执行时间。注意:命令队列必须启用分析(包括在属性参数中设置 CL_QUEUE_PROFILING_ENABLE 标志)clCreateCommandQueue)才能正常工作。

最后,请务必执行 clReleaseEvent,否则会泄漏内存。

关于c - 如何获取 EventID 并使用它来获取 GPU 处理内核的实际时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13846948/

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