游戏外的竞争!NVATI通用计算技术分析
在GPU并行计算方面,一直都没有一个通用的标准,于是ATI和NVIDIA各自为政,NVIDIA有CUDA开发包及CUDA C编译器,ATI也开发了Stream SDK和Brook+语言。
ArcSoft TotalMedia Thertre支持Stream
CUDA C就是对C语言的延伸,而Brook+也是一种类C的语言,两者有一定的相似之处但并无法相容。也就是说使用CUDA编写的软件,想要支持ATI Stream的话,必须重新编写一遍,这显然是软件开放商极不愿意看到的事情。
支持Khronos Group标准化作业的AMD首席技术官(CTO)Jason Yang称:“软件开发人员希望自己编写的代码能在各种系统上执行。不过,对开发人员来说开发平台越少越好。而能够实现这一想法的正是OpenCL”。另外,Terry Makedon回顾计算机的历史,“供应商的自主规格不能扩大市场,为解决这一问题公开了开放标准,从而开拓新的市场”,OpenCL和DirectX的Compute Shader的公开显示了对GPGPU市场扩大的期待。AMD还将继续采用Brook+。今后还将提供作为高抽象度软件开发环境的Brook+,通过Brook+记述的程序,可以制成在支持OpenCL的处理器上执行的程序。
OpenCL的诞生给整合产业都带来了希望,对消费者来说,一个开放的行业标准无疑要比各自为战的企业标准亲切的多。由于AMD、NVIDIA、Intel同为工作组成员,这一标准的提出为我们描绘了一个美好的未来:无需区分哪家厂商的产品,不分GPU、CPU,系统可以根据当时的应用需要,调动各个处理器的运算能力,以协同合作的方式最快速度完成工作。OpenCL将统一管理一台电脑上的所有计算资源,比如你的多核CPU,以及多个GPU。OpenCL将这些资源统一看待,算作计算单元,并配置各种级别的内存:private、local和global。
据ATI Stream研发团队称,目前ATI已将工作重心转移到了OpenCL上来。ATI在最新公布的Stream SDK 1.3中重写了Brook+以提升性能,将在Stream SDK 2.0中完全支持OpenCL,并积极帮助客户从Brook+过渡到OpenCL。而NVIDIA仍坚持两手抓两手都要硬的策略,为客户同时提供CUDA C及OpenCL的支持,并称CUDA C与OpenCL是互补而非竞争关系。