▶ 查询平台和设备的代码以结果,放在这里方便以后逐渐扩充和查询(没有营养)

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cl.h> int main()
{
int i, j;
char info[]; cl_int status;
cl_uint nPlatform;
cl_platform_id *listPlatform;
cl_uint nDevice;
cl_device_id *listDevice;
clGetPlatformIDs(, NULL, &nPlatform);
listPlatform = (cl_platform_id*)malloc(nPlatform * sizeof(cl_platform_id));
clGetPlatformIDs(nPlatform, listPlatform, NULL); for (i = ; i < nPlatform; i++)
{
clGetPlatformInfo(listPlatform[i], CL_PLATFORM_NAME, , info, NULL);
printf("Platfom[%d]:\n\tName\t\t%s", i, info);
clGetPlatformInfo(listPlatform[i], CL_PLATFORM_VERSION, , info, NULL);
printf("\n\tVersion\t\t%s", info);
//clGetPlatformInfo(listPlatform[i], CL_PLATFORM_VENDOR, 1024, info, NULL);
//printf("\n\tVendor\t\t%s", info);
//clGetPlatformInfo(listPlatform[i], CL_PLATFORM_PROFILE, 1024, info, NULL);
//printf("\n\tProfile\t\t%s", info);
clGetPlatformInfo(listPlatform[i], CL_PLATFORM_EXTENSIONS, , info, NULL);
printf("\n\tExtension\t%s", info); clGetDeviceIDs(listPlatform[i], CL_DEVICE_TYPE_ALL, , NULL, &nDevice);
listDevice = (cl_device_id*)malloc(nDevice * sizeof(cl_device_id));
clGetDeviceIDs(listPlatform[i], CL_DEVICE_TYPE_ALL, nDevice, listDevice, NULL); for (j = ; j < nDevice; j++)
{
printf("\n");
clGetDeviceInfo(listDevice[j], CL_DEVICE_NAME, , info, NULL);
printf("\n\tDevice[%d]:\n\tName\t\t%s", j, info);
clGetDeviceInfo(listDevice[j], CL_DEVICE_VERSION, , info, NULL);
printf("\n\tVersion\t\t%s", info);
clGetDeviceInfo(listDevice[j], CL_DEVICE_TYPE, , info, NULL);
switch (info[])
{
case CL_DEVICE_TYPE_DEFAULT:strcpy_s(info, "DEFAULT"); break;
case CL_DEVICE_TYPE_CPU:strcpy_s(info, "CPU"); break;
case CL_DEVICE_TYPE_GPU:strcpy_s(info, "GPU"); break;
case CL_DEVICE_TYPE_ACCELERATOR:strcpy_s(info, "ACCELERATOR"); break;
case CL_DEVICE_TYPE_CUSTOM:strcpy_s(info, "CUSTOM"); break;
case CL_DEVICE_TYPE_ALL:strcpy_s(info, "ALL"); break;
}
printf("\n\tType\t\t%s", info); cl_device_svm_capabilities svm;
clGetDeviceInfo(listDevice[j], CL_DEVICE_VERSION, sizeof(cl_device_svm_capabilities), &svm, NULL);
info[] = '\0';
if (svm & CL_DEVICE_SVM_COARSE_GRAIN_BUFFER)
strcat_s(info, "COARSE_GRAIN_BUFFER ");
if (svm & CL_DEVICE_SVM_FINE_GRAIN_BUFFER)
strcat_s(info, "FINE_GRAIN_BUFFER ");
if (svm & CL_DEVICE_SVM_FINE_GRAIN_SYSTEM)
strcat_s(info, "FINE_GRAIN_SYSTEM ");
if (svm & CL_DEVICE_SVM_ATOMICS)
strcat_s(info, "ATOMICS");
printf("\n\tSVM\t\t%s", info);
}
printf("\n\n");
free(listDevice);
}
free(listPlatform);
getchar();
return ;
}

● 输出结果,我的电脑(需要毙掉 SVM 部分才能运行)

