admin管理员组

文章数量:1559061

2024-07-29 作者:

维普资讯

iamzyc@gmail.corn 热点聚焦  ,新闻纵横 当ati最近推出eadeon x1900系列显卡核心(gpu)之后,市场上便开始流行这样一种说法——“ ̄adeon x1 900xtx 集成了4 8条像素渲染流水线”。这种说法正确吗?在目前的技术条件下,opu能集成这么多条渲染流水线吗? ●理解gpu像素流水线的概念 在讨论显卡g p u的像素渲染流水线之前,我们想先让大家了解一下3 d游戏的制作 过程,这对于理解后续的像素渲染流水线慨念将有很大的帮助。事实上,3 d游戏初期的 开发就像制作一部电影:策划一剧本撰写一角色圈定等等,在确定主角的造型风格之后, 制作厂商将把原画交给3d建模部门。至此,3d工作正式开始,此时需要处理纹理,后 期混合等等,具体的工作内容就是构造顶点 几何变换(transform)、光照(lighting) (rasterize)等。 设定(setup)、光栅化 对于传统的显 卡核心,以上的一些 【小知识l vertex shader是流 水线中的吗 vertex shader仅 工作全部由cpu代 为执行。到了3 d时 代,.gpu作为图形处 仅是顶点计算中特 效部分的指令榘处 理嚣,因此它并非 理单元开始承担更 多的工作,因此我们 是流据线中的一部 分。尽管我们经常 听到gpu的vertex sh&der数量也与性能 有很大的关系,但 也开始接触纹理贴 图 像素渲染等慨 念。然而时至今日, gpu已经发展得更 是速的确与我们今 天所讨论的内容关 系不大 此外,vertex 为全面,几乎每一款 gpu都内置了多条 渲染流水线。 不同时代对于 像素渲染的大致流程示意图 shader可以由cpu来 模拟执行,因此我 们会看到很多集成 显卡只拥有pi x ei shader而没有vertex shader。 g p u渲染流水线的定义不完全相同。如今我们对于一条渲染流水线的定义,一般是 “pixel shader(像素着色器单元)+tmu(texture mapping unit 纹理单元)+rop (光栅化引擎。ati将其称为render back end)”。从功能上简单的说,pixel shader完 成像素处理,tmu负责纹理渲染,而rop则负责像素的最终输出。 因此,一条完整的gpu像素渲染流水线,包括pixel shader tmu、rop三个部 分,这条流水线至少可以在一个时钟周期内完成1个pixel shader运算,输出1个纹理 和1个像素。 一200 一jj ,、、 撼 盟—一 维普资讯

iamzyc@gmail.com ●gpu渲染流水线的发展趋势 “流水线=pixel shader4一tmu+rop”,这一概 2.3d游戏现在时:追求像素渲染流水线 进人directx 9时代以后,pixel shader技术开始应用 念一直得到gpu厂商的拥护。然而随着技术的发 展,3 d游戏开始有明显的取向性,此时这一平衡 得十分普遍,此时显卡能否提供更大的像素填充率成为关键 也自然被打破。从当年的g e f o r c e 4到如今的 因素。而要提升gpu的像素填充率。除了提升核心工作频 radeon x1900xtx,我们通过对比这一发展过程将 率之外,增加gpu内的像素渲染流水线的数量也是关键的 能很清楚地理解为什幺ati开始采用“4 8流水线 解决之道。 技术”。 1.directx 8时代:追求tmu 如果大家了解g p u的发展史,一定会对 gef0 rce4 ti42 0 0这款产品记忆犹新 当时 geforce4 ti4200也仅仅是一款4条流水线的显卡, 但是每条流水线却拥有2个tm u纹理单元,因此 很多用户将其称为4 x 2架构,认为这已经等效于 8条像素渲染流水线的显卡。当然,这种说法不够 科学,只不过站在当时的时代背景还有些许道理。 在directx 8时代,3d游戏仅仅少量应用pixel shader特效,而且考虑到照顾directx 7游戏,因 此纹理填充依然是最关键的技术 通过茌一个流 水线中集成两个tmu单元,geforce4 ti4200取得 了很出色的性能表现,这也令其成为一代王者。同 样,radeon 8500也是相同的做法,即在一个流水 线中集成两个tmu单元,使得只有4条像素渲染 流水线的显卡能够具备8个纹理填充单元。 不知道大家是不是还记得这样的说法:当时 我们将radeon 9000称为“阉割版 产品,之所以 这样说便是因为radeon 9000取消了双tmu单元, 即一个流水线中只集成一个tmu单元,因此其性 能下降得比较厉害。此外,当nvidia推出geforce fx5600这款新一代directx 9显卡时,很多3d玩 家也发现其directx 8性能居然还不如geforce4 ti4200,造成这一现象的关键也是tmu单元,因 为geforce fx560o的一 条流水线中只有一个tmu 单元。 按照常规的思路,在…条像素渲染流水线中, pixel shader、tmu以及rop的比例是1:1:l。不 过,在directx 6到directx 8这个时代,由干当 时的游戏开发大量应用纹理贴图,因此当时那些 pixel stlader,tmu、rop的比例是1:2:l的显卡 产品,在其他技术参数差不多的情况下,其表现要 明显优于那些比例为l:1:l的产品——在那个时 代,纹理填充率是gpu的主要性能瓶颈。 一—— 2 当然,造成gp u开始追求更多像素渲染流水线的因素 绝不仅仅是3d游戏普及化应用pixel shader,pixel shader 本身版本的提升也是一个重要原因。单流水线内置一条像素 渲染流水线在directx 8游戏横行的时代是比较合理的,因 为directx 8的pixel shader1.3允许的着色器程序比较短, 此时单流水线内的多个像素渲染流水线无法发挥并行工作的 优势。然而directx 9时代的pixel shader 2.0/3.0则全然 不同,更长的着色器程序指令让多个像素渲染流水线有了用 武之地。 当然,我们也并非单纯否定tmu纹理填充单元的作用。 但是也应该清楚地意识到,随着纹理压缩以及z缓存技术的 不断成熟,再加上显存带宽越来越出色,tm u逐渐摆脱了 性能瓶颈,此时自然也就无需在单流水线中集成多个tmu 单元。而与此同时,rop也在数量上足以满足gpu的需求, 因此也没有随着像素渲染流水线数量的递增而不断增长。 按照ati对于未来3d游戏技术的预测,今后像素渲染 将会越来越得到重用。在2001年刚刚出现具备像素着色器的 显卡时,当时游戏的像素着色器程序中算术指令和纹理指令 数量的比例在1:1左右,打达以后.算术指令的数量呈显著 增加之势。在2006年,游戏中每个像素的平均着色器程序指 令数目是3 0条,算术指令和纹理指令数量平均比率达到了 5:1,也就是i兑现在的像素着色器程序中,平均每5条算术 指令才会出现一条贴图指令,而这样的算术指令数量急剧增 长趋势仍将继续保持下去。 45 j! i ■ 广] i ‘ __ i 2o01 2∞2 2003 2∞4 2005 2006 ynr plxelshaderinstruction countsin pcgame № 根据all的预测,像素与纹理的数量比例变化 一柏 ∞ ∞ 西 置id l置一- 占 兰鼍维普资讯

