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;

}

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。