顯示卡的下個戰場從NVIDIA GPU Boost看未來

 

當NVIDIA推出GTX 680之後,也一併帶來許多新的技術,包含了新的Kepler核心架構、新的記憶體控制器,以及全新的反鋸齒技術,但是以上這些技術都沒有GPU Boost更受到矚目。接下來小編就針對這項新的技術分析,並分享測試心

得讓各位玩家參考,玩家們往後使用GTX 600系列顯示卡時就能更加了解。

 

█ 顯示卡也要Boost

Kepler架構的問世,引起全球各界媒體與玩家的矚目,率先搭載Kepler GK104核心的GTX 680更是成為近年來NVIDIA的代表作!而GTX 680也帶來許多新穎的技術,其中有一項技術備受矚目,也成為業界中創舉的技術,那就是「GPU Boost」!

相信多數玩家還有印象Intel當時率先在CPU中導入了Turbo Boost技術,在不同的負載程度的狀態下,CPU會自動調整核心的時脈,對於運算核心來說突破性的發展,但既然能在CPU上實現,那麼相信離GPU應該也不遠了,因此GPU Boost的原理其實和Intel Turbo Boost、AMD Turbo Core相去不遠,都是根據TDP來決定是否要提高時脈,不過或許有其他考量,NVIDIA對外公佈的相關技術資料實在太少,多數玩家根本不了解GPU Boost,這也是促使小編動筆寫這篇文章的原由。

前一段小編說道GPU Boost與Intel Turbo Boost、AMD Turbo Core的原理相似,原因是目前還有多數的應用程式僅支援單核心處理,所以CPU的Boost在核心負載程度不高的條件下,降低部分核心的時脈,利用有限的TDP大幅提高一部分核心的時脈,加速處理應用程式的速度。而GPU Boost雖然原理相似,但技術上更加困難,主要是因為GPU的架構較CPU複雜許多,CPU僅數個核心,而GK104就有總數1536個CUDA核心,在核心中包含了難以估算的數學計算程序,加上線路設計或者是頻率控制都有一定的難度,所以可以說CPU的Boost是利用核心的負載程度來控制,而GPU Boost必須利用TDP負載度來控制核心時脈,讓我們繼續往下看GPU Boost是如何由TDP來控制時脈。

 

 

小編教室:

TDP(Thermal Design Power)並不是功耗,而是處理器在最大負荷時產生的熱量,也可稱為熱功耗,單位為W。大家熟悉的功率(P)是電流(I)×電壓(U)或(V),所以不要搞錯囉!

 

 

█ GPU Boost發揮核心最大效益

各位應該都很好奇GPU是如何知道每個核心的負載?GK104擁有1536個CUDA核心,要控制每個核心的負載幾乎不可能,而且GPU本身的設計就無法判斷單一核心的使用率,簡單來說,GPU只能知道有多少核心在動作,但是卻不知道每個CUDA核心的使用率,然而因為每個核心負責的工作排程都不同,小編舉個例子,一間工廠有1536個員工,但老闆並不會知道這些員工究竟是否全力在工作,但可以從最後的產值就知道是否有達到額定的產值,而這裡比喻的產值就是TDP。

就因為GPU的設計無法判斷每個核心單元的使用率,所以GPU因處理程序的關係,整體使用率可能只有80%~90%左右,讓部分CUDA核心處於閒置,導致TDP並無法達到額定的最大值,很顯然這樣代表GPU並沒有發揮到最大效率。在前幾期介紹GTX 680時小編有提到,Kepler相較於以往的設計主要是以更小的核心,和更少的電晶體來達到更低的功耗,因此外接電源只需要兩個6Pin就能驅動,但是用更多的核心數量來提升效率,而這部分也和軟體本身的優化有一定的關係。

GPU Boost之所以能成功全都要歸功於GPU的核心控制模組和VBIOS的設計,並且監控GPU運作時的實際TDP,再透過計算當下的TDP和設計時最大TDP之間的差距,就能知道剩餘多少TDP空間可以發揮,再利用提高核心時脈的方式達到最大TDP;GPU調整核心時脈都是以整個核心同步,這點和CPU可以調整部分核心時脈不一樣,所以當時脈控制器將頻率送進核心裡面,雖然所有核心都會提升時脈,閒置的核心依舊是閒置,但運算中的核心卻又可以提升處理的速度,最後讓輸出的總效能和所有核心都滿載是一樣的TDP,如此一來就不會因為達不到額定的TDP而浪費效能,不可否認這是一個聰明且又能發揮GPU效能的設計!

 


圖 / GPU閒置時會以最低的時脈和功耗運作

 


圖 / GPU的設計是要讓所有核心都滿載才會達到額定的TDP

 

 


圖 / 但是因為受到軟體所需的處理程序關係,負責計算的GPU核心也不相同,

因此部分不須計算的核心處於閒置。

 

 

 


圖 / VBIOS判斷TDP空間之後,消耗剩餘TDP來提升所有CUDA核心的時脈,讓正在計算的核心速度更快。

 

 

 

█ 和使用超頻軟體有何不同?

以往玩家們要提升GPU時脈就必須使用超頻軟體來調校,透過顯示卡超頻軟體可以將核心時脈和電壓值固定在某個階段,並且長時間持續運作,顯示卡本身完全不會顧慮TDP的限制直到上限。但是NVIDIA的GPU Boost並不需要任何軟體來控制,玩家們也不能自行關閉,技術上就如上一段所說的,並沒有在GPU或顯示卡上裝特殊的控制器,整個運作的流程都和TDP有關係,簡單來說TDP是主導GPU Boost的重要關鍵!

GPU Boost並沒有辦法控在某個數值,即使玩家們透過超頻軟體手動將時脈提高,GPU Boost依舊會繼續動作,比方說預設Boost最高時脈為1110MHz,但是手動將時脈提高100MHz之後,時脈會累加上去變成1210MHz。儘管是如此,最後還是會因為當下的條件和使用環境而改變,但不管如何,在非常嚴苛的環境下依舊能維持1006MHz的時脈運作。

 

圖 / 即使負載程度相當高的狀態下,最低的運作時脈依然為1006MHz。

 

 

█ GPU Boost加速流程與限制

GTX 680是第一款擁有GPU Boost功能的顯示卡,公版繪圖核心預設的時脈為1006MHz,而官方公佈的GPU Boost之後時脈為1058MHz,但是實際測試後發現在沒有修改條件下,GPU Boost最高時脈可以達到1110MHz,相較於基本時脈1006MHz共提升104MHz;前面有提到GPU Boost與Intel和AMD處理器的Boost有那麼幾分相似,但其實更加複雜,尤其是我們要知道GTX 680的CUDA核心數量共有1536個,加上執行不同應用程式所需要的TDP都不盡相同,當然還有VBIOS在扮演著重要的關鍵角色,因此整個也會有個完整的工作流程,讓我們繼續往下看吧。

當我們實際使用GTX 680來測試GPU Boost時,首先可以安裝GPU-Z來看到顯示卡的各種參數,琳琅滿目數據只需要看GPU核心時脈、電壓值、TDP熱功耗這幾個項目就好,接下來開啟欲使用的應用程式,軟體本身當然是要以遊戲或顯示卡測試軟體為主,這樣才能讓GPU動起來。

在說明GPU Boost工作流程之前,或許各位可以先了解顯示卡前端作業流程,以下小編就簡單描述。當執行遊戲軟體之後,CPU會開始接收指令,不論是DirectX或是OpenGL,都會先經過CPU來做前端作業,在經由驅動程式把相關的訊息傳達到顯卡,以上就是前端作業的流程。接下來當顯示卡接手之後,在GPU內有用來監控核心時脈的控器,在透過VBIOS判斷GPU當下的TDP和理論最大額定TDP之間的差距,在尚未達最大TDP之前提升所有CUDA核心的時脈,直到額定的195W最大TDP為止!簡單來說,就是運用還沒用到的TDP來提升所有核心的速度,獲得最大的TDP使用率,也就是提升所謂的效能功耗比。

但是GPU Boost會受到TDP與溫度的限制,而且核心的負載率和TDP有直接關係,當核心使用率較低時TDP並不會達到100%,那麼GPU Boost才能繼續動作,例如GTX 680額定的最大TDP為195W,不論核心的使用率是否由達到100%,都會停止GPU Boost的動作,當TDP降低之後才會繼續。而透過測試還得知GTX 680的GPU Boost所提升的時脈約每13MHz為一個階段,最高達到1110MHz,依照不同的軟體運作的時脈也會不同;提升時脈的的同時電壓也會隨之提升,幅度由1.062V到1.175V,而公版GTX 680的最大電壓值則是1.175V,儘管透過軟體手動調高時脈,電壓值也不會再上升。
 

 

時脈

電壓

1110MHz

1.175V

1097MHz

1.162V

1084MHz

1.150V

1071MHz

1.137V

1058MHz

1.125V

1045MHz

1.120V

1032MHz

1.100V

1019MHz

1.075V

1006MHz

1.062V

 

 

 

 

 

