level 5
http://bbs.ocfantasy.com/thread-216-1-14.html关于R5XX的几个命题命题1:我们有目前最好的在SIMD下做Dynamic Branch的架构,未来游戏的趋势是Dynamic Branch,所以我们有优势这是谎言流水线平行度的问题已经是老生长谈,Dynamic Branch可以用来融合Shader,但不代表其他提高平行度的途径已经完蛋.而且,一个充满分支和跳转的Shader对游戏的帮助理论意义大于实际意义.在3DMark06这种已经有用到相当复杂的Shader的程序中,Dynamic Branch也只是当作调味剂而不是主菜来用的.至于Branch在shadow filter的edge soft中的应用...恩,我想说的是,绝大部分情况下edge所占的部分都不多,而且随着分辨率的提升,这个部分的比例会越来越小.引用RacingPHT兄的话来说,当然我们还得感谢Branch,它让一个只能跑15FPS的DEMO提速到了30FPS-----虽然它之前能跑300FPS.问题是:Filter一定要这么做吗?这个问题我不想多扯,但ATI自己的做法真正掴了那些期待"未来游戏就是Dynamic Branch慢天飞"的人一个大耳光-----R580增加了ALU,却没有增加Register和Dispatch Processor,于是Batch Size从R520的16变成了48.天,R520发布时您的激情呢?命题2:我们增加了PS ALU POWER,未来的游戏都是ALU>TMU,我们的4:1不对称设计将是王道这也是谎言尽管有些游戏的ALU:TMU指令数号称达到了7:1-9:1,不过问题在于这些指令的throughput(吞吐周期)比未必达到了这个比例.实际上,Multi-threading隐藏的是指令的延迟,隐藏不了指令的吞吐周期.比如如果纹理只用bi-linear,那么自然7:1就代表了吞吐比7:1(假设所有alu指令吞吐周期是1,而事实也基本如此).但是如果是tri-linear的纹理那么7:1就变成了3.5:1,而如果再开2xAF那么7:1就变成了1.75:1…………等等.所以呢,TMU指令很多时候比想象的更加昂贵,并不是只按照指令数计算就ok的.说了一堆P话,有人要跳出来拍我了,R5XX现在不是已经在游戏中占优势了嘛?你还罗里八嗦的干吗?那么,R5XX目前体现出来的优势,到底从何而来呢?命题3:R5XX架构臃肿,在IC设计上远不如G7X设计简洁高效这也是个伪命题两者源自不同的设计思路,不过R5XX架构的进取精神绝对是让人赞赏的前面已经提到了流水线平行度的问题,对GPU这种Stream Processor来说,平行度几乎决定了它的性能.R5XX各结构的正交性, 充足的资源的富余, 为整个流水线保持了良好的平行度G7X则是尽量保证通用应用的性能, 其他能省则省,获取总成本的控制(也利于"以多打少"的局面)最后说R5XX目前真正体现出的优势方面:1. Texture cache,全关联VS直映射,这点在dependant fetch上优势很大, 比如env mapping; 同时cache的优势换过来就变成了有效带宽的增加, 所以连带的AA/AF上面也比较厉害.2. Register array,R5XX的Temp register(PS_2_0), 完全是全速运行,基本上有多少就可以用多少,不会占用片外存储器.NV3x在编程上支持数量庞大的寄存器(PS_2_a),但是所有的寄存器存取类似与材质fetch,不能在片内执行,NV4X和NV4X以后支持数量更多的片内寄存器(最多8个4D fp16 or 4个4D fp32),在通常应用中,基本上干掉了NV3X出现的寄存器导致的延迟,但是如果数量超过这个数目,数据获取方式还是得回到NV3X的老路.G7X的的register file策略节约了巨大的资源,而且在NV40抢占SM3制高点后,也不用担心积存器溢出的问题. 但为XB360优化的游戏再移植到PC,因为遵守的编程规则都是ATI的,NV是一定会吃亏的. 3. H-Z带来的带宽利用率的优势.这个不多说了,老问题了.让我奇怪的是,H-Z的发人明明在NV啊... NV为什么不做....
2006年11月30日 15点11分