【问题标题】:How the OS and the Driver effects the OpenCL kernel timing?操作系统和驱动程序如何影响 OpenCL 内核时序?
【发布时间】:2017-06-23 04:58:36
【问题描述】:

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

1- CPU Timers .. 但我们需要考虑 OCL 函数是 非阻塞 因此我们需要使用 @ 987654321@ 实现全吞吐量的例程。

2- GPU 计时器 .. 使用 clGetEventProfilingInfo() 例程并在 clCreateCommandQueue()clSetCommandQueueProperty()routines 的属性参数中设置 CL_QUEUE_PROFILING_ENABLE 标志。

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

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

【问题讨论】:

    标签: opencl opencl-c


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-04-23
      • 2015-05-26
      • 2016-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2022-11-29
      相关资源
      最近更新 更多