服务器 频道

王道何在 ATI Stream凭什么撼动CUDA

    【IT168 专稿】前不久,AMD公司两位资深产品经理Terry Makedon 和Ed Buckingham在AMD中国总部介绍了ATI的流处理技术(Stream Computing),同时也透露了该公司"GPGPU(general purpose computation on GPU)"的开发计划。据Terry Makedon称,GPU的性能正以超越摩尔定律的速度不断发展,而通过"ATI Stream"这项技术,ATI可以让GPU和CPU联合起来进行通用计算,大大提高计算机的速度。

    1. AMD:CPU+GPU才是王道

    "The Future is Fusion"(融聚未来)是AMD下半年刚放出来的新企业品牌。而实际上,Fusion对于AMD来说有另一层意思。那就是AMD认为了未来的发展方向是CPU与GPU的某种融合。

    其实我们从AMD下决心收购ATI 就可以看出这种对未来的预见性。Terry Makedon是"Radeon"和"FireStream"等GPU产品的经理。他介绍到,近两年来,CPU都是以摩尔定律的速度发展,哪怕是到了多核时代仍然如此。但是从2003年开始,GPU的发展速度就开始越来越快,到了现在已经远远把CPU甩在了身后。

    这主要是由于CPU执行的是串行指令,而GPU的运行则是将任务分解为多分,并行执行。因此尽管人们为串行指令执行方式做了很多优化,加入了包括超标量,超流水线,高速缓存等技术,并用高频率来提升性能,但CPU仍然无法和采用并行架构的GPU相比。要知道在ATI HD4850/70系列显卡中,其并行流处理器的数量高达800个--你几乎可以理解为CPU领域里的800核处理器。

    那么,为什么CPU不改变一下自己的结构,像GPU一样并行处理呢?答案是,CPU是通用计算处理器,CPU的诞生就是为了简化程序设计,让程序员可以用汇编,进而用充满魅力的高级程序语言来编程。从原理上讲,因为人脑或者说人的思维逻辑是线性的,因此人在设计串行指令时会更加容易和简便,这种简便在最初的时候是非常有用的--要知道,那个年代还没有GPU。

    而之后,由于多媒体时代的到来,人们对图形图像和游戏的视觉需求越来越高,在计算诸多像素点和渲染的过程中,CPU的线性串行运算越来越力不从心。因此人们开始寻求更高效的架构,这就是并行处理--也就是流处理。这种架构将一个庞大的运算任务分割成很多小任务同时计算,之后将结果结合起来,很像众蚁食象的概念。

    因此,我们总结发现,GPU相对CPU具有着两方面的特性,一是具备庞大的并行运算能力,任务越复杂,越能体现其运算优势(AMD技术人员现场演示了一个地动波寻找石油的DEMO,在该DEMO中,GPU只用了1分钟左右的时间就完成了整个地动波的波形运算和结果显示,而CPU用了2分钟甚至还没有完成1/10的工作量。),另一个特性是因为GPU的并行能力,所以其编程环境和开发方法与CPU相比要有所不同。

    AMD意识到GPU的强大运算潜力并不一定只该应用在图形处理领域,在其他需要进行类似运算的领域里,GPU同样可以发挥作用。AMD认为,让CPU充当一个指令翻译或是将任务分解为很多小任务的工作,然后将这些任务交给GPU来运算,这会大大提高运算速度。于是有了Fusion的融合理念。

    Terry称,相比CUDA需要独立的编程环境来针对GPU编程,ATI的ATI Stream SDK则是开放的。也就是说,通过后面第三方开发的接口程序,用户甚至可以直接让CPU充当翻译的工作,只需要像以往一样编程,也可以调用GPU来做大规模运算。

    这就是AMD的CPU+GPU创意独到的地方,在这个概念里,我们不会看到GPU取代CPU的想法,也不会看到CPU仍然把持主要计算,而让GPU充当协处理器。实际上,GPU在某种程度上与CPU站在了一起--这很像CPU本身就是运算器和控制器的集合--CPU和GPU真正融合,互相发挥长处,弥补不足,发挥更大性能。

 

0
相关文章