浅谈OpenCL之API分类
OpenCL为应用开发提供了丰富的API,按照其四大模型其API主要分为以下三类:
Platform API
平台API主要是由HOST调用,可以用来查询opencl plaftform, device,以及在指定的device上创建context,可以理解为opencl的控制端,经常用在host端opencl初始化部分,查找合适的平台和device运行opencl 代码。
Runtime API
运行API主要功能是根据context创建command-queues,以及在运行期间host提交命令 到device中,主要是为kernel运行提供所必要的功能。
Rutime API提一个主要工作就是根据conext在制定的device上创建command-queues,并根据所创建的command-queues创建所需要的内存对象(buffer或者Image),并维护这些内存对象的使用,以及内存的释放。
其次创建kernel所需要执行的program(Program即提交到device中的kernel字符串代码),并在运行之前对其kernel代码进行编译。
最后,host提交command到command-queues中,等待device执行kernel,并提供内存一致性同步功能。
Rutime API提供了Opencl程序运行的大部分工作,占用数量较多。
Opencl programming language
opencl kernel的API,采用类C99标准,包含一些opencl特有的扩展功能。是opencl kernel实际计算部分,真正的工作负载。
opencl为了实现最大并行,删除了 标准C99的一些功能:
不支持递归功能
不支持函数指针
不支持 Bit field功能
不支持标准stdio.h 和stdlib.h
不支持内存强转
opencl kernel添加了一些自己特有功能:
支持向量类型以及相关操作
内有很多build-in 函数实现最大加速
针对全局或者local变量提供Atomic functions.
支持多个地址空间(local, global 以及private)
支持不同级别的浮点操作类型
参考资料
《OpenCL programming Guide》
浅谈OpenCL之API分类相关推荐
- 浅谈机器学习-回归与分类的区别
前言 机器学习的主要任务便是聚焦于两个问题:分类和回归.本文将浅谈下两者的区别. 区别 回归会给出一个具体的结果,例如房价的数据,根据位置.周边.配套等等这些维度,给出一个房价的预测. ...
- 浅谈OpenCL之Platform API(2)
OpenCL Contexts context是贯串 opencl 程序的核心,也是host 与device 交互的唯一通道,是内存申请维护,命令队列的创建等功能的基础. 不同的plaform,可以申 ...
- 浅谈OpenCL之Platform API(1)
Platform API 为opencl 初始化首先要使用的API,主要是获取到platform 以及device. OpenCL Platforms opencl 应用程序第一步首先就是要查询ope ...
- 浅谈opencl之错误码
opencl采用了统一的错误码,各个API通用 Error Description CL_SUCCESS Command executed successfully without error. CL ...
- 浅谈Opencl四大模型之Memory Model
运行模型(execution model)讲述了一个kernel怎么样在opencl平台运行,host喝kernel如何交互的,kernel代码如何编译的等等,但是没有涉及到opencl内存的管理方式 ...
- 浅谈OpenCL四大模型之Execution Model
OpenCL执行模型(Execution Model)解释了opencl程序是如何运行的,是理解opencl的基础. OpenCL程序 Opencl应用程序一般分为host部分和kernel部分组成, ...
- 浅谈Opencl四大模型之Platform model
Opencl是一种典型的异构架构,可以很好的实施并发性,为了简化并行计算复杂度以及兼容各个芯片差异性,opencl将其抽象为四大模型(Platform model, Execution model,M ...
- 大象的三个武器——浅谈印象笔记的“笔记本分类”、“搜索”、“标签”的应用...
用过Evernote的朋友,一定会被他随时收集,多平台同步等方便功能所吸引,很多GTD实践者和达人也在用他做收集.项目管理.晨间日记.个人知识管理等多种用途,尤其是进入中国后,印象笔记团队提供更为贴心 ...
- 浅谈OpenCL之 应用程序总体步骤思路
一般Opencl 应用程序步骤,为了保证原英文意思 没有翻译中文: 1:Query which platforms are present. 2: Query the set of devices ...
最新文章
- java中xml怎样配置_如何通过XML方式配置并实现Mybatis
- MySQL数据库性能优化--SQL优化
- Hdu 1029 Ignatius and the Princess IV
- VTK:vtkDelaunay2D用法实战
- JavaFX之TableView的SelectionMode
- NoSQL为什么需要模式自由的ETL工具:不知道的大概都没用过!
- 那些在11gR2中可能惹祸的新特性,一张列表帮助你摆脱升级11gR2带来的烦恼
- B - Friends
- 漫谈 MinIO 集群扩容方法
- 分治法的经典问题——大整数相乘
- 2019梅江(天津)年货展销会启幕
- 使用免费的Spire.Pdf.dll打印无水印的PDF文件
- 最新黑马软件测试全套视频教程
- 数学模型:传染病模型
- GameFi 在宏观趋势上出现下滑,但个别项目却大放异彩| April Monthly Report
- hui后台框架html页面中的图标,HUI
- Bulldog靶机渗透
- [OHIF-Viewers]医疗数字阅片-医学影像-querySelector() 选择器语法-将画布(canvas)图像保存成本地图片的方法...
- Mac HomebrewCN被墙
- 基于消息中间件解决分布式事务的开源框架Myth