【发布时间】:2016-10-10 21:04:19
【问题描述】:
参考clGetEventProfilingInfo 文档,cl_event 源自clEnqueueNDRangeKernel 可能是:
- CL_PROFILING_COMMAND_QUEUED
当事件标识的命令被排队在命令队列中时 主人。
- CL_PROFILING_COMMAND_SUBMIT
当已入队的事件标识的命令是 由主机提交到与命令队列关联的设备。
- CL_PROFILING_COMMAND_START
当事件标识的命令开始在设备上执行时。
- CL_PROFILING_COMMAND_END
当事件标识的命令已完成在 设备。
假设可视化整个内核分析:
COMMAND_QUEUED -> COMMAND_SUBMIT -> COMMAND_START -> COMMAND_END
&对应的时间线:
Queueing -> Submitting -> Executing
地点:
- 排队 = COMMAND_SUBMIT - COMMAND_QUEUED
- 提交 = COMMAND_START - COMMAND_SUBMIT
- 正在执行 = COMMAND_END - COMMAND_START
问题:
我之前的方程式是否正确?如果是这样,排队和提交之间的真正区别是什么?
换句话说,如果我想把整个过程分为 COMMUNICATION(卸载)时间和 COMPUTATION(执行)时间,什么他们的方程会是什么?
【问题讨论】:
标签: parallel-processing opencl gpu