目前的GPU都是由很多小處理核心,或者叫流處理器組成(圖1),這個核心比處理器核心簡單得多,每個時鐘周期只負責(zé)處理一個浮點數(shù)據(jù),所以總的浮點運算次數(shù)就是核心數(shù)量×?xí)r鐘周期了(當(dāng)前常見的GPU浮點運算單位一般是TFLOPS,即每秒浮點操作多少萬億次)。又因為現(xiàn)在的核心可以一次性處理一個雙精度浮點數(shù)據(jù),它相當(dāng)于兩個最基礎(chǔ)的單精度浮點數(shù)據(jù),所以再×2就得到了GPU的浮點運算次數(shù)。國產(chǎn)GPU、英偉達RTX40系列和AMD RX 7000系列的理論性能其實就是根據(jù)其透露出的配置計算出來的理論浮點計算性能。
因為現(xiàn)在的圖像是分成像素點來處理的,每個點的色彩都要進行浮點運算,然后組合成一幅圖片(圖2),所以這個參數(shù)其實就說明了顯卡或者GPU每秒能處理多少個像素點。
回過頭來看看這個參數(shù)對游戲能力有什么關(guān)系。在分辨率確定后,每一幅畫面的像素點數(shù)量也就確定了,那么每秒處理的像素點越多,實際上每秒能處理的畫面數(shù)量當(dāng)然就越多。這說明了什么呢?當(dāng)然就是游戲的幀速(每秒畫面數(shù))越高啦。沒錯,對使用同一代特別是同一核心的顯卡,算出它的浮點運算能力,基本就了解游戲畫面的生成速度了。當(dāng)然,實際的游戲畫面生成速度還與CPU、內(nèi)存等配件性能有關(guān),但GPU的浮點運算速度仍然是決定游戲畫面生成速度的最大因素(見表1)。最終呈現(xiàn)到我們面前的游戲畫面幀速還會再受到顯卡輸出接口、顯示器刷新率的影響,但這就不在本文的討論范圍內(nèi)了。
對于不同代甚至不同架構(gòu)的GPU,這種對比就不合適了,比如RT X3080擁有兩倍于RTX 2080 Ti的浮點運算次數(shù),幀速能達到RTX 2080 Ti的兩倍嗎?這就牽扯出了另一個問題,也就是核心的效率,因為誰也不能保證所有的核心或者流處理器能一直滿載、有效運行,它的實際發(fā)揮還要考慮到前端的分配、后端的合成、顯存數(shù)據(jù)等單元的配合(圖3)。
RTX 30系列的“問題”更大一些,它們實際上是讓每個核心中的整數(shù)運算單元也參加浮點運算(圖4),得到的成倍“理論”運算能力。但因為干的是非“專業(yè)”工作,整數(shù)單元的浮點運算效率肯定是不如專業(yè)的浮點運算單元的,加上前端的數(shù)據(jù)分配能力、顯存帶寬沒有跟著翻倍,所以效率大幅下降。最終我們可以看到,翻倍的理論浮點性能帶來的只是不到40%的實際幀速提升(見表2)。
現(xiàn)在大家應(yīng)該知道了,RTX 40系列性能提升幅度真的只是理論上的,游戲幀速提升幅度不一定與其一致。AMD和英偉達這種相差更遠的架構(gòu)就更不能直接對比了,比如R X 6800系列就以遠低于RTX3080/3070的浮點運算能力,得到了能抗衡甚至壓制它們的性能。
類似的還有國產(chǎn)GPU,它的設(shè)計目標是利用浮點計算能力滿足各種專業(yè)、商業(yè)計算的需求,極可能根本就不支持Direct 3D等消費級3D技術(shù),當(dāng)然也就不能直接玩大部分游戲,因此現(xiàn)在還無法用它們的理論浮點性能來討論游戲性能。