opencl获取gpu信息_如果在尝试获取OpenCL gpu设备类型时,Char *语句出现问题
我一直试图验证你的System \ n“,gpus)上的哪个OpenCL平台和gpu`s are located in, and at the same time count if there are more than one amd gpu on the system. I can get all visible outputs but im having a hard time using if statements to check if the displayed card actually are a advanced micro devices unit, i hope anyone can help me out a little here. Here is the current code:
if (listdevices)
{
int i, j;
char* value;
char* ellesmere = "Ellesmere";
char* valuemodel;
char* amdman1 = "Advanced Micro Devices, Inc.";
char* amdman2 = "Advanced Micro Devices, Inc";
char* amdman3 = "AMD";
char* amdman4 = "Advanced Micro Devices, Inc. ";
char* value2;
size_t valueSize;
cl_uint platformCount;
cl_platform_id* platforms;
cl_device_type device_type;
cl_uint deviceCount;
cl_device_id* devices;
cl_uint maxComputeUnits;
cl_uint globalMemsize;
uint64_t gpus = 0;
bool amdplatformlocated = false;
uint64_t amdplatform;
uint64_t currentplatform;
uint64_t countamd;
// get all platforms
clGetPlatformIDs(0, NULL, &platformCount);
platforms = (cl_platform_id*)malloc(sizeof(cl_platform_id) * platformCount);
clGetPlatformIDs(platformCount, platforms, NULL);
for (i = 0; i < platformCount; i++) {
printf("\n\nPlatform-index: %d: \n\n", i);
currentplatform = i;
// get all devices
clGetDeviceIDs(platforms[i], CL_DEVICE_TYPE_GPU, 0, NULL, &deviceCount);
devices = (cl_device_id*)malloc(sizeof(cl_device_id) * deviceCount);
clGetDeviceIDs(platforms[i], CL_DEVICE_TYPE_GPU, deviceCount, devices, NULL);
// for each device print critical attributes
for (j = 0; j < deviceCount; j++) {
gpus++;
// print device info & check if AMD model
clGetDeviceInfo(devices[j], CL_DEVICE_NAME, 0, NULL, &valueSize);
value = (char*)malloc(valueSize);
clGetDeviceInfo(devices[j], CL_DEVICE_NAME, valueSize, value, NULL);
printf(" %d. Device: %s.\n", j + 1, value);
if (value == ellesmere) {
amdplatformlocated = true;
amdplatform = currentplatform;
printf(" %d.%d Located AMD Device: %s\n", j + 1, 2, amdplatformlocated);
}
free(value);
// print manufacturer info & check if AMD
clGetDeviceInfo(devices[j], CL_DEVICE_VENDOR, 0, NULL, &valueSize);
value = (char*)malloc(valueSize);
clGetDeviceInfo(devices[j], CL_DEVICE_VENDOR, valueSize, value, NULL);
clGetDeviceInfo(devices[j], CL_DEVICE_VENDOR, valueSize, value2, NULL);
printf(" %d.%d Vendor: %s\n", j + 1, 1, value);
if (value2 == amdman1 || value2 == amdman2 || value2 == amdman3 || value2 == amdman4) {
amdplatformlocated = 1;
amdplatform = currentplatform;
printf(" %d.%d Located AMD Device: %s\n", j + 1, 2, amdplatformlocated);
countamd++;
}
free(value);
// print hardware device version
clGetDeviceInfo(devices[j], CL_DEVICE_VERSION, 0, NULL, &valueSize);
value = (char*)malloc(valueSize);
clGetDeviceInfo(devices[j], CL_DEVICE_VERSION, valueSize, value, NULL);
printf(" %d.%d Hardware version: %s\n", j + 1, 2, value);
free(value);
// print software driver version
clGetDeviceInfo(devices[j], CL_DRIVER_VERSION, 0, NULL, &valueSize);
value = (char*)malloc(valueSize);
clGetDeviceInfo(devices[j], CL_DRIVER_VERSION, valueSize, value, NULL);
printf(" %d.%d Software version: %s\n", j + 1, 3, value);
free(value);
// print c version supported by compiler for device
clGetDeviceInfo(devices[j], CL_DEVICE_OPENCL_C_VERSION, 0, NULL, &valueSize);
value = (char*)malloc(valueSize);
clGetDeviceInfo(devices[j], CL_DEVICE_OPENCL_C_VERSION, valueSize, value, NULL);
printf(" %d.%d OpenCL C version: %s\n", j + 1, 4, value);
free(value);
// print parallel compute units
clGetDeviceInfo(devices[j], CL_DEVICE_MAX_COMPUTE_UNITS,
sizeof(maxComputeUnits), &maxComputeUnits, NULL);
printf(" %d.%d Parallel compute units: %d\n", j + 1, 5, maxComputeUnits);
}
free(devices);
}
printf("\nWe have registered %d GPU`s;
if(amdplatformlocated == 1){
printf(“看来,平台%d在你的系统上包含AMD GPU`s., amdplatform);
}
else {
printf("\nDid you find your AMD Card on this list?\n");
}
free(platforms);
win_exit();
return 0;
}Which currently on a AMD RX570 Card gives this output:
> Platform-index: 0:
>
>
>
> Platform-index: 1:
>
> 1. Device: Ellesmere.
> 1.1 Vendor: Advanced Micro Devices, Inc.
> 1.2 Hardware version: OpenCL 2.0 AMD-APP (2442.12)
> 1.3 Software version: 2442.12
> 1.4 OpenCL C version: OpenCL C 2.0
> 1.5 Parallel compute units: 32
> 1.6 Maximum Memory Size:
We have registered 1 GPU`s
你有没有在这张名单上找到你的AMD卡?
PRE>
如果(value == ellesmere)不起作用,那么在供应商部分也不行。为什么是这样?两者都是当前的char *,如果我使用简单的代码来比较它们的工作原理,我没有看到什么?
谢谢
opencl获取gpu信息_如果在尝试获取OpenCL gpu设备类型时,Char *语句出现问题相关推荐
- 浏览器获取设备信息_一条命令获取 IE 浏览器保存网站的账号和密码信息
渗透攻击红队 一个专注于红队攻击的公众号 大家好,这里是 渗透攻击红队 的第 41 篇文章,本公众号会记录一些我学习红队攻击的复现笔记(由浅到深),不出意外每天一更 Powershell 内网渗透一直 ...
- uniapp同步获取用户信息_微信小程序云开发教程微信小程序的API入门获取用户身份信息系列API...
同学们大家好,我是小伊同学,上一节我们介绍了一些常用API,今天我们接着来学习一组API,那就是获取用户身份信息的API. 在微信小程序中,我们往往需要获取用户的身份信息,比如昵称.头像.性别.地区等 ...
- java 获取apk版本号_纯JAVA环境获取APK信息:包名,版本,版本号,大小,权限...
[实例简介] 纯JAVA环境获取APK信息:包名,版本,版本号,大小,权限... 代码讲解地址:http://blog.csdn.net/chillax_li/article/details/4185 ...
- GPU信息查看以及确认Pytorch使用了GPU计算模块进行深度学习的训练
GPU信息查看以及确认Pytorch使用了GPU计算模块进行深度学习的训练 目录 GPU信息查看以及确认Pytorch使用了GPU计算模块进行深度学习的训练 GPU基础信息查看 Pytorch是否使用 ...
- scanner 获取控制台信息_关于java.util.scanner:如何使用Java中的Scanner类从控制台读取输入?...
如何使用Scanner类从控制台读取输入? 像这样: System.out.println("Enter your username:"); Scanner = input(); ...
- 浏览器获取设备信息_过滤获取日志和浏览器信息
承接上一个课件<分析Nginx日志获取IP地址的省份信息> 现在希望是获取浏览器和操作系统相关数据 准备一个工具类UserAgentUtil 编写代码 解析浏览器的useragent字符串 ...
- 获取行信息_论文推荐 | 周乐韬,黄丁发,袁林果,等:基于状态和残差的北斗基准站观测数据表达与信息分级...
<测绘学报> 构建与学术的桥梁 拉近与权威的距离 复制链接,关注<测绘学报>抖音! [测绘学报的个人主页]长按复制此条消息,长按复制打开抖音查看TA的更多作品##7NsBSyn ...
- js如何获取jwt信息_企业舆情要怎么获取,如何处理负面舆情信息?
一.企业获取舆情的重要性 舆情监控与舆情分析是一直伴随着企业成长的不可或缺的部分,良好的企业形象有助于快速树立品牌形象,提升用户的认可度从而转化成一股神秘的力量让企业爆发式的增长,比如某干妈辣酱当时火 ...
- js如何获取jwt信息_如何获取有价值的信息
信息时代的重要特征,就是信息增加的速度与传播速度相对过去有了质的飞越.但随之而来的问题也出现了,信息的噪音(无价值信息)爆炸性增长,真正有价值的信息迅速被信息噪音淹没,因为有价值的信息永远是线性增长的 ...
最新文章
- 成功解决fp = builtins.open(filename, quot;rbquot;) OSError: [Errno 22] Invalid argument: 'F:\\File_Pyt
- Kaggle知识点:时序数据与Embedding
- 支付二维码php能实现吗_(实用篇)微信支付扫码支付php版
- spark 广播变量大数据_Spark基础知识(三)--- Spark的广播变量和累加器
- 如何通过软件项目开发来提高自身的实力。
- 提的最多的数据库“索引”,先来简单了解一下
- 最简单的SpringMVC + Maven配置
- arch Linux添加源,在Arch Linux系统中使用Archlinuxcn源(清华源)的方法
- clickhouse聚合函数之groupBitmap
- Python 学习入门(22)—— 线程同步
- 利用计算机对调查问卷进行,关于电脑需求调查问卷
- A goal-driven tree-structured neural model for math word problems论文阅读
- Leetcode 黄金分割点等级简单
- MATLAB积分计算与积分变换
- 重装也无法修复此计算机,win10系统重置此电脑失败怎么解决
- Python数据挖掘入门与实践-OneR分类算法
- 如何搭建EOS主网节点?
- 区块链溯源的应用四大领域
- 内网建站 NAT穿透 局域网穿透
- 什么是框架?常用框架有哪些?