1:平台

1)获取平台id

cl_int clGetPlatformIDs(

cl_uint num_entries,       //想要获取的平台数

cl_platform_id * flatformids, //获取到设备会保存在该指针中

cl_uint *platforms       //环境中存在的平台数量

)

2)获取指定平台的info

cl_int clGetPlatformInfo(

cl_platform_id platform_id,  //platform平台

cl_platform_info param_name, //获取信息的类型

size_t  param_value_size ,  //所要保存信息的字节大小

void *param_value,      //所要保存的地址

size_t param_value_size_ret //实际信息的数据大小

)

信息类型:

CL_PLATFORM_PROFILE  确认系统是否支持完整的opencl版本还是嵌入式版本(FULL_PROFILE  EMBEDDED_PROFILE)

CL_PLATFORM_VERSION

CL_PLATFORM_NAME

CL_PLATFORM_VENDOR  返回和平台相关的厂商

CL_PLATFORM_EXTENSIONS  查看平台支持的浮点精度扩展

2:设备

1)获取设备id

cl_int clGetDeviceIDs(

cl_platform_id  platform_id,   //所选平台

cl_device_type device_type, //设备类型

cl_uint num_entries,    //想要获取的设备数

cl_device_id *devices,      //保存设备的地址

cl_uint num_devices    //总设备数

)

2) 获取所得设备的信息

cl_int cl_GetDeviceInfo(

cl_device_id device_id,     //所选设备

cl_device_info param_name, //信息类型

size_t param_value_size,  //所要保存的信息字数

void* param_value,     //信息保存的地址

size_t param_value_size_ret   //信息应有的字节数

)

信息的类型

CL_DEVICE_EXTENSION  支持的扩展类型

CL_DEVICE_GLOBAL_MEM_SIZE  全局设备内存大小

CL_DEVICE_ADDRESS_BITS    设备地址空间大小

CL_DEVICE_PREFERRED_VECTOR_EIDTH_CHAR/SHORT/INT/LONG/DOUBLE  向量长度

3:上下文

1)根据设备类型,创建上下文

cl_context clCreateContext(

cl_context_properties *properties,//属性列表

cl_uint num_devices,      //设备数量

const cl_device_id *devices,      //设备列表

void* ftn_notfy(

const char* errinfo,

const char* private_info,

size_t cb,

void *user_data),

void *user_data,        //提供报错信息

cl_int *errcode_ret        //错误信息大小

)

2)根据设备属性,创建上下文

cl_context clCreateContext(

cl_context_properties *properties,//属性列表

cl_device_type device_type

void* ftn_notfy(

const char* errinfo,

const char* private_info,

size_t cb,

void *user_data),

void *user_data,        //提供报错信息

cl_int errcode_ret        //错误信息大小

)

3)获取上下文信息

cl_int clGetContextInfo(

cl_context  contxet,     //上下文

cl_context_info param_name,//信息参数名称

size_t param_value_size,      //所要保存的大小

void* param_value,     //信息存放的地址

size_t param_value_size_ret //信息的大小

)

信息类型:

CL_CONTEXT_REFERENCE_COUNT  引用计数

CL_CONTEXT_DEVICES    上下文中包含的设备

CL_CONTEXT_PROPERTIES  属性参数

4)管理上下文的引用

cl_int clRetainContext(cl_context context)  引用计数+1

cl_int clReleaseContext(cl_contetx contex)  引用计数-1

创建时,计数加1,

opencl(2)平台、设备、上下文的获取与信息获取的更多相关文章

  1. uni-app开发经验分享二十: 微信小程序 授权登录 获取详细信息 获取手机号

    授权页面 因为微信小程序提供的 权限弹窗 只能通用户确认授权 所以可以 写一个授权页面,让用户点击 来获取用户相关信息 然后再配合后台就可以完成登录 <button class="bt ...

  2. wx.createSelectorQuery() 获取节点信息 获取不到解决方法

    场景:一个气泡的宽度由加载来的数据填充所决定,不定宽,     wx.createSelectorQuery().selectAll('.talkbubble').boundingClientRect ...

  3. Asp.Net Core获取请求信息/获取请求地址

     一.Asp.Net Core 2.0版本中目前HttpRequest是个抽象类 在控制器或视图上下文中获取到的 Request对象,是 DefaultHttpRequest的实例. 定义 如图 : ...

  4. 重新想象 Windows 8 Store Apps (30) - 信息: 获取包信息, 系统信息, 硬件信息, PnP信息, 常用设备信息

    原文:重新想象 Windows 8 Store Apps (30) - 信息: 获取包信息, 系统信息, 硬件信息, PnP信息, 常用设备信息 [源码下载] 重新想象 Windows 8 Store ...

  5. JAVA获取微信小程序openid和获取公众号openid,以及通过openid获取用户信息

    一,首先说明下这个微信的openid 为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,如果需要在多公众号.移动应用之间做用户共通,则需前往微信开放平台,将这些公众号和应用绑定到一个开 ...

  6. c#反射机制学习和利用反射获取类型信息

    反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的 ...

  7. C# 通过豆瓣网络编程API获取图书信息

    这篇文章主要是关于如何通过豆瓣API获取信息的书籍,起初,我看到了原来的想法的内容是"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源代码,再通过正則 ...

  8. UserAgentUtils 获取浏览器信息

    <dependency> <groupId>eu.bitwalker</groupId> <artifactId>UserAgentUtils</ ...

  9. Activiti7 获取资源信息及其查询流程历史信息

    获取资源信息 /** * 获取资源信息 * * @throws IOException */ @Test public void getProcessResources() throws IOExce ...

随机推荐

  1. java ->Servlet接口

    JavaWeb核心之Servlet Servlet简介 什么是Servlet(控制器的作用) Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求.响应给 ...

  2. 《学习笔记》Layui-WPF窗体美化

    一睹为快: 1.创建自定义控件,并取名为LayuiWPFStyle 2.在当前目录中创建Fonts和WindowStyle文件加用来存放字体文件和自定义窗体,字体用fontawesome字体当然你们可 ...

  3. 如何搭建一个WEB服务器项目(六)—— 上传图片至服务器

    上传图片(用户头像)至服务器 观前提示:本系列文章有关服务器以及后端程序这些概念,我写的全是自己的理解,并不一定正确,希望不要误人子弟.欢迎各位大佬来评论区提出问题或者是指出错误,分享宝贵经验.先谢谢 ...

  4. spark机器学习从0到1决策树(六)

      一.概念 决策树及其集合是分类和回归的机器学习任务的流行方法. 决策树被广泛使用,因为它们易于解释,处理分类特征,扩展到多类分类设置,不需要特征缩放,并且能够捕获非线性和特征交互. 诸如随机森林和 ...

  5. Closures Basic

    Closures Closures are one of the most powerful features of JavaScript. JavaScript allows for the nes ...

  6. vs code插件自动压缩 min.css

    我们在进行相应的项目书写的时候,有些需要把scss 和 css 进行 压缩成 min.css 便于更好的使用 在这里强调一下 scss 后来才慢慢接触到这个语言的 感觉的确实懂得明白了之后  好用而且 ...

  7. vue npm run dev报错webpack-dev-server

    在运行vue项目时报如下问题: E:\mobile_real\mobile-vue>npm run dev > mobile_real@1.0.0 dev E:\mobile_real\m ...

  8. [书籍分享]0-001.rework(重来:更为简单有效的商业思维)

    封面    内容简介 大多数的企业管理的书籍都会告诉你:制定商业计划.分析竞争形势.寻找投资人等等.如果你要找的是那样的书,那么把这本书放回书架吧. 这本书呈现的是一种更好.更简单的经商成功之道.读完 ...

  9. SpringBoot—自定义线程池及并发定时任务模板

    介绍   在项目开发中,经常遇到定时任务,今天通过自定义多线程池总结一下SpringBoot默认实现的定时任务机制. 定时任务模板 pom依赖 <dependencies> <dep ...

  10. Nexus Repository Manager 3(CVE-2019-7238) 远程代码执行漏洞复现

    0x00 漏洞背景 Nexus Repository Manager 3是一款软件仓库,可以用来存储和分发Maven,NuGET等软件源仓库.其3.14.0及之前版本中,存在一处基于OrientDB自 ...