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/