Platfom[]:
Name NVIDIA CUDA
Version OpenCL 1.2 CUDA 9.1.
Extension cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_nv_create_buffer Device[]:
Name GeForce GTX
Version OpenCL 1.2 CUDA
Type GPU

● 输出结果,办公室的电脑(旧)

Platfom[]:
Name AMD Accelerated Parallel Processing
Version OpenCL 2.0 AMD-APP (1800.11)
Extension cl_khr_icd cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_amd_event_callback cl_amd_offline_devices Device[]:
Name Caicos
Version OpenCL 1.2 AMD-APP (1800.11)
Type GPU
SVM FINE_GRAIN_SYSTEM ATOMICS Device[]:
Name Intel(R) Core(TM) i7- CPU @ .40GHz
Version OpenCL 1.2 AMD-APP (1800.11)
Type CPU
SVM FINE_GRAIN_SYSTEM ATOMICS Platfom[]:
Name Intel(R) OpenCL
Version OpenCL 1.2
Extension cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_dx9_media_sharing cl_intel_dx9_media_sharing cl_khr_d3d11_sharing cl_khr_gl_sharing cl_khr_fp64 Device[]:
Name Intel(R) Core(TM) i7- CPU @ .40GHz
Version OpenCL 1.2 (Build )
Type CPU
SVM FINE_GRAIN_SYSTEM ATOMICS

● 输出结果,办公室的电脑(新),不知道为什么出了两个一模一样的平台

Platfom[]:
Name AMD Accelerated Parallel Processing
Version OpenCL 2.0 AMD-APP (2348.3)
Extension cl_khr_icd cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_amd_event_callback cl_amd_offline_devices Device[]:
Name Bonaire
Version OpenCL 2.0 AMD-APP (2348.3)
Type GPU
SVM COARSE_GRAIN_BUFFER FINE_GRAIN_BUFFER FINE_GRAIN_SYSTEM ATOMICS Device[]:
Name Intel(R) Core(TM) i7- CPU @ .40GHz
Version OpenCL 1.2 AMD-APP (2348.3)
Type CPU
SVM COARSE_GRAIN_BUFFER FINE_GRAIN_BUFFER FINE_GRAIN_SYSTEM ATOMICS Platfom[]:
Name AMD Accelerated Parallel Processing
Version OpenCL 2.0 AMD-APP (2348.3)
Extension cl_khr_icd cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_dx9_media_sharing cl_amd_event_callback cl_amd_offline_devices Device[]:
Name Bonaire
Version OpenCL 2.0 AMD-APP (2348.3)
Type GPU
SVM COARSE_GRAIN_BUFFER FINE_GRAIN_BUFFER FINE_GRAIN_SYSTEM ATOMICS Device[]:
Name Intel(R) Core(TM) i7- CPU @ .40GHz
Version OpenCL 1.2 AMD-APP (2348.3)
Type CPU
SVM COARSE_GRAIN_BUFFER FINE_GRAIN_BUFFER FINE_GRAIN_SYSTEM ATOMICS

