显卡 频道

OpenCL1.0标准发布 CUDA如虎添翼

OpenCL标准制定组织Khronos Group

  业界标准组织KHRONOS在今天正式发布了通用计算标准OpenCL 1.0(Open Computing Language)。

  OpenCL是首个开放的免费通用并行计算标准,将统一管理一台主机的所有计算资源,比如你的多核CPU、GPU等,OpenCL将这些资源统一看作计算单元,共同发挥运算能力完成各类计算任务。OpenCL统一编程环境,开发者能轻松利用异构平台写出高效的程序来。OpenCL将在服务器、PC和手持设置等上得到广泛应用。

OpenCL开发历程

  OpenCL最早由Apple在六月提交到了Khronos Group,这是一个业界的标准化组织,旨在提供一个通用的开放API,在此基础上开发GPU通用计算软件,随后Khronos成立“OpenCL工作组”负责标准的制订工作,在短短的几个月时间内,OpenCL就完成了从无到有的蜕变。

OpenCL工作组成员

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

  作为倡导者苹果已经宣布其明年发布的Mac OS X 10.6 Snow Leopard操作系统将集成OpenCL标准,实际上这也是促成OpenCL标准发布的重要条件之一。

NVIDIA和AMD宣布采用OpenCL 1.0标准

  作为图形芯片的两大巨头,NVIDIA拥有自己的CUDA架构,AMD有自己的Stream Acceleration,同时他们又是OpenCL的支持者。在OpenCL标准发布之后,AMD和NVIDIA立即表态,宣布即将采用OpenCL 1.0编程规范。

  AMD会将合适的编译器和运行库整合进免费的ATI Stream软件开发包(SDK),作为OpenCL的创始人之一,AMD一直以来都极力推崇OpenCL,并尽力赶在2009年上半年开发出ATI Stream SDK的开发者版本,实现对OpenCL 1.0的支持。而NVIDIA则会把它加入GPU计算工具包,因此,这两家的显卡都将支持OpenCL 1.0。从长远来看,这两家厂商共享同一个开放型的规格对于消费者来说是件好事。

OpenCL不会取代CUDA

  CUDA作为NVIDIA最近力推的并行计算架构,目前已取得非常不错的成就。显然大多数的读者都有一个疑问,开放式的OpenCL标准的出台,CUDA将何去何从?

  作为OpenCL标准的制定者之一,NVIDIA肯定不会蠢到作自掘坟墓的事。CUDA包含编译器、软件工具以及应用程序接口(API),对于NVIDIA的显卡而言,OpenCL是进入CUDA并行编程架构的另一个应用程序接口。针对OpenCL以及CUDA,编程人员可以使用相同的理念体系以及并行编程策略。这两者在句法上非常相似,但是OpenCL更适用于OS X,而CUDA可适用于各种平台。针对NVIDIA的产品,OpenCL以及CUDA代码看上去是一样的。它们只是通向GPU加速代码的两种不同途径而已。

CUDA的架构,支持OpenCL等

  CUDA在C语言外加入了OpenCL标准支持,并且在未来还会加入DirectX 11计算(Compute Shader)支持,为开发者提供一个较好的GPU计算选择。虽然CUDA只适用于NVIDIA GPU,OpenCL可以支持任何GPU(DX9以上级别),但两者的关系并非对立的,而是互补的。

  简单的说,OpenCL不会代替CUDA,它实际上是利用CUDA驱动程序堆栈来在NVIDIA GPU上实现高性能计算,OpenCL标准的出台,CUDA更是如虎添翼。

  目前NVIDIA CUDA的用户超过了25000名,应用程序数量超过100个,应用范围也日趋广泛,AMD Stream加速的实际应用暂时是凤毛麟角。OpenCL有助于拓展GPU的功能及市场,难怪NVIDIA和AMD都会积极参与到其中。

0
相关文章