MCPLive > 杂志文章 > 全角度解析OpenCL通用计算标准

全角度解析OpenCL通用计算标准

2009-02-18沈亮《微型计算机》2009年2月上

没错,海量的数据带来了各式各样数据处理的需求,网络浏览、平面或者3D图形加速、数据服务器、分布式云计算等等,而现在各计算平台之间的兼容性却不容乐观,举几个明显的例子:

◆我们使用双核处理器的计算机已经快有5个年头了,但为数众多的应用软件到目前为止仍不能支持双核CPU,就算能够支持双核,在未来面对四核、八核或更多核心的处理器时又要重新开发;

◆运算能力已经超过1 TFlops的高端3D图形处理器只能用来对付3D游戏,其它时候它的作用更像是一块“电热片”;

◆游戏软件开发商在发布一款新游戏的时候,往往会推出PC、PS3、XBox360、Wii、PSP、
NDSL等多个平台的版本,其中的翻译和移植工作就占去了开发组大部分时间……

所有的一切都是因为平台的差异造成的,也正因为这种差异的存在,严重降低了软件在各个平台之间移植和运行的效率,那有没有一种办法可以让大家心平气和地坐在一起,“求同存异”,一起来协商解决这个问题呢?这就是我们今天要给大家介绍的OpenCL,开放式通用计算标准。

其实业界在几年前就已经开始关注这个领域,不过那时的解决方案都是“各扫自家门前雪”,并没有达成一个共识。早先斯坦福大学牵头,推出了利用GPU以及PS3进行的Folding@HOME蛋白质计算项目;此后Adobe公司推出了新版本的Acrobat,可以利用GPU达到加速PDF文档载入和处理的效果;近期,AMD与NVIDIA公司也纷纷拿出自己的视频编码程序Avivo Video Converter与
Badaboom,利用GPU的加速能力来进行视频编码运算。


用GPU为蛋白质分子计算加速

就连大名鼎鼎的NVIDIA CUDA,虽然在业界广受好评,但是也只能用在NVIDIA自家的GPU上面。为了避免未来的通用计算领域发展成各自为政、诸侯割据的混乱局面,现在必须要建立一个立足于通用计算的行业标准,在这个大背景下,OpenCL诞生了。

OpenCL——IT贵族们的孩子

OpenCL是Open Computing Language,即开放计算语言的缩写。设立OpenCL的目的就是为日益庞大的并行计算市场提供一个开放的、免费的工业标准。在关于OpenCL的标准说明中,组委会特别提到了一个单词——“heterogeneous”,这个单词本身就有“不同种类的、异类的”的含义,这也暗示了OpenCL将建立在不同的处理器架构上,比方说x86 CPU、GPU、Cell处理器乃至于ARM构架的DSP处理芯片等等。OpenCL涵盖的范围非常广,如3D、图形图像处理、数据压缩/解压缩、数据库处理等完全不同种类的应用。


OpenCL想成为各种处理器应用的一个交集

难以想象的是,提出OpenCL倡议的竟然是大名鼎鼎且以封闭著称的Apple公司。2008年初,拥用强大软件研发能力的Apple公司私下向另外几位CPU、GPU的大佬们介绍了OpenCL的概念,并获得了广泛支持,初步组建了Op e nCL的圆桌会议。此后,在2008年6月,Ap ple公司将OpenCL草案移交给Khronos标准化组织,并且宣布Apple将在2009年发布的Snow Leopard新一代操作系统中加入OpenCL的支持。


已经宣布支持OpenCL的IT公司

正因为Apple等诸多大公司的支持,OpenCL从项目立项到去年12月份发布1.0标准,之间仅用了6个月的时间,真是兵贵神速;而且目前宣称支持OpenCL,并参与其中的成员几乎涵盖了全球主要的处理器、计算芯片供应商,声势非常浩大!不过现在摆在大家面前的难题是,不光计算机中各个部件的用途广泛,设计各异,连手机DSP处理器都要被涵盖在内,大家如何做到真正意义上的通用计算呢?

分享到:

用户评论

共有评论(3)

用户名:

密码: