Intel新一代服務(wù)器處理器Xeon E5-2637 v4標(biāo)稱的內(nèi)存帶寬76.8GB/s,達到了該系列的最高水平,不過在實測中它與有的同門兄弟相比卻有一些差距。類似的情況也出現(xiàn)在E5-2623 v4幾款上面,這是為什么呢?

從Pentium III Xeon 933 PK?Pentium III 933說起

在準備撰寫本文的過程中,我想起10多年前的一個故事,也是與Intel Xeon(至強)CPU相關(guān)的

2

Pentium III Xeon 733-933,Slot-2、133MHz前端總線、256KB全速L2 Cache

搞服務(wù)器比較早的朋友可能還記得,Intel第一代服務(wù)器專用處理器是Pentium Pro,當(dāng)年我見過單Socket 8插槽的Pentium Pro主板(華碩P6NP5)。當(dāng)桌面產(chǎn)品線升級到Pentium II和Pentium III時,開始出現(xiàn)相對應(yīng)采用Slot 2插槽的Xeon產(chǎn)品線。Pentium II Xeon和早期的Pentium III Xeon L2 Cache容量有1-2MB,當(dāng)時CPU的工藝還難以將如此大容量SRAM和CPU內(nèi)核集成到一個Die上面。

從133MHz前端總線的Pentium III Xeon開始,Intel直接將on-die 256KB二級緩存的Pentium III設(shè)計拿過來用。不過當(dāng)時的用戶也不傻,比如Pentium III Xeon 700 2MB的價格高達1萬多,而Pentium III Xeon 866/933 256KB大約在5-6千元。

相比之下,同樣256KB 緩存的Pentium III 933只有2千多。那時候我還真碰上一位用戶就要選擇Xeon 933,理由是他了解到性能比普通Pentium III高出5%。

從那往后到Pentium 4與Intel Xeon的一段時間內(nèi),除了單雙路和CPU封裝/主板不同之外,服務(wù)器與桌面CPU規(guī)格上差別確實不大。一對一的性能差距,有時就是Intel將L2 Cache時序設(shè)置不同這樣的原因。

內(nèi)存帶寬測試及實際應(yīng)用價值

硬件設(shè)計上的不同,會反映在有些性能測試中。CPU Cache會影響到處理器訪問內(nèi)存的效率,包括緩存命中率等。在本文中我們討論內(nèi)存帶寬測試,目的就是分析影響到該性能的CPU參數(shù),由于今天的CPU比當(dāng)初要復(fù)雜很多,所以得出結(jié)論不會那么簡單。

3

引用自《Performance and Energy Efficiency of Dell PowerEdge Servers with E5-2600 v4》

在4月1日那天,Intel正式發(fā)布了新一代雙路服務(wù)器處理器Intel Xeon E5-2600 v4,隨之而來的有更先進的工藝、更多的核心、更高的處理能力和能效比等。當(dāng)然若干項基準測試紀錄又一次被刷新了。

各種漂亮的數(shù)據(jù)我不想一一列舉,上圖來自一份戴爾文檔的“Memory subsystem performance”部分,可以看到在相同的PowerEdge 13G服務(wù)器平臺上v4處理器測出的內(nèi)存帶寬比v3更高。這一點倒是不意外,因為Xeon E5-2600 v4內(nèi)存支持到DDR4 2400,而v3只能到DDR4 2133。

而我也聽不少用戶反映過,說他們的應(yīng)用對內(nèi)存帶寬不敏感,只要配置的容量夠了就行。這個確實與應(yīng)用類型有關(guān),哪些用戶需要更多在意這個指標(biāo)呢?

4

上圖的Linpack浮點計算性能測試,是HPC(高性能計算)行業(yè)所公認的。我們看到,在相同主頻、核心數(shù)、內(nèi)存頻率以及功耗的情況下,BDW(Broadwell,Xeon E5-2667 v4)的核心效率比上一代Xeon E5-2667 v3提高了13%。

而在將Xeon E5v4的內(nèi)存頻率提高到DDR4 2400之后,性能又有進一步提高。初步結(jié)論就是高內(nèi)存帶寬對高性能計算應(yīng)用是有價值的。

性能不完全符合理論值,原因何在?

5

2016年2月SPA lab使用Dell PowerEdge R730服務(wù)器

真正引發(fā)我們撰寫本文的,是上面這個對比圖表。首先我標(biāo)出了一個小錯誤,E5-2630 v4是10核心而不是8核,它與大部分型號的L3 Cache配置都是2.5MB per Core。而在這一代產(chǎn)品中也有一個例外,E5-2667 v4、E5-2643 v4和E5-2637 v4這三款頻率優(yōu)化型CPU的L3 Cache大于這個比例。

我最初看到這個對比時有些不解之處:測試結(jié)果并不完全按照理論內(nèi)存帶寬排列,而是有些意外之處(紅圈部分)。同時我們也注意到圖中還有關(guān)于內(nèi)存控制器數(shù)量的描述,從最左邊的E5-2699 v4到E5-2650(L) v4這些12核及以上的CPU都是2個內(nèi)存控制器,右邊的10核及以下的只有1個內(nèi)存控制器。

6

上圖截自http://ark.intel.com網(wǎng)站,正如我們在本文開頭所述,單內(nèi)存控制器(同樣支持4通道DDR4 2400)的E5-2667 v4、E5-2643 v4和E5-2637 v4,標(biāo)稱內(nèi)存帶寬與雙內(nèi)存控制器的型號同為76.8GB/s。

接下來我們就想探究影響這一測試結(jié)果的原因,先列出幾種可能性(多選):

a.內(nèi)存頻率

b.內(nèi)存控制器數(shù)量?

c.QPI帶寬?

d.L3 Cache容量?

e.環(huán)形總線(Ring bus)瓶頸?

f.CPU核心數(shù)量 or 主頻?

首先第1點不用問了,第2點根據(jù)對比數(shù)字和戴爾文檔中的標(biāo)識也可以基本確認;接下來就是看下列幾個疑點與c/d/e/f中的哪些項目相關(guān):

1.E5-2637 v4(4核心)測試內(nèi)存帶寬落后于另外2款DDR4 2400單內(nèi)存控制器的CPU;

2.E5-2623 v4(4核心)測試內(nèi)存帶寬落后于另外3款DDR4 2133單內(nèi)存控制器的CPU;

3.E5-2603 v4(6核心)測試內(nèi)存帶寬落后于同為DDR4 1866單內(nèi)存控制器的E5-2609 v4。

注:Xeon E5-2623 v4官網(wǎng)標(biāo)稱的內(nèi)存帶寬,與其它DDR4 2133單內(nèi)存控制器的CPU同為68.3GB/s。

STREAM測試工具、OSB+DIR snoop新特性

由于要分析性能瓶頸,我們就需要對測試工具及其產(chǎn)生的壓力負載進行了解。為此我請教了一位朋友——戴爾解決方案顧問楊小雷,下面是他發(fā)的一條微博。

5

通過與這位朋友的交流我還得知:STREAM工具測出來的帶寬要在BIOS里設(shè)置本地訪問的模式,就是它下面標(biāo)的OSB+DIR snoop。所以理論上的內(nèi)存帶寬是每個CPU理論最大帶寬的2倍。這是Broadwell的默認模式,Xeon E5-2600 v4的新特性,以前沒有的。

這樣一來QPI帶寬的因素也可以排除了。關(guān)于“snoop”,讓我回想起2008年撰寫過的Intel Xeon 5400服務(wù)器/工作站平臺:

“Snoop Filter(探聽過濾器)是一種特殊的緩存,用于存儲CPU二級緩存的索引信息(只是包括其標(biāo)簽和狀態(tài),不包括數(shù)據(jù)),有助于減少處理器的前端總線發(fā)生數(shù)據(jù)堵塞的情況,提高前端總線的效率。Snoop Filter的容量要大于或等于每個CPU二級緩存容量之和才能發(fā)揮最佳的作用,5400系列處理器的二級緩存從5300系列的8MB增加到12MB,相應(yīng)的5400芯片組中Snoop Filter也由5000X的16MB增加到24MB?!?/p>

如今發(fā)生了一些變化,CPU整合了內(nèi)存控制器(IMC),多處理器Xeon平臺也從SMP變成了NUMA架構(gòu)。如果我沒理解錯的話,類似于Snoop Filter的功能現(xiàn)放在CPU上實現(xiàn),而L3 Cache的部分功能就是包含每個Core的L1 Cache和L2 Cache數(shù)據(jù),以保證緩存的全局一致性訪問。

7

上表引用自《Measuring Performance of Intel Broadwell Processors with High Performance Computing Benchmarks》

Xeon E5v4架構(gòu):

L3 Cache容量影響內(nèi)存帶寬發(fā)揮

這結(jié)論看似順理成章,但并不是每一次拍腦袋都能正確,所以我們才要建立在實測數(shù)據(jù)分析的基礎(chǔ)上。另外,還有沒有讀者不了解為什么Xeon E5會有單/雙兩種不同的內(nèi)存控制器數(shù)量?

6

上圖(點擊放大)來自國外網(wǎng)站,其中紅框標(biāo)出的部分與最終發(fā)布的產(chǎn)品規(guī)格有少量出入

Broadwell EP即Xeon E5-2600 v4的代號,其實從v2開始Intel超過10核心就采用2個(對)環(huán)形總線和雙內(nèi)存控制器(總數(shù)還是4通道)的設(shè)計。

與上圖有所出入的是,最右邊的單內(nèi)存控制器(LCC)也包括10核心的Xeon E5-2640 v4和Xeon E5-2630L v4。前文中我們確認了將內(nèi)存控制器連接到環(huán)形總線的Home Agent在DDR4 2400這樣高頻率下可能成為瓶頸。

接下來就靠數(shù)字分析了,在這里省略掉我思考的過程。根據(jù)前面列出的Xeon E5-2600 v4全線內(nèi)存帶寬對比,4核10MB L3 Cache的2623 v4表現(xiàn)最低;另外2款較低的E5-2637 v4(4核心)E5-2603 v4(6核心)都是15MB L3 Cache;而在L3 Cache達到20MB之后,STREAM測試的數(shù)值基本上就是內(nèi)存頻率的反映了。

8

Intel有意為頻率優(yōu)化型CPU補短?

Intel Xeon E5-2600 v4系列中的幾款頻率優(yōu)化型CPU,由于減少了核心數(shù)量,相應(yīng)的內(nèi)存控制器數(shù)量和L3 Cache也受到影響,盡管它們?nèi)灾С州^高的內(nèi)存頻率,但實際帶寬性能表現(xiàn)受到一定影響。大多數(shù)HPC應(yīng)用講究計算的并行度和能耗比,估計不會選擇這幾款;而在意單線程性能的應(yīng)用(如:工作站),對內(nèi)存帶寬不見得敏感。

而另一方面,Intel將E5-2667 v4、E5-2643 v4和E5-2637 v4這三款CPU的L3 Cache加大,客觀上減少了實際內(nèi)存帶寬下降的幅度。

最終把問題搞清楚,又客串了一把工程師的小編我也該補補腦了:)而真正的專家是在文中提到的那位朋友,同時也要感謝下我的另一位朋友喬峰。

分享到

sunk

相關(guān)推薦