APP下载

认清GPU的流处理器作用 别被它的数量忽悠

2009-08-27

现代计算机 2009年5期
关键词:像素架构处理器

天 一

卖场中,一位装机技术员侃侃而谈:“NVIDIA最新的GTX275显卡核心只有240个流处理器,ATI的HD4890显卡核心却有800个流处理器,你要最高性能的显卡,当然要选HD4890显卡。”Tommy一脸迷惑,心下怀疑:“真的是这样吗?为什么有人说GTX275比HD4890性能好呢?”

AMD-ATI显卡(以下简称A卡)和NVIDIA显卡(以下简称N卡)在流处理器数量上的巨大差异给Tomy造成的困惑相信许多读者也会有。其实,这个情况和不同厂商、相近性能的cPu的二级缓存数量存在差异的情况相类似(详见本刊2009年1月刊菜鸟训练营栏目文章),简单来说就是“不同架构的GPU,流处理器的作用不尽相同,不能直接比较数量。”深入的解释请看下文说明。

什么是流处理器

早在微软推出的Directx 7当中就曾经提出过一个概念——T&L(中文名称是坐标转换和光源),它可以看作是流处理器的鼻祖。随着显卡核心芯片技术的发展,在DlrectX8中由微软首次提出了shader的概念,并且将shader分为VerteXshader(顶点着色器,又称VS单元)和Pixel shader(像素着色器,又称Ps单元)。

一幅游戏画面是怎样显示的呢?其中,3D物体的几何形状、光亮和阴影的控制是由VerteX shader来实现的,而Pixel shader是对像素资料进行操作运算的指令程序,其中包括了像素的色彩,深度坐标等资料。在GeForce8之前,Pixel Shader和Vertex shader这两个参数非常重要,这两个部分的多少完全决定了显卡的性能表现,N卡和A卡双方都为了提升Pixel shader和Vertex shader的数量而想尽一切办法。

但是,在Directx 10这一代显卡中,业界提出了一个新的概念——统一渲染架构,就是把原有的VS单元和PS单元统一起来,统称为shader运算单元,这也就是我们所说的流处理器(stream Processor)。因此,上述任务就由流处理器统一执行了。既然流处理器是来自于VS单元和PS单元的统一渲染架构,那么,流处理器的作用与VS单元+PS单元的合作用就是基本相同的,只是添加了全新的处理单元——Geometry shader(几何渲染器,又称Gs单元)。

名称的玄机

同一架构的显卡,流处理器的个数自然是越多越好,相信读者也在各大网站了解到这样的信息——“同价位的产品中,N卡的流处理器数量要少于A卡”。比如本文开头的装机技术员提到ATI Radeon HD4890显卡比NvlDlA GeForce GTX275显卡的流处理器数量多,这是正确的,但是性能却是前者稍逊于后者。这是为什么呢?

其实,在“流处理器”的名称上,A卡和N卡存在细微的差别,N卡的流处理器全称为:stream Proces—sin-g,而A卡的流处理器全称为Stream Processing Units。一词之差却让两者的性能差距有着天壤之别。而且因为A卡和N卡的GDU架构存在根本性的差异,所以流处理器的工作方式和用途也有所差异,故不能直接比较流处理器的数量。这就可以解决本文开头的顾客Tommy的疑问了,A卡的GPU流处理器数量多很多,但性能不一定就好。下面我们来分析A卡和N卡的GPU架构及流处理器的工作方式,看看有什么不同。

在DireccX 9时代末期,AT噫识到像素渲染的重要性,就通过1:3的架构,提高了像素着色器的数量。到了Dlrectx 10时代,ATI还是通过这种方式来提高重要的像素渲染性能。从Rv770的核心架构图中可以看出,现在在ATI的GPU中,流处理器(Stream Processing)和流处理单元(stream Processing Units)的比例就是1:5,也就是说,ATI的每个“Stream Processing”都包含有5个“streamProcessing units”。RV770的流处理且群扩充至10组,因此数量也有了2.5倍的增长,达到160个(160×5=800个流处理单元)。所以A卡所称的“流处理器”实际上一般是指流处理单元。

NVlDlA方面,GeForce GTx 200核心架构分为四个层。最上面一层包括几何着色器(Geometry shader),顶点着色器(Vertex Shader)和像素着色器(Pixel Shader)。中间一层包括了10组TPcs(计算处理器群集),每组TPc里面又包含了3组sMs(流处理器组),每组sM里面就包含了8个流处理器单元或计算单元。这样一来,GeForce GTX 200显卡就一共包含了240个流处理器单元或计算单元。

两种架构,优劣各异

在进入统一渲染架构时代后,提高shader运行频率与效率是NVIDIA主导的设计思路,而AMD则维持庞大的流处理器数量。两种思路各有优劣。

1N的优势和A的劣势

N卡的GPu中每个流处理器都具有完整的ALU功能,在发出一条操作指令时每个流处理器都能充分工作。而A卡的GDU中每个流处理器的5个流处理单元都是固定的,不能拆开重组,如果在处理纯4D指令的时候,每个流处理器只能处理一条4D指令,有一个流处理器单元闲置,但却无法加入其他组合来共同工作。

简单地说,一个指令任务派发下来的时候,N卡的GDu只需要1个“人”独立工作即可完成,而A卡的GPU则需要5个“人”结组工作才能完成。ATI的人数虽然多,但这5个“人”中有可能会有4个“人”闲置,因为这4个“人”不具有独立完整的ALU功能,不能执行函数运算,浮点运算和Multipy运算。

2N的劣势和A的优势

ATI的设计也有其显著的特点——浮点运算能力强大。也就是说,如果单纯比拼显示核心在浮点运算上的能力的话,ATI更强。要知道在目前GPGPU项目应用比较多的科学计算方面,理论上ATI的显示核心会更强大,未来更能适应GPU和CPU融合的趋势。

猜你喜欢

像素架构处理器
基于云控平台雾计算架构的网联汽车路径控制
“像素”仙人掌
高像素不是全部
VIE:从何而来,去向何方
企业架构的最佳实践
神回复
三层架构在企业信息化中的应用
英特尔发布至强5500系列智能处理器
火线热讯
您的像素,饱和吗?[上]