融聚未来!细看ATI Stream并行计算技术

文章正文
发布时间:2024-12-12 07:50

1前言:GPU并行计算

1 前言:GPU并行计算

  在过去的几年里,GPU一直以每年或每半年更新一代的速度发展,其发展速度已远把CPU抛在后面。随着DirectX 10规范的出现,GPU开始采用统一渲染架构,其性能与功能也变得更为强大,它能做的事情已不单只是运行3D游戏,不少科学计算领域已开始利用GPU的优势进行计算。

  由于CPU与GPU在架构完全不同,软件要在GPU上运行,就必须通过特定的环境或接口。为此,NVIDIA方面首先发布了CUDA这项技术,并放出了相应的开发包,程序员通过这个接口进行软件开发,软件就能在GeForce 8系列之后的显卡上运行。作为NVIDIA显卡市场上最大的竞争对手,AMD方面当然不甘落后,在08年12月发布了ATI Stream流处理技术回应NVIDIA的CUDA。这样,NVIDIA与AMD-ATI的竞争便从3D性能扩展到GPU并行计算上了。

ATI Stream


ATI Stream流处理技术

  AMD-ATI的ATI Stream流处理技术可使Radeon HD系列显卡发挥出其强大的并行计算能力。现在AMD的高端显卡Radeon HD 4850/4870拥有800个流处理器,可以简单理解成拥有800个核心,通过ATI Stream便可发挥这800个核心的计算能力,这是4核心CPU远不能相比的。因此GPU更适合并行计算。

AMD Stream流处理技术


AMD观点:CPU和GPU同样重要

  其实无论是NIVIDA还是AMD,都意识到GPU强大的运算能力并不只在3D游戏领域,在其他需要类似大型运算的领域里,GPU同样可以胜任,因此便有了GPU用于并行计算的概念。但与NVIDIA认为GPU将取代CPU的观点不同,AMD认为CPU和GPU同样重要。AMD认为,GPU可用于大型运算,而CPU则继续负责传统的串行运算。只有两个配件相互配合,发挥自己的优势,才是最优化的平台,这也是AMD的“Fusion”概念。

2什么是ATI Stream技术?

2 什么是ATI Stream技术?

ATI Stream


什么是ATI Stream?

  ATI Stream是AMD-ATI针对旗下图形处理器(GPU)而推出流处理技术,利用这种技术可以充分发挥AMD GPU的并行运算能力,用于对软件进行加速或进行大型的科学运算。也许有网友会问:“为什么要用GPU进行软件加速呢?现在的顶级四核CPU还不够快吗?”是的,CPU采用的是串行架构,执行的是串行指令,虽然四核CPU在并行计算方面有所增强,但还是远比不上采用并行架构的GPU,试想想,现在AMD顶级的HD 4850/HD 4870 GPU拥有800个流处理器,我们可以简单理解为拥有800个核心,其并行计算能力是CPU不能相比的。

  GPU的并行计算其实是把任务分解成若干个小任务同时执行,然后把处理结果汇总得到最终结果。计算量越大、越复杂则越能体现出GPU并行计算的优势。但由于GPU跟CPU是两个不同架构的产品,因此对GPU开发软件就需要特定的开发环境与接口,比如NVIDIA的CUDA,AMD方面则是ATI Stream。

ATI Stream


ATI Stream基于OpenCL开放标准

  也有人会问,NVIDIA CUDA和ATI Stream有什么不同呢?首先是ATI Stream是基于OpenCL这一开放标准的,而NVIDIA CUDA是私有的标准。为何要将这一技术完全开放?我们可以回顾一下历史,很多不开放的技术标准最终结果都是被淘汰。拥有一定DIY资历的玩家都会记得早年3DFX公司的Glide图形技术接口和Rambus公司的RDRAM这两项技术的没落。正因如此,AMD在制定ATI Stream时直接采用OpenCL这一开放性标准,以获得更多厂商的技术支持。

  另外,根据ATI工程师介绍,CUDA需要独立的编程环境来对GPU进行编程,而ATI Stream SDK则是开放的,程序员只需要像以往一样编程,通过调用接口程序,即可调用GPU进行大规模运算。

  小知识:OpenCL,全称Open Computing Language,即开放计算语言,是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于程序员能为高性能计算开发软件。适用于多核CPU、GPU、CELL架构等并行处理器,在未来的娱乐、科学等领域有广阔的前景。

3ATI Stream为主流软件提速

