思考好久不見XD
引用:
原帖由 来不及思考 于 2008-3-12 13:24 发表
矢量架构显现为标量架构是怎么回事?我不能理解。谁来解释一下?
-->
G80的batch size是4×2×2=32pixel (per warp),执行的单位却是1/2 warp,所以每个SM很可能是4SP再加上duuble pump
另外,对于每个SM来说,4个thread在dynamic branch的时候走不同的方向,就要顺序执行,因此底层实际上应该是4D SIMD unit + duuble pump + SFU
具体的细节不是很清楚,但是可以肯定它的元件管理非常的独立,内部reg资源也非常丰富,通过一些特别的设计,swizzle是完全free的,所以可以把它看成full scalar
换句话说,G80只有16个4D SIMD unit,但是因为优良的设计,它直接可以当成full scalar来用
補充兩個部分:swizzle = 移位,所以如果你們看CUDA的performance guideline的話,有一系列的圖提到了share memory access的bank conflict、以及boardcast機制。
而且對繪圖工作來說,share memory是完全由compiler管理的,shader並不會碰觸到這塊,這就是NVIDIA的人員有空間作optimize的部分。
以性質來說,這和CELL SPE那個高頻寬的256KB/s Local Storage是同類型的。(對SPE的ALU有50GB/s的頻寬)
引用:
原帖由 来不及思考 于 2008-3-12 13:24 发表
这样做的目的是什么?
-->
完全硬件化的MIMD在旗舰级GPU这种芯片上是不现实的,G80是量产芯片,不是用来做实验的,除了成本,产能和工艺承受度也是必须考虑的问题
GT200不大可能做到18亿,这对整个产品线的成本控制都是灾难性的。除非NV为GT200单独设立品牌并以K$为单位销售他。
-->
我能告诉你的是,GT200的晶体管小于或者等于1000M
G80不是说什么样的shader对效能都没有影响么?
-->
通吃指令不意味着通吃shader,要写一个让G80跑不动的shader实在太简单了。记住:在batch size做到per pixel之前,这种话都属于行销手段
G80能保证的,就是它对各种复杂shader的适应性远好过R6XX,仅此而已,离“任何shader对效能都没有影响”还差几个世纪
以前RacingPHT兄寫的ray tracer program,就可以看出G8x可以提供的register資源還沒辦法支撐光跡追蹤的需求,share memory也不夠大。
當然這並不是個很好的例子.... 不過shader並不是加三倍ALU就一定會有三倍的性能跑出來。
[
本帖最后由 Eji 于 2008-3-12 15:24 编辑 ]