作为NVIDIA这方来说CUDA从推广到实际运用都得到了从无到有的蜕变,目前也取得了不错的成绩。那么此时对于大多数读者来说会产生一个疑问,开放式的OpenCL 1.0标准出台,AMD与NVIDIA有了相同的GPU计算标准,此时NVIDIA的CUDA是否不再成为竞争优势呢?而CUDA与OpenCL又是否有关
了解OpenCL,了解OpenCL工作组
何为OpenCL?——OpenCL实际上是针对异构系统进行并行编程的一个全新的API,简单来说OpenCL它可以利用GPU,然后进行一些并行计算这方面的工作,这是API应用程序的编程接口,图形里面也有很多API,比如OpenGL那是针对图形的,OpenCL是针对并行计算的API。OpenCL开发人员可以利用GPU和CPU的计算能力,把GPU和CPU异构的系统运用在很多并行计算的领域里面。而OpenCL最早由苹果公司在六月提交到了Khronos Group,这是一个业界的标准化组织,旨在提供一个通用的开放API,在此基础上开发GPU通用计算软件,随后Khronos成立“OpenCL工作组”负责标准的制订工作。实际上OpenCL对于业界来说是非常重要也是非常好的一个标准,这样的话业界有一个共同的标准可以利用GPU的强大计算能力,然后应用在图形以外各种各样的并行计算方面。
OpenCL工作组包括哪些?——OpenCL工作组的成员有很多,我们从中可以发现,不仅OpenCL影响着硬件厂商,其中还包括了很多移动设备领域的厂商,因此我们不应该将这个组织以及他们制定的标准局限在PC平台,也说明了在很多非PC领域上对开放API标准的需求同样重要。以前的OpenGL API并不能满足当前的需要,而OpenCL正是用来满足这些需求的,也从另一个侧面反映了NVIDIA一直强调的视觉计算发展方向。
NVIDIA、苹果与OpenCL——OpenCL最早是苹果公司提出来,早在2008年的10月份就我们就已看到采用了NVIDIA最新GeForce 9300/9400m移动芯片组的MacBook、MacBook Pro亮相,从侧面证明了苹果把GPU计算当成一种未来的趋势,并也已经宣布其明年发布的Mac OS X 10.6 Snow Leopard操作系统将集成OpenCL标准。实际上这也是促成OpenCL标准发布的重要条件之一。
Host Code |
Compute Kernel |
另外值得注意的是,就在两个多月前OpenCL也第一次进行了演示,其中所使用的平台是基于NVIDIA的GPU,也是目前为止OpenCL演示程序的唯一的平台。从Host Code 的部分我们可以看到,Host Code比CUDA更为繁琐,而右侧的Compute Kemel部分笔者也很难分清。但从概念上基本可以这样认为,在程序的开发上,两者还是有相当的差异的。至于如果OpenCL标准出台后,对于NVIDIA CUDA是否会产生影响呢?
网友评论