ADVERTISEMENT
多重GPU的7種運算模式
不論AMD或NVIDIA,做出顯卡只算完成了一半,最重要的是讓2個甚至更多的GPU協同運算,而且繪圖不會出錯才是關鍵。多重GPU技術發展至今超過10年,不過受限於價格,應用面與技術面成長相對有限。
顯卡有分主從卡
多重GPU技術種類相當多,應用於遊戲領域的大約3~4種,另外還有數種較冷門的運算方式,整理了7種運算方式,來看看多重GPU到底為什麼強?是怎麼整合訊號?
不論何種運算模式,都不離指令分配範疇,差異只是在於「怎麼分」跟「分什麼」。假設以2張顯卡來說,連接螢幕用於影像輸出的是「主卡」,而另一張則是「從卡」。運作時各GPU會獨自處理收到的指令,處理完畢後將儲存影像資訊的Framebuffer複製到主卡上,由主卡將訊號傳遞出去。由於複製、傳遞這個過程會產生延遲,加上部分運算模式的天生缺陷,造成多重GPU容易發生Micro Stuttering現象。
AFR的Micro Stuttering障礙
為什麼只有AFR會造成Micro Stuttering現象?主因是指令與訊號傳遞延遲。AFR採用Frame交替運算,從卡(GPU B)運算完畢後需將資料傳遞回GPU A進行整合再輸出,指令從GPU A傳給GPU B會造成延遲(假設2ms),而GPU B傳給GPU A又會出現,因此會發現Frame 1到Frame 2時間很長,而Frame 2到Frame 3卻又很短,這就是Micro Stuttering。
假設單GPU運算下Frame間距為20ms,而雙GPU在AFR環境下卻有可能是間距18ms與6ms。以效能論,AFR每個Frame間距較短,單位時間的幀數會比較高,效能自然表現比較好。
Micro Stuttering會造成2個嚴重的問題,首先是Frame間距不同,對於人類而言,眼睛容易注意到表現差的部分,也就是18ms的那段。原本20ms的間距變成18ms,對人類感覺而言可能只有提升10%效能,但是FPS的效能數字卻遠高於這個值。
其次對於3D遊戲而言,Frame跟3D物件會有連動性,也就是說物件的移動量跟Frame是有關係的。若以上述例子來說,實際Frame間距是18ms與6ms,但是遊戲可能會造成誤判,因為理論上不應該存在Micro Stuttering造成的時間差,系統會以最佳理論值12ms、12ms下去計算。那18ms、6ms跟12ms、12ms分別快50%跟慢50%,這時候就會看到3D物件的移動量出錯,從肉眼來看原本平順的遊戲就會有抖動的現象。
模式一:AFR
AFR是Alternate Frame Rendering的簡稱,中文可譯為交替框架渲染。顧名思義就是將遊戲的Frame(幀)分為奇數與偶數幀,並依序將奇數交由GPU A負責運算,而偶數交給GPU B運算。好處是2個GPU的負載比較平衡,能讓散熱與運算效率達到最高。
然而AFR也不是只有優點,最大的缺點就是Micro Stuttering。會讓遊戲效能提升,但是人的視覺體感反而覺得影像「卡卡的」。目前雙GPU的顯卡或串連模式,預設幾乎都是採用AFR模式,因為它「理論」上表現最好。至於3個以上的多重GPU,則可能採用AFR of SFR模式。
▲AFR將Frame分割成奇數與偶數,分別有GPU A與GPU B運算。好處是相鄰的Frame運算量都差不多,不會有SFR分配不均的問題。
模式二:SFR
第二種則是SFR模式,SFR是Split Frame Rendering的縮寫,中文為分割框架渲染。將畫面分割為上下或左右,分別由GPU A與GPU B運算。先來說這種運算方式的缺點,就是運算量不平衡,最明顯的就是上下分割的模式。假設以第一人稱射擊遊戲來說,幾乎所有的物件都集中在下方,導致負責運算下方的GPU負載較高,而負責上方也就是天空的GPU幾乎沒有負載。
聰明一點的驅動,會將上下切割成大小不等的區塊,以平衡運算量,不過這會提升驅動程式編譯的困難度,而且無法完全改善負載的問題。至於好處方面,除了不會出現Micro Stuttering現象,再來就是記憶體使用量較低,因為GPU只需要運算一半的畫面。
▲不同於AFR以Frame區分,SFR切割的是每個Frame,最常見是將其分割成上下部分,分別由不同的GPU處理。優點是記憶體使用量較少,缺點則是分配不均。
模式三:AFR of SFR
看到這裡,應該會有人想把上述2種運算方式混在一起,或許能解決負載與Micro Stuttering的現象。的確是有AFR of SFR的混合模式,大多應用於超過2個GPU的多重GPU環境。
假設有4個GPU,運算方式是將Frame分為奇數與偶數,奇數的Frame再使用SFR技術切割,分別由GPU A與GPU B運算。同理偶數Frame一樣用SFR切割,再給GPU C與GPU D運算。雙卡的串連模式大多以AFR或SFR為主,多卡則是AFR+SFR模式,其餘模式較少運用於遊戲領域。
▲AFR of SFR常用於4個GPU的環境,結合AFR與SFR的特性,將Frame內還有奇數偶數Frame都做切割。每2個Frame時間內,單一GPU只需要運算半個Frame的計算量。
(後面還有GPU運算模式四~七的介紹!)
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!