在使用OpenCL编程中,需要对GPU设备的底层理解,这样才能更好的进行代码优化。
比如计算单元CU数量,每个CU的执行单元PE数量,每个CU中的共享内存大小等等。只有了解了这些才能更好的使用共享内存,设计核函数的运行参数等。
1.clGetDeviceInfo
OpenCL使用clGetDeviceInfo函数获取设备具体,函数原型如下:
cl_int clGetDeviceInfo (
cl_device_id device, //设备id号
cl_device_info param_name, //枚举变量,要获取的设备信息名称
size_t param_value_size,//参数类型大小
void *param_value,//参数值
size_t *param_value_size_ret //参数类型大小
);
这个函数需要调用两次,第一次获取参数类型大小,第二次获取参数。
2.代码实例
2.1 tool.h 与tool.cpp
2.2 QueryDeviceInfo.cpp
1 #include
2 #include
3 #include "tool.h"
4 #include
5
6 intmain()7 {8 ///Get first available Platform
9 cl_platform_id platform;10 getPlatform(platform);11
12 ///get first available GPU
13 cl_device_id *devices&#