openCL-系统装置的信息获取
来源:互联网 发布:浙师大行知学院官网 编辑:程序博客网 时间:2024/05/18 00:37
获取电脑装置信息的有两种方法,一是通过doc窗口获得,第二个是通过程序
一.doc窗口获得
输入clinfo,可以获得相应的信息
二 程序
这里是用的openCL的API获得
#include <iostream>#include <string> #include <vector>#include <CL/cl.h> int main(){cl_int err;cl_uint num;//取得 platform 的数目err = clGetPlatformIDs(0,0,&num);if(err !=CL_SUCCESS){std::cerr<<"Unable to get platforms\n";return 0;}//取得platform的IDstd::vector<cl_platform_id> platforms(num); err = clGetPlatformIDs(num,&platforms[0],&num);std::cout<<"num="<<num<<std::endl; if(err != CL_SUCCESS){std::cerr<<"Unable to get platform ID"<<std::endl;return 0;} //获得OpenCL contextcl_context_properties prop[] = {CL_CONTEXT_PLATFORM, reinterpret_cast<cl_context_properties>(platforms[0]),0};cl_context context = clCreateContextFromType(prop, CL_DEVICE_TYPE_DEFAULT, NULL,NULL,NULL);if(context == 0){std::cerr << "Can't create OpenCL context\n"; return 0;}/*clCreateContextFromType 是一个 OpenCL 的 API,它可以从指定的装置类別中,建立一个 OpenCL context。第一个参数是指定 context 的 property。在 OpenCL 中,是透过一个 property 的阵列,以「property 种类」及「property 內容」成对出现,并以 0 做为结束。例如,以上面的例子来说,要指定的 property 种类是 CL_CONTEXT_PLATFORM,即要使用的 platform ID,而 property 內容则是由之前取得的 platform ID 中的第一个(即 platforms[0])。由于 property 的內容可能是不同的资料型态,因此需要使用 reinterpret_cast 来进行强制转型。 第二个参数可以指定要使用的装置类別。目前可以使用的类別包括:CL_DEVICE_TYPE_CPU:使用 CPU 装置CL_DEVICE_TYPE_GPU:使用显示晶片装置CL_DEVICE_TYPE_ACCELERATOR:特定的 OpenCL 加速装置,例如 CELLCL_DEVICE_TYPE_DEFAULT:系统预设的 OpenCL 装置CL_DEVICE_TYPE_ALL:所有系统计中的 OpenCL 装置 这里使用的是 CL_DEVICE_TYPE_DEFAULT,也就是指定使用预设的装置。另外,在这里,直接使用了之前取得的 OpenCL platform ID 中的第一个 ID(实际的程式中,可能会需要让使用者可以指定要使用哪一个 platform)。 如果建立 OpenCL context 失败,会传回 0。因此,要进行检查,并显示错误讯息。如果建立成功的话,在使用完后,要记得将 context 释放。这可以透过呼叫 clReleaseContext 来达成。*/ //clReleaseContext(context); //获得装置列表 size_t cb; clGetContextInfo(context,CL_CONTEXT_DEVICES,0,NULL,&cb); std::vector<cl_device_id> devices(cb / sizeof(cl_device_id)); clGetContextInfo(context,CL_CONTEXT_DEVICES,cb, &devices[0], 0); clGetDeviceInfo(devices[0], CL_DEVICE_NAME, 0, NULL, &cb); //获得装置名称 std::string devname; devname.resize(cb); clGetDeviceInfo(devices[0], CL_DEVICE_NAME, cb, &devname[0], 0); std::cout << "Device: " << devname.c_str() << "\n"; //释放 clReleaseContext(context);return 0;}
- openCL-系统装置的信息获取
- OpenCL 获取Program信息
- 系统信息的获取!
- 系统信息的获取
- Android获取当前装置屏幕信息
- 获取Solaris的系统信息
- 获取系统的进程信息
- 获取系统的联系人信息
- 获取系统的配置信息
- 获取系统信息的函数
- 获取系统的相关信息
- Android 系统信息的获取
- 客户端界面信息的提供方法、系统和客户端界面生成装置
- iOS获取设备型号、装置类型等信息
- Android-获取系统的应用程序的信息
- java获取系统信息:java的信息、操作系统的信息、用户的信息、虚拟机的信息、系统设置的信息。
- 获取Windows系统的进程运行信息
- 使用Environment 来获取系统的信息
- 自作标签
- 电脑崩溃了
- 使用EL表达式分别获取 某个 web 域 中的对象,访问 javabean 的属性、访问 list 集合、访问 map 集合、访问数组
- 抽象类和接口的区别
- 二叉树的先序、中序、后序遍历
- openCL-系统装置的信息获取
- 纪念自己的第一个应用上线
- 频度和STL
- 正则相关
- 说女程序员&&女工程人员说脏话
- 管道过滤器的实现---java语言
- UVA 10313 Pay the Price
- 对费用流消负圈的小小理解
- ubuntu 10.10中安装openssh-server失败