OpenCL 查询平台和设备
▶ 查询平台和设备的代码以结果,放在这里方便以后逐渐扩充和查询(没有营养)
#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 查询平台和设备的更多相关文章
- opencl(2)平台、设备、上下文的获取与信息获取
1:平台 1)获取平台id cl_int clGetPlatformIDs( cl_uint num_entries, //想要获取的平台数 cl_platform_id * flatfor ...
- XCode教程之 如何在苹果开发者平台添加设备UDID
XCode教程之 如何在苹果开发者平台添加设备UDID.在Xcode开发中,如何在苹果开发者平台添加新的手机设备UDID,进行测试,具体如下 工具/原料 Apple Developer 方法/步骤 1 ...
- 跟我开发NSP(网上查询平台):如何选择开发项目
我想通过一个真实的项目开发的全过程,记录一下开发过程的点点滴滴,记录一下过程中的前思后想.这个全过程包括,如何选择项目.如何分析项目.如何组织项目开发.如何设计开发流程.如何设计软件的总体架构.如何建 ...
- adhoc-海量数据多维自助即席查询平台-mdrill项目开源啦
adhoc-海量数据多维自助即席查询平台-mdrill项目开源啦 1:mdrill是阿里妈妈-adhoc-海量数据多维自助即席查询平台下的一个子项目. 2:mdrill旨在帮助用户在几秒到几十秒的时间 ...
- Wing-AEP平台LWM2M设备接入
实现Wing-AEP中国电信物联网开放平台,LWM2M设备接入 一.准备 接入模组:BC35-G 平台地址:https://www.ctwing.cn/ 点击右上角控制台 点击左侧栏点击产品中心 二. ...
- 通过OpenCL内核代码猜测设备寄存器个数
在OpenCL标准中,没有给出查看计算设备一共有多少寄存器,至少能分配给每个work-item多少寄存器使用的特征查询.而由于一个段内核代码是否因寄存器紧缺而导致性能严重下降也是一个比较重要的因素,因 ...
- c#程序如何从海康ipserver查询获取DVR设备ip地址
海康威视提供的ipserver可以记录DVR设备的IP地址,并提供一个7071的端口给客户端查询用,我们在c#程序中可以用海康SDK包中的NET_DVR_GetDVRIPByResolveSvr函数来 ...
- 技术分享:如何用Solr搭建大数据查询平台
0×00 开头照例扯淡 自从各种脱裤门事件开始层出不穷,在下就学乖了,各个地方的密码全都改成不一样的,重要帐号的密码定期更换,生怕被人社出祖宗十八代的我,甚至开始用起了假名字,我给自己起一新网名”兴才 ...
- Linux平台块设备到字符设备(裸设备)的三种映射方式(转载)
在Linux平台oracle rac的组建过程中,如果使用ASM+RAW的存储方式的话,由于asm不支持块设备,支持持字符访问设备,所以需要配置将Block Device Drive转变成Charac ...
随机推荐
- oracle 获取星期日期
oracle 中的计算如下: 计算本星期的起始结束日期--得到星期一的日期select trunc(sysdate,''DD'')-to_char(sysdate,''D'')+2 from dual ...
- zstack(一)运行及开发环境搭建及说明(转载)
本篇介绍zstack的部署环境,以及二次开发环境 运行环境 讲真,ZStack的安装做的还是不错的,提供多种安装模式,如离线安装.在线安装.一键安装.分布式安装等.安装的过程其实都很简单,当然这也是z ...
- 使用crypto-js的md5加密
官方地址:https://github.com/brix/crypto-js md5加密代码: let CryptoJS = require('crypto-js') let yxcsigns = C ...
- 虚拟机 VMware Tools 安装
Ubuntu 或具有图形用户界面的 Ubuntu Server 要挂载 CD 镜像并解压,请按以下步骤操作: 启动此虚拟机. 使用具有管理员权限或 root 用户权限的帐户登录此虚拟机. 选择:对于F ...
- Microsoft Dynamics CRM2011 Javascript
一.CRM2011 Javascript 禁用子网格 // Disable a subgrid on a form function disableSubgrid(subgridName) { ...
- 360 杀毒几K每秒的IO读取,SO MAD
在没有用360杀毒扫描的状态下,从任务管理器中查看,居然有几K每秒的IO读取 . 好卡,直接卸载.
- request响应码记录
响应 -- r.status_code #响应状态码 -- r.content #会自动为你解码 字节方 ...
- SpringMVC的注解方式配置
SpringMVC支持使用注解方式配置,比配置文件方式更加灵活易用,是SpringMVC使用的主流模式. 1.在配置文件中开启SpringMVC的注解 <!-- 开启包扫描 --> < ...
- Unity3D SerialPort处理
using UnityEngine; using System.Collections; using System; using System.Threading; using System.Coll ...
- [转]Java. SqlServer 使用
public void add(Emp emp) throws Exception { String connectionUrl = "jdbc:sqlserver://localhost: ...