认清GPU的流处理器作用

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

  AMD-ATI显卡(以下简称A卡)和NVIDIA(以下简称N卡)在流处理器 数量上的巨大差异给Tommy造成的困惑相信许多读者也有。其实,这个情况和不同厂商、相近行能的GPU的二级缓存数量存在差异情况类似,简单来说就是 “不同架构的GPU,流处理器的作用不尽相同,不能直接比较数量。”深入的解释请看下文说明。

  什么是流处理器

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

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

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

同一架构的显卡,流处理器的个数自然是越多越好。相信读者也在各大网站了解到这样的信息——“同价位的产品中,N卡的流处理器数量要少于A卡”。比如本文 开头的装机技术员提到ATI Radeon HD4890显卡比NVIDIA GeForce GTX275显卡的流处理器数量多,这是正确的。但是性能却是前者稍逊于后者.这是为什么呢,其实在“流处理器”的名称上A卡和N卡存在细微的差别,N卡 的流处理器全称为Stream Processing,而A卡的流处理器全称为Stream Processing Units,一词之差却让两者的的性能差距有着天壤之别。而且因为A卡和N卡的GPU架构存在根本性的差异,所以流处理器的工作方式和用途也有所差异,故不能直接比较流处理器的数量。这就可以解决本文开头的顾客Tommy的疑问了 。A卡的GPU流处理器数量多很多但性能不一定就好。下面我们来分析A卡和N卡的GPU架构及流处理器的工作方式,看看有什么不同.

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

  NVIDIA方面,GeForce GTX200核心架构分为四个层。最上面一层包括几何着色器(Geometry Shader)、顶点着色器(Vetex Shader)和像素着色器(Pixel Shader).中间一层包括了10组TPCs(计算处理器群集)。每组TPC里面又包含了3组SMs(流处理器组) ,每组SM里面就包含了8个流处理器单元或计算单元,这样一来,GeForce GTX 200显卡就一共包含了240个流处理器单元或计算单元.

 两种架构 优劣各异

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

   1、N的优势和A的劣势

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

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

  2、N的劣势和A的优势

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


你可能感兴趣的:(GPU,其它文章,计算机系统)