3 ATI Stream为主流软件提速

  前面已对ATI Stream技术作了详细介绍,相信大家对其已有一定的了解。但从理论上看,ATI Stream离一般用户很远,其实并非如此,根据AMD官方介绍,ATI Stream正向一般用户的生活靠拢,不久之后用户将渐渐能感受到ATI Stream带来的好处。

ATI Stream


ATI Stream渗透的领域

  根据官方资料显示,ATI Stream流处理技术将在娱乐、工作和游戏中带给用户不同的体验。在娱乐领域中,将来越来越多的视频转换、编辑软件会提供对ATI Stream的支持,例如ATI AVIVO视频转换工具。在工作软件中,如Excel、PowerPoint等也将加入ATI Stream的支持。最后就是显卡的传统优势项目——游戏体验,例如物理加速,竞争对手NVIDIA一直在宣传的项目,其PhysX物理加速在发布后的数月里,即有正式版游戏提供支持,使GeForce显卡多了一个优势项目。而AMD方面也积极跟进,表示在未来会加入物理加速、人工智能的支持。

  说了这么多,究竟如何获得ATI Stream技术呢?很简单,只需要安装ATI Catalyst 8.12或之后版本的显卡驱动即可,目前只有Radeon HD 4800系列与HD 4600系列能支持ATI Stream,但AMD表示,在今年还会加入HD 2000/3000系列显卡的支持。ATI首先带来支持ATI Stream的软件是尘封已旧的ATI AVIVO视频转换软件。

ATI Stream


ATI VIVO是首个支持ATI Stream的软件

  根据AMD官方介绍:ATI的AVIVO视频转换器是基于ATI的Stream技术实现、首个面对个人用户的免费软件,它能够让AMD GPU与CPU共同加速,来一起完成以往仅有CPU参与的视频压缩,大大减少压缩时间。与支持NVIDIA CUDA技术的Badaboom视频压缩软件相比,ATI AVIVO拥有更好的转换效率,并支持更多的格式,最重要的是ATI AVIVO是免费的,而Badaboom是收费的。当然,在我国这点没什么区别。

ATI Stream


速度上ATI AVIVO比Badaboom更有优势

  在视频转换的速度上,ATI AVIVO确实比Badaboom更快。转换同一个视频,HD 4870的电脑采用AVIVO仅需48秒就转换完成,而GTX 280采用Badaboom则需要114秒。当然,速度不是唯一的标准,质量更为重要,经笔者使用,AVIVO的压缩质量目前还比不上Badaboom,这点仍需要改进。而AMD-ATI方面也表示将在今年第一季度会对AVIVO进行升级。

ATI Stream


未来将有更多软件支持ATI Stream

  GPU通用计算有着广阔的前景,目前已有数家软件公司表示会对ATI Stream进行支持,实现软件加速。这其中就包括了CyberLink公司的PowerDirector(威力导演7,是一款视频后期编辑软件)、ArcSoft TotalMedia公司的Theater(视频编辑软件)软件和Microsoft PowerPoint等。

4总结:融聚未来!CPU/GPU均重要

4 融聚未来!CPU/GPU均重要

  GPU强大的浮点运算能力是CPU无法比拟的,GPU并行计算确实给显卡的发展开辟了新的道路。ATI Stream和NVIDIA CUDA通用计算技术,正好弥补了CPU并行计算能力的不足,将未用户带来更好的体验。与NVIDIA力推GPU最为重要或Intel坚持CPU更重要不同。AMD方面的则认为两者均重要,CPU负责传统的串行计算,GPU则负责高性能的并行计算,只有结合两者的长处才能发挥电脑的最大性能,便提出了 “The Future is Fusion”(融聚未来)。

ATI Stream


The Future is Fusion

  在这个概念里,不会有GPU取代CPU的想法,也不会有坚持CPU进行主要计算的想法。实际上,AMD要把CPU和GPU真正融合,互相发挥的优势。四核CPU的强项是运行传统的串行计算,而GPU并行计算能力则通过ATI Stream技术来引发。

ATI Stream


ATI Stream拥有广阔的应用前景

  虽然ATI Stream和NVIDIA CUDA这种通用计算有着广阔的前景,但对一般用户而言,它们还处于概念阶段,实际应用还不多。但既然NVIDIA和ATI同时在力挺通用计算,加上OpenCL开发标准的成立,已经有不少软件开发商和程序员已经开始利用GPU对软件进行加速,相信不久之后,用户便可真正体现GPU并行计算带来的益处。当然,无论是NVIDIA CUDA还是ATI Stream,要真正进入普通消费者人群,还有一段很长的路要走......