什么是流处理器
流处理器是直接将多媒体的图形数据流映射到流处理器上进行处理的,有可编程和不可编程两种。流处理器可以更高效的优化Shader引擎,它可以处理流数据,同样输出一个流数据,这个流数据可以应用在其它超标量流处理器(Stream Processors,简称SPs)当中,流处理器可以成组或者大数量的运行,从而大幅度提升了并行处理能力。
流处理器的由来
早在微软推出的DirectX 7.0当中就曾经提出过一个概念——T&L(中文名称是坐标转换和光源),它几乎可以看作是流处理器的鼻祖了。不过T&L的处理能力相对于现在的显卡来说已经不值一提了。于是在DirectX8.0中,由微软首次提出了Shader的概念,并且将Shader分为Vertex Shader(顶点着色器,简称VS单元)和Pixel Shader(像素着色器,简称PS单元)。
.jpg)
图一:上一代显卡的运行步骤
其中Vertex Shader负责处理一系列对顶点资料进行操作运算的指令程序,它用来描述和修饰3D物体的几何形状,同时也用来控制光亮和阴影。而Pixel Shader是对像素资料进行操作运算的指令程序,其中包括了像素的色彩、深度坐标等资料。
显卡流处理器问题
N的劣势和A的优势:ATI的设计也有其显著的特点——浮点运算能力强大.也就是说如果单纯比拼显示核心在浮点运算上的能力的话,可能ATI则要强一些,在目前GPGPU项月应用比较多的科学计算方面,理论上能适应GPU和CPU融台的趋势。
N的优势和A的劣势:N卡的GPU中每个流处理器都具有完整酌ALU功能,在发出一条操作指令时每个流处理器都能充分工作.而A卡的GPU中每个流处理器的5个流处理单元都是固定的,不能拆开重组,如果在处理纯4D指令的时候,每个流处理器只能处理一条4D指令,有一个流处理器单元闲置,但却无法加人其他组合来共同工作。
N卡的一个流处理器等于五个A卡的流处理单元,所以HD5970的3200个流处理单元相当于640个流处理器。
流处理器的作用
边缘超级采样抗锯齿:超级采样效果很好,但效率极低,严重影响显卡性能。新的4x抗锯齿方法,只把抗锯齿应用于物体边缘,避免占用过大的缓冲区。工作过程比超级采样稍为复杂,几何引擎生成多边形后,光栅单元会进行描色工作,同时检查当前的纹理,看看它是否需要用2x2采样的方式填充到多边形边缘。如果不是,GPU只计算一种色彩,在中间插入纹理像素,然后用单色填充这个块。这些就是非边缘像素,无须进行抗锯齿处理。
超级采样抗锯齿:最早期的全屏抗锯齿,方法简单直接。首先,图像创建到一个分离的缓冲区,缓冲区图像分辨率高于屏幕分辨率,假设是2*1(或2x),那么缓冲区场景的水平尺寸比屏幕分辨率高两倍,若是2*2(或4x)抗锯齿,缓冲区图像的水平和垂直均比显示图像大两倍。像素计算加倍之后,选取2个或4个邻近像素,此过程称为采样。把这些采样混合起来后,生成的最终像素,拥有邻近像素的特征,那么像素与像素之间的过渡色彩,就变得更为近似,整个图像的色彩过渡趋于平滑。再把最终像素输出到帧缓冲,作为一幅图像存储起来,然后发到显示器,显示出一帧画面。每帧都进行抗锯齿处理,游戏过程中的所有画面都变得带有抗锯齿效果了。