引用:
作者anomaly
小弟認為NV40有16 pipeline是為了要防止GPU stall,GPU越來越像CPU﹐任何stall都對效能大打折扣。NV40從6 vertex shader變成16pixel shader。 NV應該認為未來的游戲會提高polygon數﹐所以為了不讓vertex shader等pixel shader而閑置,所以提高vertex shader跟pixel shader的比例。
|
我覺得這個想法有問題.... 6個Vertex Shader本來就已經幾乎是過剩了。
而且"Polygon數量提昇的話",是不是相應解析度下每個surface的pixel數量反而會減少?
實質上,Pixel Shader的數量增加,是因為
對Polygon數的依賴降低...
為什麼會對Polygon數的依賴會降低?Normal Mapping。
接著,提高Polygon數的話,會增加的是Vertex Shader的負擔,不是Pixel Shader的負擔。
所以你的說法有前後矛盾的問題。
而且,實質上根本用不到那麼多頂點。
根據NVIDIA的官方說辭,6個VS跑400MHz,可以生出600M個polygon,等於代表4cycle一個polygon....
就算是解析度1600x1200的解析度,每個pixel最多也可以分到三百多個polygon。
但是通通擠一個pixel哪顯示得出來?

就算以最糟的情況,全部的polygon都沒有共用邊,200M個triangle也絕對會遠遠蓋滿畫面,每個pixel都會分到一票polygon。
很久以前,Vertex Rate就已經不是瓶頸所在了,這點可以去看看NVIDIA的GPU Programming Guide。
目前實質上的瓶頸,可以說只有CPU和Fillrate兩個而已。(Fillrate同時受到pipeline和Memory影響)
Vertex Texturing是因為VS在等Texture Unit,所以我不認為算是瓶頸。(那是特殊情況)
引用:
其實剛小弟說過﹐vertex shader只有6個﹐所以大部份時間都會有閑置的pixel shader﹐因pixel shader的負載並不高﹐不會真的需要512bit的memory才能滿足NV40(有512bit到memory當然是最好﹐不過卡的價格會貴的難看)。
|
GPU stall只有發生在content switching(Shader Profile switching),不會發生VS等PS的情況。
因為VS的動作經過Rasterization之後才交給PS,Geometry Operation和Fragment Operation根本就沒有直接的關係。
所以PS根本不需要去"等"VS,只有VS夠不夠用而已的問題。
至於會不會有閒置的Pixel Shader,我只能說Pixel Shader實在忙到翻掉,因為那是最主要的瓶頸之一,Vertex Shader反而還有可能閒置。
比方說,HL2聽說最長有40個指令的shader。
現在不知道它每個指令各需要多少時間,我們就通通都算1cycle吧。
這樣的話NV40的fillrate會跌到多少?1/40。
這才是Pixel Shader不能休息,記憶體頻寬卻不必顯著增加的原因--運算量顯著提高。
引用:
再來看看NV43的pipeline。vertex shader跟pixel shader的比例比NV40差﹐因此會有vertex shader等pixel shader的情況。不過因pixel shader又在等memory﹐所以只要memory access一多﹐就會有出現GPU等memory的嚴重情況。nv43為256bit進入crossbar,128bit到memory。不過因 pixel shader永遠是處於高負載狀態﹐nv43開4xFSAA會缺氧。既然256bit是在現有科技下可達成的﹐而且價格並不會貴太多﹐為什麼不做?我想這才是關鍵。
|
NV43開FSAA會缺氧沒錯,但是有個問題是--FSAA Unit一直是獨立於Pixel Shader的。
我覺得這兩張圖都改得有毛病,Pixel Shader並不是指ROP的部份。
最後,256bit的記憶體到底多貴?
我這樣說好了,你覺得128bit很貴嗎?那為什麼小強卡拼命想往64bit擠?
----
NV43不可能256bit,因為看NV43的PCB背後就知道了。128bit就已經把空間都用滿了。