1 //函数原型举例 2 cl_int clGetPlatformInfo(cl_platform_id platform, 3 cl_platform_info param_name, 4 size_t param_value_size, 5 void *param_value, 6 size_t *param_value_size_ret)
其中void* param_value为一个指向内存位置的指针,该指针的赋值由之前给定的cl_platform_info param_name决定。下表为param_value可能的返回值。如果param_value是NULL,那么它被忽略。
param_value_size 指定param_value所确定的平台信息所需的内存的长度,以byte为单位,这个size必须>=表中数据类型的长度。
param_value_size_ret 返回由param_value指定的平台信息的实际长度,如果是NULL,那么被忽略。
通常这个函数会被调用两次
cl_int error = 0;
size_t paramSize = 0;
//获取此时paramSize指向的平台信息的实际长度size的大小
error = clGetPlatformInfo(id, param_name, 0, NULL, ¶mSize);
/*根据之前size的大小开辟所需存储平台信息的内存长度,一般平台信息以char*类型居多,
视具体情况分析*/
char *moreInfo = (char*)malloc(sizeof(char*) * paramSize);
//根据param_name获取平台信息,并赋值给moreInfo
error = clGetPlatformInfo(id, param_name, paramSize, moreInfo, NULL);
printf("%s", moreInfo); //输出平台信息
free(moreInfo);
参考https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/