首页 > 编程语言 >OpenCL 编程步骤 2. 获取设备

OpenCL 编程步骤 2. 获取设备

时间:2024-12-19 18:58:20浏览次数:8  
标签:编程 cl 步骤 khr OpenCL param num device 设备

clGetDeviceIDs

查询支持OpenCL设备列表:

cl_int clGetDeviceIDs(cl_platform_id   platform ,
                      cl_device_type   device_type ,
                      cl_uint           num_entries ,
                      cl_device_id    *devices ,
                      cl_uint          *num_devices )

与clGetPlatformIDs函数类似,第一次调用时,devices参数设置为NULL,num_devices返回指定平台中的设备数;

第二次调用时,根据第一次调用得到设备数量分配设备空间,调用该函数来初始化可用设备。

需要注意的是,如果devices不为NULL,num_entries的值必须大于0,num_entries用于指定devices所指向的设备对象列表中最多可存放多少个设备对象,这样此函数所输出的设备对象个数不会超过num_entries的值。而num_devices则输出实际给出的设备对象的个数。

对于函数中的device_type参数,可用类型如下表所示:

clGetDeviceInfo

给定一个OpenCL设备后,使用如下函数可以获得设备的各个属性信息:

cl_int clGetDeviceInfo(cl_device_id    device ,
                       cl_device_info param_name ,
                       size_t          param_value_size ,
                       void          *param_value ,
                       size_t        *param_value_size_ret )

这个函数返回给定设备的属性信息。

第一个参数device指定查询的设备。

第二个参数param_name为查询平台的属性信息,param_name的取值如下表所示。

最后一个参数param_value_size_ret返回属性信息实际的长度。

第四个参数param_value为指向保存平台属性信息的指针。

第三个参数param_value_size指定param_value参数指向的内存空间大小,这个值必须大于第四个参数的返回值。




我的机器显示:

Device Name:NVIDIA GeForce MX450
Compute Units Number: 14
Device Frequency: 1575(MHz)
Device Global Size: 1864(MB)
Device Global CacheLine: 128(Byte)
Device Version:OpenCL 3.0 CUDA
Device Extensions: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_3d_image_writes 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_copy_opts cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_device_uuid cl_khr_pci_bus_info cl_khr_external_semaphore cl_khr_external_memory cl_khr_external_semaphore_opaque_fd cl_khr_external_memory_opaque_fd

标签:编程,cl,步骤,khr,OpenCL,param,num,device,设备
From: https://www.cnblogs.com/turbinee/p/18617488

相关文章

  • 2、C#基于.net framework的应用开发实战编程 - 设计(二、二) - 编程手把手系列文章
    二、设计;二.二、设计用户界面; 这个编程例子主要用的VisualStudio2022开发的,所以此文记录VS2022的UI界面设计过程。 1、 窗体;1) 此例子的窗体主要是便签窗体;主要是便签的内容保存。还有一个标题栏,用于简要显示该便签的名称。 2) 还......
  • 面向对象编程,类和对象
    类的关键词Class类一般申明在namespace中,枚举和struct一般也在namespace中申明类的申明语法(类前面可以加访问修饰符)class类名{特征——成员变量行为——成员方法保护特征——成员属性构造函数和析构函数索引器运算符重载静态成员......
  • Fiddler(抓包测试工具)下载安装步骤
    目录介绍主要功能:使用场景:一、下载二、安装​编辑三、测试介绍Fiddler是一个强大的网络调试工具,用于捕获和分析HTTP/HTTPS请求与响应。它通过代理服务器捕获流量,帮助开发者调试Web应用、API,进行性能分析和安全测试。ps:一般搭配postman使用进行测试网页主要功......
  • HarmonyOS应用开发---DevEco CodeGenie编程AI辅助工具安装
    首款开发鸿蒙原生应用的AI辅助编程工具作为DevEcoStudio的AI辅助编程工具,DevEcoCodeGenie通过智能问答、代码补全/生成、万能卡片三大核心功能,打造高效智能开发体验。DevEcoCodeGenie的智能问答功能就像是开发者的智慧伙伴。无论是初涉鸿蒙原生应用开发的新手,还是经验丰富......
  • OpenCL 编程步骤 1. 获取平台
    参考OpenCL平台clGetPlatformIDs使用如下函数查询来获得系统平台列表:cl_intclGetPlatformIDs(cl_uintnum_entries,cl_platform_id*platforms,cl_uint*num_platforms)在OpenCL程序中,上述函数可以调用两次:......
  • 网络编程一>HTTP协议详解,<一文搞懂HTTP协议,抓包工具使用,HTTP协议报头>
    目录:  一.获取HTTP协议: 二.HTTP基本格式及格式内容: 三.HTTP请求"报头"详情(header):  一.获取HTTP协议:一.HTTP是什么HTTP(全称为"超文本传输协议")是⼀种应用非常广泛的应用层协议. 当我们在浏览器中输入⼀个"网址",此时浏览器就会给对应的服务......
  • Linux C/C++编程的线程结束
    【图书推荐】《LinuxC与C++一线开发实践(第2版)》_linuxc与c++一线开发实践pdf-CSDN博客《LinuxC与C++一线开发实践(第2版)(Linux技术丛书)》(朱文伟,李建英)【摘要书评试读】-京东图书(jd.com)Linux系统与编程技术_夏天又到了的博客-CSDN博客LinuxC/C++编程的线程创建-CSDN......
  • 哪些编程语言适合GIS开发?超全面汇总来了!
    今天来聊聊同学们经常会问到的一个话题——GIS开发用什么编程语言?首先我们来简单看一下常见的编程语言有哪些。01编程语言的特征了解编程语言的特征的一个重要方法是根据它们的不同的特点进行分类,比如静态和动态类型。静态类型语言如C、C++、C#和Java在编译时评估类型信息......
  • 解析Java中的Stream API:函数式编程与性能优化
        自Java8以来,Java语言引入了StreamAPI,为开发者提供了一种全新的数据处理方式。StreamAPI支持函数式编程风格,使得对集合、数组、IO流等数据源的操作更加简洁、直观且具有高效的性能优势。通过StreamAPI,我们可以在不修改原有数据结构的情况下,进行复杂的数据过滤、......
  • Android学习(四)-Kotlin编程语言-for循环
    在编程中,熟悉Java的开发者应该知道,Java循环语句:for循环。Kotlin也提供循环语句,但for循环在Kotlin中进行了大幅改进,重点学习Kotlin中增强的for-in循环。Kotlin中的for-in循环区间概念在Kotlin中,区间是一种非常有用的特性。你可以使用以下语法来创建一个区......