opencl中的clock()

Zk1*_*001 4 cuda gpu opencl

我知道CUDA中有函数clock(),您可以在其中放入内核代码并查询GPU时间.但我想知道OpenCL中是否存在这样的事情?有没有办法在OpenCL中查询GPU时间?(我正在使用NVIDIA的工具包).

voc*_*aro 5

没有OpenCL方法可以直接查询时钟周期.但是,OpenCL确实有一个分析机制,可以在计算设备上公开增量计数器.通过比较有序事件之间的差异,可以测量经过的时间.请参阅clGetEventProfilingInfo.


Gre*_*ith 3

NVIDIA OpenCL SDK 有一个将 Inline PTX 与 OpenCL 结合使用的示例。时钟寄存器可通过内联 PTX 作为特殊寄存器 %clock 进行访问。%clock 在PTX:并行线程执行 ISA手册中进行了描述。您应该能够将 %%laneid 替换为 %%clock。

我从未使用 OpenCL 测试过它,但在 CUDA 中使用它。

请注意,编译器可能会重新排序或删除寄存器读取。