热点推荐
ZOL首页 > 显卡 > 评测 > 1000元以上 >

传统GPU发展与着色器管线

超越图形界限 AMD并行计算技术全面解析

CBSi中国·ZOL 作者:中关村在线 濮元恺 责任编辑:王胤韬 【原创】 2010年08月25日 06:20 评论
在本页阅读全文(共53页)

    ● 传统GPU发展与着色器管线

    根据第一章的讲解,我们了解到渲染一个复杂的三维场景,需要在一秒内处理几千万个三角形顶点和光栅化几十亿的像素。早期的3D游戏,显卡只是为屏幕上显示像素提供一个缓存,所有的图形处理都是由CPU单独完成。图形渲染适合并行处理,擅长于执行串行工作的CPU实际上难以胜任这项任务。所以那时在PC上实时生成的三维图像都很粗糙。

    1995年设计完成的3dfx Voodoo用自己的深度缓冲区(z-buffer)和纹理映射(texture mapping)技术将3D渲染速度提升到当时的顶峰。1999年发布GeForce 256图形处理芯片时首先提出GPU的概念,Geforce 256所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。


超越图形界限 AMD并行计算技术全面解析
传统的GPU渲染流水线

    从DirectX 9开始,ATI抢先发布了代号R300的Radeon 9700,这款GPU产品以简洁明快的设计风格赢得了用户的一致好评,首款DX9图形芯片,256Bit的显存位宽,9700凭借8条管线理所当然的坐上了3D之王的宝座。正是在由微软DirectX 9开启的R300时代,图形芯片厂商意识到了渲染管线的重要性。无论是顶点处理器数量还是像素渲染管线数量都成为各家厂商竞争的重点标准。如果说DirectX 8中的Shader单元还是个简单尝试的话,DirectX 9中的Shader则成为了标准配置。除了版本升级到2.0外,DirectX 9中PS单元的渲染精度已达到浮点精度,游戏程序设计师们更容易更轻松的创造出更漂亮的效果,让程序员编程更容易。

    在图形处理中,最常见的像素都是由RGB(红绿蓝)三种颜色构成的,加上它们共有的信息说明(Alpha),总共是4个通道。而顶点数据一般是由XYZW四个坐标构成,这样也是4个通道。在3D图形进行渲染时,其实就是改变RGBA四个通道或者XYZW四个坐标的数值。为了一次性处理1个完整的像素渲染或几何转换,GPU的像素着色单元和顶点着色单元从一开始就被设计成为同时具备4次运算能力的算数逻辑运算器(ALU)。

超越图形界限 AMD并行计算技术全面解析
“管线”的由来——1个时钟周期4次运算

    顶点着色单元(Vertex Shader,VS)和像素着色单元(Pixel Shader,PS)两种着色器的架构既有相同之处,又有一些不同。两者处理的都是四元组数据(顶点着色器处理用于表示坐标的w、x、y、z,但像素着色器处理用于表示颜色的a、r、g、b),顶点渲染需要比较高的计算精度;而像素渲染则可以使用较低的精度,从而可以增加在单位面积上的计算单元数量。在Shader Model 4.0之前,两种着色器的精度都在不断提高,但同期顶点着色器的精度要高于像素着色器。

    数据的基本单元是Scalar(标量),就是指一个单独的值,GPU的ALU进行一次这种变量操作,被称作1D标量。由于传统GPU的ALU在一个时钟周期可以同时执行4次这样的并行运算,所以ALU的操作被称作4D Vector(矢量)操作。一个矢量就是N个标量,一般来说绝大多数图形指令中N=4。所以,GPU的ALU指令发射端只有一个,但却可以同时运算4个通道的数据,这就是SIMD(Single Instruction Multiple Data,单指令多数据流)架构。

    传统意义上像素渲染流水线(Pixel Shader Pipeline)应该是像素着色器(Pixel Shader Processor,简称PSP):纹理处理单元(Texture Model Unit,简称TMU):像素输出处理单元(Render Back End,简称RBE)=1:1:1。这个比例在DirectX 9.0c末期的Radeon 1900系列中被打破,因为ATI的工程师们认为在未来游戏中显卡Pixel Shader部分的ALU算术指令所占的比例将越来越大,TMU纹理贴图指令所占的比例将缩小。所谓3:1架构就是指Arithmetic:Texture=3:1或是ALU:TMU=3:1。(Arithmetic指算术运算,由ALU完成;Texture也可以指纹理运算,由TMU完成)。

    无论是CPU送给GPU的顶点数据,还是GPU光栅生成器产生的像素数据都是互不相关的,可以并行地独立处理。而且顶点数据(xyzw),像素数据(RGBA)一般都用四元数表示,适合于并行计算。在GPU中专门设置了SIMD指令来处理向量,一次可同时处理四路数据,SIMD指令使用起来非常简洁。此外,纹理片要么只能读取,要么只能写入,不允许可读可写,从而解决了存贮器访问的读写冲突。GPU这种对内存使用的约束也进一步保证了并行处理的顺利完成。

上一页 1 ...13 14 15 16 17 ...53 下一页
本文导航
频道热词:华硕主板  Intel  AMD  
视觉焦点
ATI Radeon HD 4850
  • 商家报价:
  • 厂商品牌:ATI
  • ZOL评分:0
  • 网友口碑:0
  • 查看详细>>
    显卡评测热点
    排行 文章标题