我怎么知道我的OpenCL内核在GPU上运行?

时间:2014-04-16 23:07:59

标签: opencl gpu

我怎样才能100%确定我的opencl内核实际上是在GPU上运行而不是在CPU上运行。我无法理解这一点,因为openCL内核也可以在CPU上运行。这里有什么指示?

1 个答案:

答案 0 :(得分:1)

使用clCreateCommandQueue创建命令队列时,会传入device。这将是用于排队到此队列的内核的设备。

通过查询CL_DEVICE_TYPE,可以通过clGetDeviceInfo找到这是否是GPU。它将返回一个或

的组合
CL_DEVICE_TYPE_CPU
CL_DEVICE_TYPE_GPU
CL_DEVICE_TYPE_ACCELERATOR
CL_DEVICE_TYPE_DEFAULT
CL_DEVICE_TYPE_CUSTOM 

当您首先获得设备ID时,这些是您传递给clGetDeviceIDs的相同类型。因此,您可能希望在开始时将此查询限制为CL_DEVICE_TYPE_GPU,以便您只获取GPU的设备ID。