0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

标签 > OpenCL

OpenCL简介

  OpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。

  基本信息

  OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器组成。OpenCL由一门用于编写kernels (在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API组成。OpenCL提供了基于任务分割和数据分割的并行计算机制。OpenCL类似于另外两个开放的工业标准OpenGL和OpenAL,这两个标准分别用于三维图形和计算机音频方面。OpenCL扩展了GPU用于图形生成之外的能力。OpenCL由非盈利性技术组织Khronos Group掌管。

OpenCL百科

  OpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。

  基本信息

  OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器组成。OpenCL由一门用于编写kernels (在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API组成。OpenCL提供了基于任务分割和数据分割的并行计算机制。OpenCL类似于另外两个开放的工业标准OpenGL和OpenAL,这两个标准分别用于三维图形和计算机音频方面。OpenCL扩展了GPU用于图形生成之外的能力。OpenCL由非盈利性技术组织Khronos Group掌管。

  历史发展

  OpenCL最初苹果公司开发,拥有其商标权,并在与AMD,IBM,英特尔和nVIDIA技术团队的合作之下初步完善。随后,苹果将这一草案提交至Khronos Group。2008年6月的WWDC大会上,苹果提出了OpenCL规范,旨在提供一个通用的开放API,在此基础上开发GPU通用计算软件。随后,Khronos Group宣布成立GPU通用计算开放行业标准工作组,以苹果的提案为基础创立OpenCL行业规范。5个月后的2008年11月18日,该工作组完成了OpenCL 1.0规范的技术细节。2010年6月14日,OpenCL 1.1 发布。2011年11月15日,OpenCL 1.2 发布。2013年11月19日,OpenCL 2.0发布。

  支持现状

  2009年6月NVIDIA首家发布了支持OpenCL 1.0通用计算规范的驱动程序,支持Windows和Linux操作系统。2009年8月初AMD首次发布了可支持IA处理器(x86和amd64/x64)的OpenCL SDK——ATI Stream SDK v2.0Beta,立即交由业界标准组织KHRONOS进行审核。目前,该SDK更名为AMD APP SDK。2012年2月,intel发布了The Intel® SDK for OpenCL* Applications 2012,支持OpenCL 1.1基于带HD4000/2500的显示核心的第三代酷睿CPU(i3,i5,i7)。和GPU。2013年6月,intel发布了第四代酷睿CPU haswell 其内置的HD4600/4400/4200 Iris(锐矩)5000/5100/pro 5200(自带eDRAM缓存)支持OpenCL 1.2(未来可能升级到OpenCL 2.0)NVIDIA显卡方面 Geforce 8000\9000\100\200\300\400\500\600\700\800\900\1000均支持OpenCL 1.0-1.2AMD显卡方面 Radeon HD 4000\5000\6000\7000\Rx 200\Rx 300\RX 480 均支持OpenCL 1.0-1.2,除Radeon HD4000系列外,其余均会支持OpenCL 2.0移动平台方面目前高通adreno320/330提供了Android上的OpenCL1.1支持,NVIDIA的Tegra K1也提供了OpenCL 支持。

  组织成员

  OpenCL工作组的成员包括:3Dlabs、AMD、苹果、ARM、Codeplay、爱立信、飞思卡尔、华为、HSA基金会、GraphicRemedy、IBM、Imagination Technologies、Intel、诺基亚、NVIDIA、摩托罗拉、QNX、高通,三星、Seaweed、德州仪器、布里斯托尔大学、瑞典Ume大学。[1] 像Intel、NVIDIA和AMD都是这个标准的支持者,不过微软并不在其列。

  使用介绍

  目前,NVIDIA显卡对OpenCL技术支持得比较到位,所以这里仅用NVIDIA的Geforce(精视)系列显卡作解释。中国用户可以登录英伟达中文官方网站上下载到最新的驱动程序,只要您下载的驱动是195.62版本或更高,就可以在Geforce(精视)8系列或更高级的显卡中开启OpenCL,在安装好新版本的显卡驱动程序并重新启动后,OpenCL就自动开启了。当有需要使用CPU来完成的工作如转换视频时,GPU就会帮助CPU进行运算,以提高转换速度。但是在3D游戏中应该是不会调用OpenCL的,因为显卡有自己的硬件加速功能以及物理引擎,所以Geforce(精视)8系列及以上的显卡就不需要CPU辅助进行渲染了。这时候,您就可以一边玩游戏,一边进行消耗CPU的工作了。当然同样,在NVIDIA的Quadro系列专业显卡中,同样能够使用OpenCL技术。只要您的显卡能够达到CUDA的要求,就能够正常使用OpenCL,以获得优异的CPU运算效率。在AMD-ATI的Stream技术中(现已经改名为AMD APP并行加速技术),已经为日常使用、办公、游戏等提供物理加速。基于OpenCL标准开发,其中,ATI Radeon HD 4000-5000、AMD Radeon HD 6000系列同时支持ATI Stream和AMD APP(由于Stream基于CAL和Brook+语言开发,更适合VLIW5和VLIW4这样的SIMD架构),AMD Radeon HD7000和Radeon Rx 200系列支持AMD APP,运算效率较老架构提升十分明显。OpenCL 1.0OpenCL 1.0主要由一个并行计算API和一种针对此类计算的编程语言组成,此外还特别定义了:1、C99编程语言并行扩展子集;2、适用于各种类型异构处理器的坐标数据和基于任务并行计算API;3、基于IEEE 754标准的数字条件;4、与OpenGL、OpenGL ES和其他图形类API高效互通。OpenCL 1.1Khronos Group2010年6月15日宣布,OpenCL通用计算标准的1.1版本已经发放,开发者可以免费下载,并依照新标准开始进行编程。OpenCL 1.1标准向下兼容1.0版,提供了更多的新功能,并对性能进行了改善。主要新特性包括:- 支持新数据类型,如3维矢量和新增图像格式。- 支持处理多Host指令以及跨设备Buffer处理。- Buffer区域操作,包括对1D、2D、3D三角形区域的读、写和拷贝操作。- 改进驱动和控制指令执行的事件应用。- 增加OpenCL内建C功能。- 通过链接OpenCL和OpenGL事件,高效共享图像和Buffer,改进与OpenGL的互操作性。OpenCL标准由Khronos Group的OpenCL工作组制定,完全开放,任何开发者都可免费使用。OpenCL工作组成员包括(英文首字母排序):3DLABS、动视暴雪、AMD、苹果、ARM、Broadcom、CodePlay、EA、爱立信、飞思卡尔、富士通、通用电气、GraphicRemedy、HI、IBM、Intel、Imagination Technologies、美国Los Alamos国家实验室、摩托罗拉、Movidia、诺基亚、NVIDIA、Petapath、QNX、高通、RapidMind、三星、Seaweed、S3、意法半导体、Takumi、德州仪器、东芝和Vivante。OpenCL 2.0Khronos Group2013年11月19日宣布了OpenCL通用计算标准的2.0版本特性,其中对共享虚拟内存的支持是一大亮点(此前NVIDIA发布了CUDA 6规范也同样支持共享虚拟内存,但目前仅限Kepler和Maxwell架构的N卡。此外,AMD的GCN架构显卡同样支持。AMD的Kaveri APU支持HSA异构计算和hUMA统一物理寻址,较虚拟共享更加先进。)1、共享虚拟内存主机和设备内核可以直接共享复杂的、包含指针的数据结构,大大提高编程灵活性,避免冗余的数据转移。2、动态并行设备内核可以在无需主机交互的情况下进行内核排队,实现灵活的工作调度,避免数据转移,大大减轻主处理器的负担。3、通用内存空间无需指定地址空间名称即可为引数(argument)编写函数,不用再为程序里的每一个地址空间名称编写函数。4、图像改进图像支持,包括sRGB、3D,内核可以读写同一图像。5、C11原子操作新的C11原子和同步操作子集,分配在同一工作组内6、Pipes以FIFO格式组织数据的内存对象,可以直接读写,数据结构可简单编程、高度优化。7、安卓可安装客户端驱动扩展安卓系统上可将OpenCL作为共享对象进行载入

  框架组成

  OpenCL平台API:平台API定义了宿主机程序发现OpenCL设备所用的函数以及这些函数的功能,另外还定义了为OpenCL应用创建上下文的函数。OpenCL运行时API:这个API管理上下文来创建命令队列以及运行时发生的其他操作。例如,将命令提交到命令队列的函数就来自OpenCL运行时API。OpenCL编程语言:这是用来编写内核代码的编程语言。它基于ISO C99标准的一个扩展子集,因此通常称为OpenCL C编程语言。[2] 把上述单独的部分汇集起来,形成OpenCL的一个全景图,如下图所示:

  OpenCL全景图

  OpenCL全景图首先是一个定义上下文的宿主机程序。如上图中中的上下文包含两个OpenCL设备、一个CPU和一个GPU。接下来定义了命令队列。这里有两个队列,一个是面向GPU的有序命令队列,另一个是面向CPU的乱序命令队列。然后宿主机程序定义一个程序对象,这个程序对象编译后将为两个OpenCL设备(CPU和GPU)生成内核。接下来宿主机程序定义程序所需的内存对象,并把它们映射到内核的参数。最后,宿主机程序将命令放入命令队列来执行这些内核。

查看详情

opencl知识

展开查看更多

opencl技术

关于RZ/G2L OpenCL应用运行方法介绍

关于RZ/G2L OpenCL应用运行方法介绍

OpenCL是Open Computing Language的简写,目前已经形成了标准,是跨平台的,通常由图形处理器(GPU)提供硬件层面支持。

2024-02-19 标签:微处理器图形处理器视频编解码器 923 0

如何选择NVIDIA GPU和虚拟化软件的组合方案呢?

如何选择NVIDIA GPU和虚拟化软件的组合方案呢?

NVIDIA vGPU 解决方案能够将 NVIDIA GPU 的强大功能带入虚拟桌面、应用程序和工作站,加速图形和计算,使在家办公或在任何地方工作的创意...

2024-01-12 标签:NVIDIAgpu虚拟机 1098 0

基于 CPU 的 OpenCL 实现案例解析

英特尔正式开源其专有的基于 CPU 的 OpenCL 运行时,首批开源代码共 718,996 行。现在这个巨大的合并请求正在等待进入 Intel 的 L...

2023-02-19 标签:英特尔cpuOpenCL 978 0

将OpenCL编译到FPGA

将OpenCL编译到FPGA

OpenCL 框架解决异构计算的挑战

2022-08-29 标签:fpgacpuOpenCL 2732 0

如何使用OpenCL架构工具实现嵌入式任务并行模式的开发

如何使用OpenCL架构工具实现嵌入式任务并行模式的开发

近几年来,处理器从最求高性能转向追求多内核。这种改变主要是由于量子效应(quantum effects)的作用难以实现高性能和低功耗的兼得,因而需要加速...

2020-10-13 标签:处理器芯片嵌入式 3785 0

linux设备驱动模型一字符设备open系统调用流程

在Linux系统进程中,分为内核空间和用户空间,当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(内核态)

2019-04-26 标签:LinuxOpenCL 2579 0

Xilinx SDAccel开发环境在X86_64位工作站的运行情况

本视频演示了SDAccel开发环境在一个标准X86_64位工作站上运行的情况,以展示其为您所带来的生产力的提升;以及该开发环境对OpenCL,C,C +...

2018-11-27 标签:赛灵思c++opencl 2251 0

Xinlinx SDAccel开发环境是什么?

面向OpenCL,C和C ++的SDAccel开发环境利用FPGA将数据中心单位功耗性能提升高达25倍。作为SDx系列的成员,SDAccel是首个面向O...

2018-11-27 标签:cpu赛灵思gpu 3133 0

OpenCL应用程序的主机代码和内核元素

用于异构计算的OpenCL标准为实现OpenCL标准的所有计算设备定义了基本编程模型。 该视频介绍了OpenCL应用程序的主机代码和内核元素。 这些...

2018-11-30 标签:赛灵思应用程序opencl 2234 0

查看更多>>

opencl资讯

武汉凌久微发布第二代图形芯片GP201,性能超越AMD E8860嵌入式平台

据悉,GP201在三维(3D)性能、二维(2D)多边形描绘、椭圆形绘制、像素及图像移动、窗口绘制以及对OpenCL库国产化平台的支持等方面均超越了AMD...

2024-05-07 标签:嵌入式图形芯片OpenCL 1198 0

龙芯:自主研发CPU提升性能,单核通用性能提高20倍

张戈强调,龙芯CPU的主要IP核均为自主研发,这使得其性价比得到显著提升。他指出,国产CPU与主流CPU的差距主要体现在单核性能上,而非多核性能。近年来...

2024-04-25 标签:cpu龙芯OpenCL 793 0

Intel altera opencl入门

Intel altera opencl入门

准备工作:下载DE5-Net开发板的全套软件安装包,http://www.terasic.com/downloads ... 5NET_openCL_B...

2024-04-13 标签:FPGA编译器OpenCL 1317 0

AMD锐龙8000G APU核显性能翻倍

AMD锐龙8000G APU核显性能翻倍

AMD即将发布的桌面版锐龙8000G APU已经多次曝光,大致规格已经没啥秘密了,现在又第一次看到了GPU核显的频率,很猛。

2024-01-05 标签:amdPCIeAPU 1118 0

联发科9200和a16性能参数对比

联发科9200和a16性能参数对比 在现今移动设备应用领域,性能是大多数用户关注的一个重要因素。而联发科技和a16是两个备受瞩目的处理器品牌,二者的性能...

2023-08-31 标签:处理器OpenCLCortex-A53 1201 0

rk3588和酷睿i3对比哪个好?

rk3588和酷睿i3对比哪个好? 如今,在市场上,有很多种不同的处理器可供消费者选择,其中比较常见的是龙芯、联发科、高通骁龙、Intel 酷睿等处理器...

2023-08-15 标签:处理器OpenCLGPU芯片 2370 0

如何使用此XSA以及如何创建在目标平台上实现设计加速所需的软件镜像

但对于边缘(AArch64 或 Arm)平台,我们需要添加 ZOCL 驱动。ZOCL 驱动用于为每个内核分配资源。在本文中,我们将讲解如何向全新或现有 ...

2020-11-03 标签:软件镜像OpenCL 2752 0

Windows和DirectX 12设备都将会支持OpenCL和OpenGL

由于并非所有 Windows 设备都对 OpenCL 和 OpenGL 硬件加速技术提供良好的支持,因此游戏开发者经常会发现他们很难在 Windows ...

2020-03-25 标签:WINDOWSOpenGLOpenCL 2540 0

开源版本的RISC-V GPGPU或许要来了

来自乔治亚理工大学的开发人员使用免费和开源的RISC-V指令集体系结构:Vortex,创建了与流行的OpenCL编程框架兼容的通用图形处理单元GPGPU。

2020-03-08 标签:OpenCLRISC-V 3479 0

基于SDAccelTM 开发环境减少FPGA在应用中使用时造成的障碍

基于SDAccelTM 开发环境减少FPGA在应用中使用时造成的障碍

FPGA 一直有望超越CPU 和GPU 实现方案,拥有更高的算法性能以及更低的功耗范围。但直到现在因为编程模式未能如愿以偿。而这一编程模式又是有效利用F...

2017-11-17 标签:openclsdacceltm 951 0

查看更多>>

opencl数据手册

相关标签

相关话题

换一批
  • 深度学习
    深度学习
    +关注
  • 工业4.0
    工业4.0
    +关注
    工业4.0是由德国政府《德国2020高技术战略》中所提出的十大未来项目之一。该项目由德国联邦教育局及研究部和联邦经济技术部联合资助,投资预计达2亿欧元。旨在提升制造业的智能化水平,建立具有适应性、资源效率及基因工程学的智慧工厂,在商业流程及价值流程中整合客户及商业伙伴。
  • 英伟达
    英伟达
    +关注
    Nvidia 是全球图形技术和数字媒体处理器行业领导厂商,NVIDIA的总部设在美国加利福尼亚州的圣克拉拉市,在20多个国家和地区拥有约5700名员工。公司在可编程图形处理器方面拥有先进的专业技术,在并行处理方面实现了诸多突破。公司创立于1993年1月,总部位于美国加利福尼亚州圣克拉拉市。
  • BeagleBone
    BeagleBone
    +关注
  • mbed
    mbed
    +关注
  • 无人机技术
    无人机技术
    +关注
    以无人驾驶来说,城市中将建造一个巨大的交通共享网,只要拿出手机就能随时呼叫无人驾驶汽车服务;交警能精准判断每一辆汽车去向,更有效地管理交通……
  • LD3320
    LD3320
    +关注
  • OpenWrt
    OpenWrt
    +关注
    OpenWrt 可以被描述为一个嵌入式的 Linux 发行版。(主流路由器固件有 dd-wrt,tomato,openwrt,padavan四类)对比一个单一的、静态的系统,OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。
  • ARM架构
    ARM架构
    +关注
    ARM架构过去称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。
  • DragonBoard 410c
    DragonBoard 410c
    +关注
    Qualcomm最新的“龙板”——Qualcomm DragonBoard 410c,是一枚功能极为强大,身材特别小巧的开发板,它集成了目前最流行的智能手机处理能力,帮您实现对各种智能硬件的天马行空想象。您可以研用“龙板”实现高清视频、Wi-Fi/蓝牙、多媒体、3D游戏等各项功能。
  • 嵌入式操作系统
    嵌入式操作系统
    +关注
    嵌入式操作系统(Embedded Operating System,简称:EOS)是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。
  • Windows CE
    Windows CE
    +关注
     Windows Embedded Compact(即 Windows CE)是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。
  • JDI
    JDI
    +关注
    JDI(Java Debug Interface)是 JPDA 三层模块中最高层的接口,定义了调试器(Debugger)所需要的一些调试接口。基于这些接口,调试器可以及时地了解目标虚拟机的状态,例如查看目标虚拟机上有哪些类和实例等。
  • NFS
    NFS
    +关注
      网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
  • 麒麟960
    麒麟960
    +关注
    麒麟960(kirin 960)是海思半导体有限公司推出的新一代移动设备芯片,麒麟960首次配备ARM Cortex-A73 CPU核心,小核心为A53,组成四大四小的big.LITTLE组合,GPU为Mali G71 MP8。
  • tizen
    tizen
    +关注
  • SiliconLabs
    SiliconLabs
    +关注
  • X86架构
    X86架构
    +关注
  • uCOS II
    uCOS II
    +关注
  • ARM公司
    ARM公司
    +关注
    ARM公司是一家知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片,而是通过转让设计方案,由合作伙伴生产出各具特色的芯片。
  • 米尔科技
    米尔科技
    +关注
    米尔是一家专注于ARM嵌入式软硬件开发的高新技术企业。在以客户为中心的指引下,米尔为嵌入式领域客户提供专业的ARM工业控制板、ARM核心板、ARM开发工具、充电桩计费控制单元及充电控制板等产品和技术服务。
  • 数字电子钟
    数字电子钟
    +关注
  • A6处理器
    A6处理器
    +关注
  • 大联大友尚
    大联大友尚
    +关注
  • YunOS
    YunOS
    +关注
  • OpenStack
    OpenStack
    +关注
    OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。
  • MMU
    MMU
    +关注
    MMU是中文名是内存管理单元,有时称作分页内存管理单元,它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、中央处理器高速缓存的控制,在较为简单的计算机体系结构中,负责总线的仲裁以及存储体切换。
  • 马云
    马云
    +关注
  • OMAPL138
    OMAPL138
    +关注
    OMAP-L138是美国德州仪器(TI)推出全新DSP+ARM工业处理器 ,这款芯片也是业界功耗最低的浮点数字信号处理器 (DSP) + ARM9处理器,大大降低了双核通讯的开发难度,可充分满足工业应用的高能效、连通性设计对高集成度外设、更低热量耗散以及更长电池使用寿命的需求。
  • 中国硬件创新大赛
    中国硬件创新大赛
    +关注

关注此标签的用户(2人)

钢铁侠私人助理 小保保

编辑推荐厂商产品技术软件/工具OS/语言教程专题