操作系统和驱动程序如何影响OpenCL内核的时序?

时间:2017-05-04 19:41:27

标签: opencl opencl-c

为了测量OpenCL内核执行时间,我们使用:

1- CPU计时器 ..但我们需要考虑OCL功能 非阻塞 因此我们需要使用{ {1}}实现全部吞吐量的例程。

2- GPU计时器 ..正在使用clFinish()例程,并在clGetEventProfilingInfo()或{{1}的属性参数中设置CL_QUEUE_PROFILING_ENABLE标志}例程。

操作系统和驱动程序版本如何影响用于衡量内核执行时间的计时器的准确性?

我所知道的是,我们需要使用至少一个内核调用来预热设备,以便在一开始就吸收OpenCL资源分配的延迟。

1 个答案:

答案 0 :(得分:0)

1-如果由于非阻塞内核启动而只使用CPU时序,花费在驱动程序上的时间,甚至由于操作系统视角的上下文切换,它可能会有所不同,您将无法获得准确的时序。 2- GPU定时器依赖于GPU硬件计数器。使用事件来读取计数器将为您提供最准确的计时。由于CPU或操作系统不会插入GPU硬件计数器,因此效果将无效。唯一可能影响的情况是驱动程序处理硬件计数器的方式。

预热部分用于数据传输和内存分配,因此不会影响硬件计数器的行为。