如何在OpenCL中测量注册使用

时间:2013-11-27 01:27:34

标签: opencl

我注意到用于CUDA的Nvidia Visual Profiler打印出一条显示寄存器使用的行:

Register Ratio = 0.75  ( 24576 / 32768 ) [48 registers per thread] 

是否可以在OpenCL中生成类似的行?

我还没有看到任何OpenCL方式来查询寄存器的数量,或者使用那些寄存器。

1 个答案:

答案 0 :(得分:2)

如DarkZeros所述,它是实现定义的。并且有很好的理由。

OpenCL没有对架构做出假设,因此没有定义单个寄存器比率的通用方法,更不用说根据它进行任何预测。作为AMD硬件的一个例子,你有两种寄存器。标量和向量寄存器。从某种意义上讲,它们是不相交的,它们会独立地溢出等等。

在CPU中,情况又完全不同,编译器甚至可以将不同的工作项组合到一个线程中。

要分析AMD硬件,您需要使用http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/和附带的内核分析器,对于英特尔,您需要使用http://software.intel.com/en-us/vcsource/tools/opencl-sdk