opencl学习笔记(2)获取平台和设备信息

opencl 可以通过clGetPlatformInfo 和 clGetDeviceInfo获取平台和设备信息,分别包括以下类别的信息

1. CL_PLATFORM_PROFILE  : FULL_PROFILE(普通版本) 和 EMBEDDED_PROFILE(嵌入式版本)

2. CL_PLATFORM_VERSION : OpenCL版本号

3. CL_PLATFORM_NUMETRIC_VERSION : 更为详细的版本信息

4. CL_PLATFORM_NAME: 平台名称

5. CL_PLATFORM_VENDER: 平台供应商名称

6. CL_PLATFORM_EXTENSIONS: 平台支持的OpenCL扩展列表

7. CL_PLATFROM_EXTENSIONS_WITH_VERSIONS: 在第6项基础上添加了版本信息

8. CL_PLATFROM_HOST_TIMER_RESOLUTION: host timer 分辨率? 不太了解

然后写个代码测试一下

···

#include <CL/opencl.h>

#include <iostream>

int main(int argc, char** argv)

{

cl_int err;

cl_platform_id platform;

err = clGetPlatformIDs(1, &platform, nullptr);

if (err != CL_SUCCESS)

{

std::cout << "No platforms !" << std::endl;

return -1;

}

char info[30];

cl_platform_info info_descriptor_list[] = {

CL_PLATFORM_PROFILE,

CL_PLATFORM_VERSION,

CL_PLATFORM_NUMERIC_VERSION,

CL_PLATFORM_NAME,

CL_PLATFORM_VENDOR,

CL_PLATFORM_EXTENSIONS,

CL_PLATFORM_EXTENSIONS_WITH_VERSION,

CL_PLATFORM_HOST_TIMER_RESOLUTION,

};

int length = sizeof(info_descriptor_list) / sizeof(info_descriptor_list[0]);

for (int i = 0; i< length; i++)

{

err = clGetPlatformInfo(platform, info_descriptor_list[i], 30, info, NULL);

if (err != CL_SUCCESS)

{

std::cout << "Can not get platform info" << std::endl;

continue;

}

std::cout  << info << std::endl;

}

return 0;

}

得到如下结果,有些信息看来是查不到的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。