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

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

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

机遇还是挑战?OpenCL对业界的微妙影响

OpenCL并不是第一个基于通用计算的标准,先是ATI(现AMD)提出了通用计算的概念,并抢先发布了自家的通用计算平台Stream,但因为种种原因后续开发工作不是非常理想;而后NVIDIA公司开发了名为CUDA的通用GPU计算开发包给业界,并小有成果。而英特尔方面也在紧锣密鼓地开发自己的新一代显示芯片——Larrabee,一种集成了10个x86处理器的图形显示单元,可以轻易将其转换为通用计算单元。

既然三家半导体巨头的竞争如此激烈,为什么会在支持OpenCL的问题上出奇的一致呢?
OpenCL与现有平台之间又有什么关联呢?


CUDA目前所取得的一些成就

要解释这个问题,首先就要从OpenCL的第一个字眼“Open”说起。虽然现有的通用计算平台已经在分布式运算、视频加速方面取得了一定进展,但是利用GPU或者是其它处理器进行通用计算仍然是一个新兴市场。如果没有一个强有力的通用开放协议来支持,任何公司都难以凭借一己之力快速和有效推广通用计算的理念。有了OpenCL的支持,通用计算市场这块蛋糕将会迅速膨胀,这对于任何一家参与其中的公司来说,都远远优于独自推广自己的专属平台。

首先,OpenCL对于NVIDIA来说利大于弊。诚然,现阶段NVIDIA在通用计算领域取得了一定的领先优势,但支持OpenCL对其来说并不意味着重新开始。CUDA平台与OpenCL平台都基于C语言编程和并行计算,二者之间并没有不可逾越的技术鸿沟。按照NVIDIA的说法,CUDA完全可以摇身一变成为OpenCL的一个高级开发组件,对于那些熟悉了OpenCL的程序操作员来说,可以迅速上手CUDA的开发环境,并使用CUDA中的一些高级功能加速开发进度。


ATI的Stream平台

对于AMD来说,OpenCL的出现正好解决了燃眉之急。虽然AMD是通用式计算的始祖,但随着市场的变化,AMD这些年来将精力和研发资源重点投向了CPU领域,这就造成其开发组件在完善程度上远远被NVIDIA抛在了后面。如今借助OpenCL的东风,AMD一下子可以在套件这方面拉近与
NVIDIA之间的距离。更重要的是,AMD今后只需要不断发布更强大的硬件和相关底层驱动库就可以了,开发套件的工作可以甩给OpenCL组织,集中力气干自己的事情,这可能是AMD加入OpenCL直接和现实的想法。


早在几年前,英特尔便展出了自己的80核心处理器,之后便转入Larrabee的开发工作中

对于老谋深算的英特尔来讲,支持OpenCL恐怕是一个不得不做的决定。我们可能一开始就忽略了英特尔在通用计算领域称霸的野心,当初提出的Larrabee计划从本质上看就是英特尔自家的通用计算平台,称之为显卡也许不过是其向外界抛出的一个“烟雾弹”——因为无论从哪些方面来说,英特尔更像是在做“几十个CPU”的超级芯片。英特尔很清楚,现在GPU的计算能力早已超过
CPU,如果不早做打算,未来的处境会非常不妙。而且利用自家多年来在x86,尤其是多核CPU上积累的设计经验,如多核集成、数据共享与调度、软硬件平台开发等都为Intel自己的通用计算多核平台奠定了基础。英特尔的初意图可能是想先稳住图形两强,让他们继续局限在3D加速的火拼当中。等到自己的Larrabee开发完成,再配合自家的CPU、芯片组一举拿下通用计算市场。可惜人算不如天算,NVIDIA与AMD的竞争导致战线蔓延,而自家的Larrabee却迟迟不能出手。如果不在此时选择支持OpenCL,那么将来在通用计算市场就会失去更多的话语权。


OpenCL第一波冲击里面肯定少不了Apple的操作系统

后,不得不佩服Apple及其研发团队的创新能力和敏锐的市场嗅觉。从初的图形化界面(
GUI),到后来Mac OS中漂亮的3D界面,Apple电脑在系统中的独特优势总是领先于同时代的PC平台;但随着市场的发展与变化,近十年来Mac OS相对于Windows、Linux操作系统之间的优势已经不再那么明显。

为了保持差异性,并进一步拉开差距,此时提出OpenCL的概念就成了一个绝佳的转折点。可以说开发OpenCL、并宣称迅速在Snow Leopard中将自己目前封闭但相对集中的软件升级至支持
OpenCL,这样的Apple电脑会在系统性能以及用户体验方面再一次大幅领先PC平台,帮助Apple重现昔日的辉煌。

分享到:

用户评论

共有评论(3)

用户名:

密码: