處理器核心真的越多越好?
本文通過資料分析對比,驗證處理器效能受哪些因素影響。
上篇文章回顧: ofollow,noindex"> Nginx限流特技
這裡我們不再贅述有關暫存器、ALC等處理器架構和原理知識。我們只從直觀的資料去分析和了解我們正在使用的多核處理器的真實效能——正所謂“是騾子是馬拉出來溜溜”。一切建立在實際執行的資料才是真正有價值的評判依據。
在開始資料分析之前,我們必須弄清楚處理器的計算能力到底是什麼:是頻率決定了效能?還是核數決定了效能?
首選我們必須瞭解處理器的一個簡單的效能計算公式:
整體效能 = 單核效能 × 核心數
其次效能受哪些因素影響會有以下這些原則:
原則一:架構越新,單核計算效能越強!
對比同頻率、同核心數的前後兩代處理器的計算能力就能發現架構越新的處理器整體計算能力也越強,這也意味著處理器架構的改進確實提高了單核效能。
原則二:頻率越高,單核計算效能越強!
對比同代同核心數不同頻率的處理器就能發現頻率越高的處理器計算效能也越好,但這並非完全的線性增長。原因是處理器頻率上去以後由於受到記憶體訪問速度的限制也會有一定的瓶頸,而頻率越高的處理器耗費在資料等待上的時鐘週期也越多。
原則三:核心數越多,整體計算效能越強!
對比同代同頻率不同核心數的處理器不難發現核心數越多的處理器整體計算效能也越好。但是如果觀察單核效能會發現其實核數越多的處理器單核效能比同頻率核數較少的處理器會差一些,主要原因是核數越多對共享資源的爭搶概率也越高,這些共享資源包括L3快取、記憶體、QPI匯流排等,這也就是多核處理器總是要把L3快取做得很大的原因,核數越多L3快取也越大。
請重點區別單核效能和整體效能:
1、單核效能 :它影響的是單執行緒或者單任務的計算能力(即計算的響應延遲),對於單個請求計算的響應延遲要求較高的應用,就要用高頻處理器去滿足,而不是用多核。因為應用的一個執行緒無論任何時候都只能執行在處理器的一個核心上,增加核心數量對於改善單個計算請求的響應延遲並沒有幫助,也就是說對跑單執行緒、單任務的應用無法提升其效能;
2、整體效能 :前面提到核數越多整體效能越好,這也意味著多執行緒和多工的應用環境下,如果要提高單機的計算處理量最好的辦法是增加核心數而不是靠提高頻率。理由很簡單,核數較少的處理器晶元面積也小。如果要一味提高效能便要提高頻率,提高頻率其實就是給處理器晶元加電壓。晶元能夠忍受的電壓是有限的,電壓耐受力越高的晶元成本也越高。因此從穩定性和成本去考慮的話,晶元面積更大的多核處理器才是提高整體計算能力的最好選擇。
下面我們挑選幾款主流的雙路處理器來作效能分析:
一、核數相同、頻率不同
資料說明:
如下表所示從第7行(Geekbench Integer)起是各項效能指標:分別是Geekbench整數成績、SuperPI執行百萬次的時間、以及根據Geekbench整數效能分別除以“處理器數量”、“核心數量”、“核心數量和Ghz的乘積”等來分別針對整體效能,單核計算能力,單個處理器、單個核心以及單個核心下每個Ghz的效能進行分析評估。
資料分析:
1、SuperPI體現的是單核浮點效能,通過SuperPI成績可以發現處理器頻率越高單核計算效能也越好,這一點也可以通過“效能/每個核心”專案體現,頻率越高單核的計算效能也越好;
2、Geekbench Integer評估的是處理器的整體效能,規律自然也是頻率越高整體效能越好;
3、“效能/每Ghz/每個核心”專案評估的是處理器的計算效率,這個專案是將Geekbench的整數成績按照核數拆分並根據單個Ghz去計算,可以發現核數相同的處理器這個資料相互比較接近。
二、頻率相同、核數不同
資料分析:
1、SuperPI專案更加可以說明單核計算能力受頻率的影響,雖然2640 v2有8個核心,但對SuperPI的成績沒有絲毫幫助;
2、通過“效能/每個核心”專案可以發現,同頻率下核數更少的2620 v2在這項成績略好一些,即頻率相同核數較少的處理器在單核效能上總是會核數更多的處理器略好一些,這確實也驗證了核心之間存在資源爭搶的假設;
3、Geekbench Integer成績也體現出多核的效能優勢,同頻率下核數較多的處理器整體效能也更好;
4、再來看看用以評估計算效率的“效能/每Ghz/每個核心”專案,可以發現核數較多的處理器在計算效率上處於劣勢:八核處理器的單核Ghz效能明顯要比六核處理器的低不少,這樣也進一步驗證了核心之間存在資源爭搶的假設,並且核數越多資源爭搶的現象也越顯著。
三、整體效能相同
最後一組選取整體效能接近而頻率和核數均不同的處理器:
資料分析:
1、SuperPI的成績依舊驗證了單核效能只受頻率影響的假設;
2、Geekbench Integer成績說明2630 v2的效能整體略好於2640 v2;
3、通過“效能/每個核心”項依舊驗證了頻率決定了單核效能的假設;
根據以上資料我們可以進一步將計算公式細化為:
多核處理器的整體計算能力 = 單核Ghz計算能力 × 頻率數 × 核數
總 結
1、處理器整體效能和頻率、核數有關,但並非核數越多效能就一定越好,高頻少核和低頻多核整體效能很可能接近。
2、核數決定了計算承載能力,核數越多能夠承載的計算量也越大。
3、頻率決定了單核計算能力,頻率越高單個計算請求的響應延遲也越低。
4、頻率相同的情況下,核數越多單核計算效率也越低。