睿頻:榨乾CPU所有的潛力

睿頻:榨乾CPU所有的潛力

2核,4核,8核,16核。。。核競賽硝煙瀰漫,各個芯片廠商摩拳擦掌,不停的向CPU中塞入更多的內核。吃瓜群眾越來越疑惑,“為什麼我就不能做個安靜的美男子,那麼多核我用的上嗎?”。本番外篇為你介紹Intel提高單線程處理能力的利器:睿頻技術。

原理篇

2核,4核,8核,16核。。。核競賽硝煙瀰漫。我們都知道操作系統調度的最小單位是線程(Thread),我們要使用這麼多內核,必須對應用程序作出極大優化,將任務並行化處理交給不同線程。任務並行化有很大的難度,稍不小心就會造成死鎖,調試起來也相當麻煩。事實上現在很多應用程序和遊戲,在大多數情況下都是隻有一個線程在運行,在個別內核極度繁忙時,其他內核卻無事可做,可謂忙的忙死,閒的閒死。如何才能把閒置資源調動起來,讓這個內核處理速度加快呢?

還是舉我們在Cstates文章中的那個例子。想象一下,我們的那個有八個大車間的新工廠,廠房乾淨漂亮,傳送帶筆直乾淨,各個廠房之間有寬闊的道路,到處照明充足。這次我們有了上次的經驗,在需求不足時關閉不用的車間,節省了電力。但是這次我們有了新的煩惱:有些產品只能在特定的車間組裝,而這些產品需求量非常大,簡直是供不應求。看著工廠各處忙閒不均,你陷入了沉思,如何才能利用起來空閒的產能呢?你靈機一動,你找人安裝了一套電力轉換器,可以隨意調度各個車間的電力分配,並給生產機器人也加入了超頻裝置。這樣你把空閒車間的電力轉入這個忙碌車間,新注入的電力讓生產線加速運轉,機器人也像打了雞血般瘋狂運行,產出快多了!你一邊盤算著年底的加薪,一邊小心控制著電力注入,畢竟變電器爆掉或者產線過熱著火就得不償失了。睿頻幾乎也是一樣的道理。

歷史

一個提高CPU主頻的辦法就是超頻。熱管,水冷,甚至液氮都向CPU上面招呼,各個論壇上超頻愛好者們都在討論如果榨出CPU所有的潛力,超頻也是不少主板廠商的賣點。但是超頻要適可而止,當水冷系統忽然壞掉,你的CPU和主板變成一堆昂貴的磚頭,就欲哭無淚了。Intel一直在研究如何能在CPU運轉不超過TDP (Thermal Design Power,散熱設計功耗)的情況下,提高CPU主頻。睿頻(Intel Turbo Boost )技術隨之誕生,有人叫它“官超”(很不準確)。

1. 睿頻1.0

第一代睿頻,在Nehalem 引入。核心功能是當部分內核空閒,進入CStates。內置的電能控制模塊會把它們的電力轉入忙碌內核,提高他們的電壓和頻率,使之超過標稱主頻,一般都有超過10%-20%的加速效果。這樣做的前提是整體功耗不超過TDP。如下圖:

睿頻:榨乾CPU所有的潛力

2. 睿頻2.0

在Sandy Bridge 引入。在這一代,主要的提高是將GPU也納入了整體調節範圍,在GPU不太忙碌的情況下,其電能也會被轉入忙碌內核,反之亦然。另外一個很重要的改進是不再受TDP的硬約束,可以短暫的超過TDP運行,直到溫度傳感器達到特定閾值才緩慢回落。這樣可以更好地處理突發任務。新加入的功能帶來了複雜性,Intel也提供了應用程序方便用戶查看狀態,後文有詳細介紹。

3. 睿頻MAX 3.0

在Skylake引入。主要是識別處理器中速度最快的內核,並將最關鍵的任務引導至此,進而達到最佳化的效能。必須要指出它不是睿頻2.0的替代品,它旨在提供靈活性和彈性,讓處理器發揮更大效能。它的實現比較複雜,需要安裝特別的驅動程序和軟件,BIOS也需要做不少改動。它不在本文的討論範圍裡。

以上都可以在Intel的官網上找到相應資料和軟件,大家可以自行搜索睿頻即可。

實現

除去睿頻 MAX 3.0外,睿頻2.0和1.0都不需要安裝特殊的驅動程序,OS只要支持EIST (Pstates)即可,它對OS是透明的。如前文介紹EIST中報告Pstate時說明的,我們在支持睿頻時需要將P0留給Turbo Mode也就是睿頻模式使用。CPU在睿頻打開時,在收到進入P0的請求後,會自動根據算法將進入Cstate的內核的電力轉移到P0的內核上,加壓和提高頻率。

這裡需要指出的是在Sandy Bridge 之前,單個處理器內所有的內核都是在一個ACPI的Power Domain裡,意味著睿頻要工作,內核要不在P0,要不在Cstate,沒有中間狀態。

常見問題

Q:我如何知道我進入了睿頻模式呢?

A:安裝Intel Turbo Boost Technology Monitor。當睿頻還沒啟動而且比較空閒,顯示這樣:

睿頻:榨乾CPU所有的潛力

當EIST開始工作,但睿頻還沒啟動時:

睿頻:榨乾CPU所有的潛力

睿頻1.0啟動時(原頻率1.73GHz,睿頻到2.93GHz):

睿頻:榨乾CPU所有的潛力

睿頻2.0啟動時(原頻率2.2GHz,睿頻到3.0GHz):

睿頻:榨乾CPU所有的潛力

後記

線程融合技術,即CPU能自動將任務分解給各個CPU線程來運行,現在是各個研究機構的熱點。在這個技術獲得突破之前,睿頻技術是我們提高單線程運算能力的得力工具。


分享到:


相關文章: