opencl(2)平台、设备、上下文的获取与信息获取

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,

原文地址:https://www.cnblogs.com/pengtangtang/p/PengTangTang_OpenCL_number_one.html

时间: 2024-10-09 12:57:23

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

C# 网络编程之通过豆瓣API获取书籍信息(一)

这篇文章主要是讲述如何通过豆瓣API获取书籍的信息,起初看到这个内容我最初的想法是在"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源码,再通过正则表达式分析获取结点标签得到信息.但后来发现可以通过豆瓣API提供的编程接口实现. 该文章仅是基础性C#网络编程文章,尝试测试了下豆瓣API,并没什么高深的内容.但希望对大家有所帮助,仅供学习. (警告:文章仅供参考,提供一种想法,否则访问多次-10次被403 forbidden莫怪.建议认证使用豆瓣API) 一

php 微信开发获取用户信息如何实现

php 微信开发获取用户信息 获取用户信息的大致算法是 用户授权登录第三方网站, 重点:scope参数: snsapi_basic 静默登录,不需要用户授权,只能获取到openid: snsapi_userinfo ,需要用户点击授权,能获取到openid和所有用户信息: 第一步:先获取用户的code值: 第二步:根据code值去获取access_token,每次请求的值都不一样,如果没有使用,每五分钟更新一次: 第三步:根据access_token获取用户信息: 1.获取code代码实现: g

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

反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的名称.限定符和参数等.有了反射,即可对每一个类型了如指掌.如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道 1..NET可执行应用程序结构 程序代码在编译后生成可执行的应用,我们首先要了解这种可执行应用程序的结构. 应用程序结构分为应用程序域—程序集—模块—类型—成员几

MFC的运行机制 以及 MFC中的DC、CDC、HDC、句柄、设备上下文 [转]

在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成员函数.也就是说MFC封装了Windows API.你说你喜欢C++而MFC换一种说法就是一个用C++写的一个函数库 然后你来调用 只不过这个类不是你写的 MFC提供数百个类,最重要的.也是编写任何VC++应用程序都必不可少的两个类CWinApp和CFrameWnd,这两个类是编写复杂庞大应用程序的基石. 1>封装特性:构成MFC框架的是MFC类库而MFC类库又是C++的一个类库.这些类封装W

Linux设备驱动开发 - 平台设备驱动

Linux2.6的内核中引入了一种新的设备驱动模型-平台(platform)设备驱动,平台设备驱动分为平台设备(platform_device)和平台驱动(platform_driver),平台设备的引入使得Linux设备驱动更加便于移植. 一.平台设备平台设备结构体: 1 struct platform_device { 2 const char * name; /* 设备名 */ 3 int id; 4 struct device dev; /* 设备结构体 */ 5 u32 num_res

lLinux平台设备驱动 - 按键设备驱动

之前的一篇博客简单介绍了平台设备驱动模型(http://www.cnblogs.com/ape-ming/p/5107641.html),现在就根据那篇博客所列出来的模板把上一篇博客(http://www.cnblogs.com/ape-ming/p/5110996.html)的例程改成平台设备驱动模型. 一.平台设备根据模板首先要写一个平台设备加载函数: 1 /* 2 * 函数名 : button_device_init 3 * 函数功能: 设备加载 4 */ 5 6 static int _

【Win 10应用开发】如何知道当前APP在哪个平台设备上运行

[Win 10应用开发]如何知道当前APP在哪个平台设备上运行 在做Win10开发的时候,我们可能经常会需要获得当前程序在在哪个平台设备上运行,用于UI和相关API的调用,那么可以通过什么方式知道当前APP运行的平台呢? 今天这里提供两个方法给大家做参考: 方法一:DeviceFamily 通过Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily,来获取当前的平台设备,目前只可以得到两个值Windows.Mobile或Wind

字符设备驱动、平台设备驱动、设备驱动模型、sysfs的关系

Linux驱动开发的童鞋们来膜拜吧:-)  学习Linux设备驱动开发的过程中自然会遇到字符设备驱动.平台设备驱动.设备驱动模型和sysfs等相关概念和技术.对于初学者来说会非常困惑,甚至对Linux有一定基础的工程师而言,能够较好理解这些相关技术也相对不错了.要深刻理解其中的原理需要非常熟悉设备驱动相关的框架和模型代码.网络上有关这些技术的文章不少,但多是对其中的某一点进行阐述,很难找到对这些技术进行比较和关联的分析.对于开发者而言,能够熟悉某一点并分享出来已很难得,但对于专注传授技术和经验给

Android设备网络、屏幕尺寸、SD卡、本地IP、存储空间等信息获取工具类

Android设备网络.屏幕尺寸.SD卡.本地IP.存储空间.服务.进程.应用包名等信息获取的整合工具类. 1 package com.qiyu.ddb.util; 2 3 import android.annotation.SuppressLint; 4 import android.annotation.TargetApi; 5 import android.app.Activity; 6 import android.app.ActivityManager; 7 import androi