OpenCL 查询平台和设备的更多相关文章

  1. opencl(2)平台、设备、上下文的获取与信息获取

    1:平台 1)获取平台id cl_int clGetPlatformIDs( cl_uint num_entries,      //想要获取的平台数 cl_platform_id * flatfor ...

  2. XCode教程之 如何在苹果开发者平台添加设备UDID

    XCode教程之 如何在苹果开发者平台添加设备UDID.在Xcode开发中,如何在苹果开发者平台添加新的手机设备UDID,进行测试,具体如下 工具/原料 Apple Developer 方法/步骤 1 ...

  3. 跟我开发NSP(网上查询平台):如何选择开发项目

    我想通过一个真实的项目开发的全过程,记录一下开发过程的点点滴滴,记录一下过程中的前思后想.这个全过程包括,如何选择项目.如何分析项目.如何组织项目开发.如何设计开发流程.如何设计软件的总体架构.如何建 ...

  4. adhoc-海量数据多维自助即席查询平台-mdrill项目开源啦

    adhoc-海量数据多维自助即席查询平台-mdrill项目开源啦 1:mdrill是阿里妈妈-adhoc-海量数据多维自助即席查询平台下的一个子项目. 2:mdrill旨在帮助用户在几秒到几十秒的时间 ...

  5. Wing-AEP平台LWM2M设备接入

    实现Wing-AEP中国电信物联网开放平台,LWM2M设备接入 一.准备 接入模组:BC35-G 平台地址:https://www.ctwing.cn/ 点击右上角控制台 点击左侧栏点击产品中心 二. ...

  6. 通过OpenCL内核代码猜测设备寄存器个数

    在OpenCL标准中,没有给出查看计算设备一共有多少寄存器,至少能分配给每个work-item多少寄存器使用的特征查询.而由于一个段内核代码是否因寄存器紧缺而导致性能严重下降也是一个比较重要的因素,因 ...

  7. c#程序如何从海康ipserver查询获取DVR设备ip地址

    海康威视提供的ipserver可以记录DVR设备的IP地址,并提供一个7071的端口给客户端查询用,我们在c#程序中可以用海康SDK包中的NET_DVR_GetDVRIPByResolveSvr函数来 ...

  8. 技术分享:如何用Solr搭建大数据查询平台

    0×00 开头照例扯淡 自从各种脱裤门事件开始层出不穷,在下就学乖了,各个地方的密码全都改成不一样的,重要帐号的密码定期更换,生怕被人社出祖宗十八代的我,甚至开始用起了假名字,我给自己起一新网名”兴才 ...

  9. Linux平台块设备到字符设备(裸设备)的三种映射方式(转载)

    在Linux平台oracle rac的组建过程中,如果使用ASM+RAW的存储方式的话,由于asm不支持块设备,支持持字符访问设备,所以需要配置将Block Device Drive转变成Charac ...

随机推荐

  1. 使用pip install XX 命令时报错

    在使用pip命令安装的时候,我遇到这样的报错: C:\Users\86962>pip install Appium-Python-Client Collecting Appium-Python- ...

  2. CTF-练习平台-Misc之 再来一道隐写

    十二.再来一道隐写 下载文件后打开,用常用的几个方法都没有找到有用的信息,然后观察图片发现搞度有点低,所以用WinHex打开把图片高度改大,保存.再次打开图片发现flag

  3. Tarjan+缩点【强连通分量】【模板】

    #include<iostream> #include<cstring> #include<algorithm> #include<queue> #in ...

  4. Linux内核时间

    1. printk打印的时间戳 [ 7236.595796] usb 2-1.1: new high-speed USB device number 15 using ehci-platform st ...

  5. day43 数据库知识欠缺的

    一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型 ...

  6. dbt 生产环境使用

    可以使用如下方式: 云主机或者普通的机器 使用 airflow 使用 Sinter, 一个托管的dbt runner 常见问题: 如何管理权限? 可以使用hooks 进行配置用户组以及权限 说明 实际 ...

  7. Jmeter的CSV参数化策略

    前提:准备一份csv文件,数字为1-9即可 线程相当于vu,循环相当于迭代 一.所有线程所有线程共享这一份文件,数据有一个线程拿走了,其他线程就拿不走 例子1:只有1个线程,循环次数2次,那么,按照上 ...

  8. java的关键字:static、final

    java的 static: 性质 静态对象 非静态对象 拥有属性: 是类共同拥有的 是类各对象独立拥有的 内存分配: 内存空间上是固定的 空间在各个附属类里面分配 分配顺序: 先分配静态对象的空间 继 ...

  9. 学hadoop需要什么基础

    最近一段时间一直在接触关于hadoop方面的内容,从刚接触时的一片空白,到现在也能够说清楚一些问题.这中间到底经历过什么只怕也就是只有经过的人才会体会到吧.前几天看到有个人问“学hadoop需要什么基 ...

  10. 使用Angular提交表单

    使用Angular提交表单 我们准备在之前使用的<script>标签中设置我们的Angular应用.所以删除里面的内容,我们就可以开始了. 设置一个Angular应用 步骤为: 1. 加载 ...