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

 #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. HDU1702:ACboy needs your help again!

    ACboy needs your help again! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  2. java反射机制的作用与优点

    java的反射机制就是增加程序的灵活性,避免将程序写死到代码里,例如: 实例化一个 person()对象, 不使用反射, new person(); 如果想变成 实例化 其他类, 那么必须修改源代码, ...

  3. Ubuntu 18.10连接Windows 桌面

    ========================= 适用于Linux连接Windows远程桌面 Linux版本:CentOS.Ubuntu等 1.终端命令安装远程桌面客户端工具,具体命令如下: sud ...

  4. hdu1224 dp(dp + 栈/父亲数组记录路径)

    题意:给定 n 个城市的有趣度,并给出可以从那些城市飞到那些城市.其中第一个城市即起始城市同样也作为终点城市,有趣度为 0,旅行途中只允许按有趣度从低到高旅行,问旅行的有趣度最大是多少,并输出旅行路径 ...

  5. ssh 免 密码登录另一台机器 和 secureCRT的乱码问题

    PS: 就是你把密钥生成好以后,放入B机器中,再登录的时候就已经有了所以就不用验证了 ========================================================= ...

  6. C语言命令行解析函数:getopt/getopt_long

    命令行工具下的参数选项有两种,长选项和短选项.短选项以-开头,后面跟单个字母:长选项以--开头,后面可跟多个字母. 一. getopt() 1.功能:解析命令行短选项参数 2.函数原型: #inclu ...

  7. nyoj 一笔画问题

    一笔画问题 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来. 规定,所有的边都只能画一次,不能重复画.   输入 第一行只有一个正整 ...

  8. FastAdmin 开发第二天:安装环境

    FastAdmin 开发前需要准备好开发环境,我是推荐是使用命令行安装. 运行环境 phpstudy 前期可以使用这类一键包环境,以后自己学着搭建. 后端工具 composer php包管理工具 前端 ...

  9. Maven的dependency scope属性

    官方地址:https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependen ...

  10. 弹性盒子布局(display:flex)知识点

    设为 Flex 布局以后,子元素的float.clear和vertical-align属性将失效.