微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【MD编辑器使用学习opencl】

提示:导入一个MD新手模板


前言

提示:这篇文章引用记录转载各种优秀博文:

例如:openCL 高性能计算 图像处理。


提示:以下是本篇文章正文内容,下面案例可供参考

一、OpenCL是什么?

示例:OpenCL全称为Open Computing Language(开放计算语言),先由Apple设计,后来交由Khronos Group维护,是异构平台并行编程的开放的标准,也是一个编程框架。

1.OpenCL构成

居中并且带尺寸的图片:

Alt

  1. 是OpenCL C语言(OpenCL 2.1将开始使用OpenCL C++作为内核编程语言)和主机端API1
  2. 二是硬件架构的抽象。

二、OpenCL标准

OpenCL标准分为四部分,每一部分都用“模型”来定义:

1.平台模型

指定一个host处理器,用于任务的调度。以及一个或多个device处理器,用于执行OpenCL任务(OpenCL C Kernel)。这里将硬件抽象成了对应的设备(host或device)。

2.执行模型

定义了OpenCL在host上运行的环境应该如何配置,以及host如何指定设备执行某项工作。这里就包括host运行的环境,host-device交互的机制,以及配置内核时使用到的并发模型。并发模型定义了如何将算法分解成OpenCL工作项和工作组。

3.内核编程模型

定义了并发模型如何映射到实际物理硬件。

4.内存模型

定义了内存对象的类型,并且抽象了内存层次,这样内核就不用了解其使用内存的实际架构。其也包括内存排序的要求,并且选择性支持host和device的共享虚拟内存。


通常情况下,OpenCL实现的执行平台包括一个x86 cpu主处理器,和一个GPU设备作为加速器。主处理器会将内核放置在GPU上运行,并且发出指令让GPU按照某个特定的并行方式进行执行。内核使用到的内存数据都由编程者依据层级内存模型分配或开辟。运行时和驱动层会将抽象的内存区域映射到物理内存层面。最后,由GPU开辟硬件线程来对内核进行执行,并且将每个线程映射到对应的硬件单元上。这些模型的细节将会在之后进行详细的讨论。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了opencl。
链接: OpenCL 教程
链接: 移动端算法优化


  1. zhushi ↩︎

原文地址:https://www.jb51.cc/wenti/3284950.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