iamzyc@gmail.corn ●x 1 900xtx渲染流水线的特点 正是基于像素着色器程序中算术指令比重不断提高这一事实现状,ati开始 不遗余力地致力于提高像素渲染流水线数量。以x1900xtx为例,它拥有16条真 正意义上的流水线,只不过pixel shader tmu以及rop的比例是3:1:1。因 【小知识】 为何不楗高rop数量 每一个像素在p i x e i 此,确切的说,x 1 900xtx具备48个像素着色器单元,而不是48条像素渲染流 水线。 xl 900xtx系列有 shader中需要的处理周期都随 着日后游戏以殪相关软件的 发展而大幅增加,在单周期 48个pixel shader,而 内不一定会有待处理像素下 降到r0p单元。于是,考虑到 pixel shader与gop负载的平衡 性、核心制造工艺以厦整卡 tmu和rop却只有1 6 个,因此这款gpu核心 在一个周期内可以进行 48次pixel shader运 的成本问题.新一代gpu没有 再添加曼多的g0p单元,而是 着重改善了gop处理算法以 殪增加taa模式下的超缱采 算。输出1 6个纹理和1 6 个像素。也就是说, x 1 9 00xtx在pixel 样和多重采样。此外,更多的 r,op也需要更高的显存位宽 sh a d e r运算上等同于 来支持,目前显存位宽普遍 4 8流水线显卡,但在纹 x1 900xt的内部架构 在256hit,此时很难达到1 6个 以上的r,op 理填充串和像素填充率上等同干1 6流水线显卡。虽说x 1 900xtx应该更趋向 于我们平时所说的1 6流水线显卡,但是今后的游戏更加注重pixel shader运算, 到时候其架构的优势就会显现出来。 ●nv i d i a:带给我们不一样的信息 ati并非是第一个在单流水线中集成多个像素渲染 pixel shader、tmu以及rop的比例关系是3:3:2,也 单元的gpu厂商,nvidia的行动甚至比之更早,而且 就是24条像素渲染流水线、24个tmu纹理填充单元以 更加彻底。以目前nvidia的旗舰级产品gt0为例,其 及l6个rop。 搭配了总共24条pixel shader像素渲染流水线。更加 特别的是,g70的pixel shader以4 unit为一束,大 家也可以直观地将其理解为6条流水线,而每条流水线 内具备4个ptxel shader单元,这比ati radeon x1900xtx的3个pixel shader单元更加夸张。 我们在此并不想评论这两种方式的优劣,但可以 肯定的是,nvidia和ati至少是在单流水线内集成多 个pixel shader单元这一点上达成了共识,这也是令人 欣喜的局面。正是有了这样一个变化,未来游戏将会更 加大胆地使用像素计算,此时也能展现出更加完美的画 面特效。然而另外有所区别的是:nvidia g70在追求 pixel shader的同时并未抛弃tmu纹理填充单元,其 geforce 7800 g'tx的像素渲杂流水线架构的局部 附表:主流gpu的像素渲染流水线构成 g : . d r f _ _ f}・’’| l1 ⅲ gel。r i 0 r e , x550 x x 鲫 | j x r 1儿0 蝎l0¨ -3∞ y krj × 蛐 毗 作 r 1 椎n+ ∞ ,’ ∞ 叠i j∞。 7 : i i 7∞【  。r(i ^;¨1 。” i 枉r .、 、 4・: 4 l、 fi 4 。i ⅳ 8 4 , | i .' j 1 】 l6 ;0 b n ̄/47 m 1 0 7  1‘7 博i4 7 。i 4 l { ・1 j v,l:0 4 』 制0 8 b 0 12, -】“ 0 4 “ .? ]420 m :‘ 1 }1  ir‘∞ f y ・ 0  14 l∞ [i:)∞ 嘶  l4 e :0 r‘  ,t p 。 8 4 i?  lj h ^ f) 6 l  ‘丽 l一~ 

本文标签: