2014-01-29 44 views
3

我有一個相當理論上的問題:CPU /內核使用率與能耗之間是否存在關係。 我試着在一個例子中解釋它: 假設我們有一組任務T和一個核心C1。 C1將在10秒內完成設定T,同時具有100%的使用率。使用兩個核心C1和C2可以節省更多能源,並將其中的任務從T中劃分出來,因此它在10秒內仍然完成,但在此期間C1和C2的使用率爲50%? (< - 只是一個例子,數字並不是真實的) 就像一輛汽車有一定的速度,它不會浪費太多氣體(儘管我知道車輛速度更接近核心頻率)。 我雖然認爲當cpu/core運行在100%時比(比如說)50%變暖,這意味着它需要更多的能量來冷卻。多核系統中的節能CPU使用率

我會感謝任何意見關於這一主題

歡呼

回答

1

對於CMOS電路的能量取決於交換機的數量。在最基本的水平上,能量取決於總工作量,但不取決於CPU負載百分比。

但也有一些方面:

1)能量正比於CPU電壓的平方。使用英特爾EIST等技術可降低電壓,使性能提高2 x 50%。2)時鐘淨消耗大量能量,無論負載如何。操作系統的頻率可能會降低2 x 50%

3)操作系統可以禁用不活動的內核,使性能提高1 x 100%。但我不知道這樣的技術。可能對ARM來說是可能的。我在Google中找不到任何東西。

2 x 50%看起來更好。

+0

感謝您的回答 – user2311649

0

事實上,從手機到HPC,基本上任何一臺不用擔心在特定功率範圍內工作的計算機都是非常實用和重要的問題。我會盡量不要說你的耳朵。

作爲一般規則,您執行任務的速度越快越好。現代處理器中的電源管理在閒置時將內核置於睡眠狀態(有趣地稱爲Cx,其中x從1變爲n)。消耗更少功耗的方式是最大限度地提高內核在睡眠狀態下可以花費的時間。最好的辦法是儘快完成工作。

下面是一個例子:假設我們有一個雙核處理器。執行時(非空閒)每個內核消耗大約30W。當處於空閒狀態時,假設核心消耗5W。我假設P狀態(大多數現代處理器中的另一個電源管理功能)不存在。我們來看一個10秒的窗口。您在t = 0時開始執行您的應用程序。我們還假設您的應用程序受到計算限制,這意味着它不會阻止I/O或其他任何操作。案例A(OK):您的應用使用一個核心(core-0),另一個核心(core-1)不活動。因此,在這10秒間隔內,核心0使用30W並消耗300焦耳的能量。 (以焦耳爲單位的能量=以瓦特*爲單位的功率)。另一個核心是空閒的,只消耗5W或50J。所以總能量消耗是350J(10秒內35W)

情況B(壞):你的應用在兩個核心之間分裂10秒並且都不是空閒的。那麼你的總消耗是60瓦(每個核心30瓦),消耗600J。這是相當糟糕的。案例C(好):假設你做了一些智能多線程,並且可以通過在兩個內核之間分配線程來以4倍的速度執行你的應用程序。即使在今天,大多數代碼的線程很差,這是非常合理的。然後你可以在2.5秒內獲得30W的兩個核心,或225焦耳。這降低了近60%。

如果您正在處理移動電池壽命或爲數據中心供電,那麼能源使用量減少60%是一件大事。

我寫了很多關於從物理到實現的東西。如果您想了解更多信息,請查看https://software.intel.com/en-us/articles/list-of-useful-power-and-power-management-articles-blogs-and-references或使用您最喜愛的搜索引擎找到我。

+0

非常感謝您的回答 – user2311649