█ 能否發揮GPU Boost全看關鍵70℃

雖然現在知道只要TDP還未達到最高時,GPU Boost會提升CUDA的時脈,直到TDP最大值。不過還有一個非常重要的關鍵,那就是核心的溫度!要驗證溫度是否為關鍵很簡單,首先讓GTX 680在正常的環境下運作,並且透過GPU-Z來監控,主要是用來觀看時脈和溫度的變化。根據小編的測試,GTX 680的GPU Boost會在啟動軟體後直接到時脈的最大值1110MHz,不過一旦溫度達到70℃之後,會自動下降13MHz,也就是1097MHz,80℃則會降至1084MHz,相對的只要將風扇轉速提高讓核心溫度下降,就會恢復GPU Boost的運作,將風扇轉速提高之後,核心溫度維持在75℃左右,TDP約97%,如此一來時脈就會定在1097MHz;如果有辦法將溫度控制在70℃以內,這樣時脈就能維持在最高的1110MHz。

看到這裡大家對於GPU Boost多少應該都能理解,包含運作的方式和影響的層面,運用未使消耗的TDP來作為提升時脈的動力,但是各位一定很想知道TDP究竟是否能改變?答案是可以的!想超頻的玩家們可以透過顯示卡超頻軟體來改變TDP,例如小編測試時所使用的MSI Afterburnet,就能將TDP設定為70%~132%,但是各位要注意的是,當提高TDP就會增加整體耗電量,耗電量一旦提升核心溫度也會跟著加速上升,因此正確的方式應該是增加TDP的同時,逐步增加核心時脈和電壓,並且同時降低核心溫度,這樣才不會讓溫度限制GPU Boost的運作!

 

█ 是否能針對特性核心Boost?

當研究過GPU Boost和CPU Boost之後,不難發現這兩種Boost的方式並不同,CPU只針對特定核心進行Boost,在處理不支援多和架構的軟體時,能利用剩餘的TDP來大幅提高單一核心的時脈,讓處理器更有效率。而GPU Boost目前的設計是同時提升所有CUDA的時脈,或許有玩家會認為為什麼不能針對GPC模組或是SMX模組,甚至是單一核心來提升時脈?小編要告訴各位讀者,並不是不能這麼做,而是不需要!原因是GPU中的每個CUDA核心都是執行續,處理程序的工作排程並不會固定在某個GPC模組或是SMX模組,依照軟體的運算需求,每個CUDA核心的工作時間也極短,隨時都會變換處理程序,因此沒有必要去控制特定或是單一核心的時脈。再來就是效率上的問題,控制每個CUDA核心除了技術困難度增加之外,在效率上遠不如直接提升所有CUDA核心的時脈,因此目前的技術都可以控制單一GPC模組或是SMX模組,甚至是CUDA核心的時脈,但是沒有這個必要。

圖 / CPU能單獨控制特定核心的時脈,因此能讓核心處理不支援多核心的軟體時更加快速!

 

 

圖 / GTX 680擁有1536個CUDA核心,且每個CUDA的處理時間非常短,沒有針對單一核心調整的必要性。

 

 

 

█ GPU Boost只是開端

經過反覆的測試,可以得到一個具體且正確的答案,「TDP決定GPU Boost的高度」!這項技術彷彿帶給顯示卡全新的生命,多年來顯示卡因為架構特性的關係,擁有CPU更優異的平行運算效率,在同一個體積之下可以不斷增加核心執行續的數量,從當時G80僅有數個CUDA核心到今日GK104的1536個CUDA核心,相當驚人的成長速度。但也是因為GPU的執行續有處理排程順序,並不是所有的執行序都同時進行運算,再GPU中有工作排程處理引擎,能幫所有的CUDA核心安排處理順序,但CUDA核心等待處理的同時,等於永遠都達不到額定TDP,效能也因此受到牽制。

運用技術將閒置的TDP來提升整個GPU的時脈,在相同的耗電量下可以運用到100%的TDP,有效提升效能耗電比。加上以往高階顯示卡的TDP都在250W左右,但是實際上卻沒有達到該有的效率,而GTX 680只需195W的TDP就能達到100%的效率,甚至可以超越,從這點就可以看到未來顯示卡的影子。不過核心製成的進步,不斷縮小了TDP的上限,未來是否會因為這樣而影響GPU Boost的發展性,目前是不得而知!GPU Boost只不過是開端,目的就是為了提升控制TDP以及核心的使用率,未來技術更加成熟後,即使製程進步縮小TDP的空間,也能因為高效率核心來達到更高的效益!
 

 

臉書留言