今年服務(wù)器芯片市場最引人矚目的事件莫過于AMD攜帶依托Zen架構(gòu)代號Naples的EPYC在上次進軍服務(wù)器市場被挫敗10年之后再次向英特爾發(fā)起了挑戰(zhàn)。 而作為服務(wù)器市場霸主的英特爾同樣拿出了代號Skylake-SP的Xeon Scalable可擴展處理器家族系列積極應(yīng)戰(zhàn)。 盡管在雙方的發(fā)布會PPT中都看出了各自性能的提升以及相對競爭對手所取得的優(yōu)勢,,但有趣的是,,至少在中國,由于無法取得測試樣機,,因此尚無第三方可以對兩者進行橫向?qū)Ρ取?/p> 為了挖掘背后的真相,中關(guān)村在線企業(yè)站通過全球權(quán)威硬件評測媒體AnannTech的對兩者的測試數(shù)據(jù)來給讀者和服務(wù)器行業(yè)一個清晰直觀的認知。 Xeon可擴展家族 從測試結(jié)果來看,,AMD的EPYC在浮點運算上和內(nèi)存帶寬上取得的優(yōu)勢是驚人的,但是與此同時英特爾在內(nèi)存延遲,、單線程整數(shù)運算以及事務(wù)型數(shù)據(jù)庫上的優(yōu)勢地位同樣難以動搖,,雙方更是在大數(shù)據(jù)測試、Java性能測試環(huán)節(jié)中難分伯仲,。而接下來我們將通過測試數(shù)據(jù)來對比兩者之間的性能和優(yōu)劣,。 再次聲明:本文中所有數(shù)據(jù)均出自AnandTech,,如數(shù)據(jù)有誤還請見諒。 競爭從口水戰(zhàn)開始 在奧斯丁,,一名AMD的工程師在詳解Zen架構(gòu)和Skylake架構(gòu)區(qū)別的幻燈片前談?wù)摰健?盡管從幻燈片上來看差不多,,但實際上他們有很大差別'。 英特爾的發(fā)言人表示完全同意:'實際這兩個產(chǎn)品完全是兩回事''我們必須得讓消費者明白他們不能簡單的用AMD的32核心去對比我們的28核心,。' EPYC的32核心令人印象深刻 對于服務(wù)器CPU行業(yè)來說,,英特爾發(fā)布的最新一代Skylake-SP的Xeon處理器最新一代使用Skylake-SP架構(gòu)的Xeon處理器讓人感到心喜,代號'Purley'100系列處理器包含了英特爾最新的CPU和網(wǎng)絡(luò)光纖技術(shù),。 而此前AMD發(fā)布的全新EPYC 7000系列處理器,,憑借AMD公司的Zen架構(gòu)和可擴展的服務(wù)器級別I/O和核心數(shù)量更是讓業(yè)內(nèi)感到振奮。 Xeon可擴展家族提升亮點同樣不少 EPYC代表著AMD取得的史詩級成就,。這也讓兩家公司在近五年之后再一次展開了高性能服務(wù)器的性能競爭,。目前的這種狀況在兩家公司之間已經(jīng)很久沒有發(fā)生。 英特爾一直不在乎AMD的挑戰(zhàn),,也不看重兩者之間的競爭,,不過對于之前的AMD來說也沒有能力與英特爾一戰(zhàn)。但是現(xiàn)在情況則完全不同,,兩者都非常關(guān)注彼此下一步的舉動,。 實際上,全新的Skylake-SP架構(gòu)對標(biāo)的并不是前一代Xeon(E5v4),,而是AMD嶄新的EPYC服務(wù)器CPU,。兩個CPU毫無疑問有很多不同;micro architecture(微架構(gòu)),, ISA extentions(ISA擴展),, memory subsystem(內(nèi)存子系統(tǒng)), node topology(節(jié)點拓撲)...而這些技術(shù)在具體應(yīng)用中又會怎樣呈現(xiàn)呢,?我們先做一個簡單的對比,。 Skylake-SP VS Zen 英特爾和AMD這次發(fā)布的新產(chǎn)品相比過去都有了很大的改變,英特爾的Skylake-SP家族有如下新特點,。 1.AVX-512指令集(可提供不同的ISA擴展) 2.1 MB(取代過去的256KB)的2級緩存并帶有非包含式剔除3級緩存(只保存從二級緩存中剔除的或者寫回的數(shù)據(jù)),。 3.Mesh拓撲連接方式讓每個核心和三級緩存捆綁在一起。 而AMD這邊則使用了MCM封裝方式:每一塊芯片封裝中有4塊Die,,每一片中都包含8個完全一樣的核心,,這和AMD Ryzen的處理方式一樣。 每一個Die擁有兩個核心群組,,每一組包含4個核心,,并支持兩條內(nèi)存通道,單個EPYC處理器最多可擁有32顆核心和8條內(nèi)存通道。不同的Die通過AMD最新的內(nèi)部連接器(Infinity Fabric)連接,。 至于兩者之間的不同,,通過下面這張表可以簡單了解一下。 規(guī)格對比 從某種角度來說,,英特爾擁有最先進的多核拓撲結(jié)構(gòu),,因為它們能夠在網(wǎng)格中集成多達28個核心。 Mesh結(jié)構(gòu)將允許英特爾在未來幾代中添加更多的內(nèi)核,,同時在大多數(shù)應(yīng)用程序中保證表現(xiàn)一致,。最后一級緩存具有很好的延遲表現(xiàn),適用于需要占用大量內(nèi)存的應(yīng)用程序,。 訪問本地L3緩存塊和一個更遠的緩存之間的平均延遲差異可以忽略不計,,L3緩存成為L2緩存之間進行快速數(shù)據(jù)同步時的中央存儲。 當(dāng)然,,性能最強的Xeon處理器尺寸龐大,,而生產(chǎn)價格也非常昂貴。 全新的Mesh架構(gòu) AMD的MCM解決方案從制造角度來說要便宜不少,。在4個die以及每個die配備的兩個內(nèi)存通道支持下,,內(nèi)存峰值帶寬和容量都要更勝一籌。 然而,,它沒有最后一級的中央緩存可以讓不同的內(nèi)核(除了在一個CCX群組內(nèi))的L2高速緩存之間實現(xiàn)低延遲的數(shù)據(jù)協(xié)調(diào),。八個8 MB的L3緩存在一些情況下表現(xiàn)不盡如人意。 Naples的4*8 MCM架構(gòu) 測試環(huán)境及測試配置和方法 AnandTech在本次測試中使用了更貼近EPYC的Xeon 7601而不是最強的Xeon 8180,,同時為了更好地對比性能,,還選擇了差不多有5年歷史的Sandy Bridge-EP架構(gòu)的Xeon E5-2690。原因很簡單,,做為一臺服務(wù)器來說,,5年的服役歷史本身就有足夠的理由去更換,而這樣的測試結(jié)果對于那些需要更換服務(wù)器的部門經(jīng)理來說顯得更加有參考價值,。所有的測試都基于Ubuntu系統(tǒng),代號為'Xenial'16.04.2 LTS(Linux kernel 4.4.0 64 bit),。編譯器為GCC 5.4.0,。首先是Xeon 8176的配置: 雙路Xeon 8176 下圖展示了常用的Bios設(shè)置,在測試中啟用超線程和英特爾虛擬化技術(shù),。 然后是雙路系統(tǒng)的,,AMD EPYC 7601。 雙路EPYC 配置如下: 雙路EPYC 7601服務(wù)器配置 最后是雙路Intel's Xeon E5服務(wù)器– S2600WT
Bios設(shè)置如下: 雙路E5 2699 v4 其他事項 兩個服務(wù)器都采用了歐洲標(biāo)準230V(最大16安)的電源線,,房間溫度被Airwell CRACs控制在23攝氏度。 內(nèi)存帶寬測試 由于核心數(shù)和內(nèi)存通道數(shù)的不斷增長,用Stream bandwidth benchmark來測試最新的CPU的全部帶寬潛力變得更加困難,。 因此在64位的版本號為17的Linux,,GCC 5.4上的英特爾編譯器(icc)編譯5.10流源代碼。下列編譯器指令用在icc上,。 icc -fast -qopenmp -parallel (-AVX) -DSTREAM_ARRAY_SIZE=800000000 注意,,這里特別增加了Array,讓數(shù)據(jù)保持在6GB左右,,測試中一次用AVX編譯,,另一次則沒有AVX,結(jié)果用每秒GB表示,。 同時,,下列編譯器指令被用在gcc上: -Ofast -fopenmp -static -DSTREAM_ARRAY_SIZE=800000000 注意一點,在EPYC系統(tǒng)上我們用的DDR4 DRAM運行在2400GT/s(8通道),,而英特爾系統(tǒng)的DRAM則是在2666GT/s(6通道),。 因此雙路AMD系統(tǒng)理論上內(nèi)存數(shù)據(jù)為每秒307GB(2.4 GT/s* 8 bytes per channel x 8 channels x 2 sockets),英特爾系統(tǒng)則是每秒256GB(2.66 GT/s* 8 bytes per channel x 6 channels x 2 sockets),。 Stream Triad測試 AMD跟AnandTech說他們不是非常相信使用ICC編譯器獲得的結(jié)果,,如果使用他們自己完全定制的編譯器可以達到250GB/s。 比較有意思的是,,英特爾宣稱優(yōu)化過的AVX-512可以達到199GB/s(Xeon E5-2699 v4搭配DDR-2400是128GB/s),,但是這樣的帶寬數(shù)只適用于特定的HPC。 所以實際上評測的數(shù)據(jù)更能反映現(xiàn)實,。128線程,,8通道 DDR4內(nèi)存給AMD EPYC處理器大概25%~45%的帶寬優(yōu)勢,這可能與大部分的服務(wù)器應(yīng)用沒什么關(guān)系,,但是在很多稀疏矩陣類HPC(超算)應(yīng)用中卻能帶來很多好處,。 最大帶寬是一碼事,但帶寬必須要盡快投入使用,,為了更好的讓人理解內(nèi)存子系統(tǒng),,因此按照不同的核心數(shù)來和線程數(shù)進行一下梳理。 內(nèi)存帶寬在不同線程下的反映 新的Skylake-SP提供的單線程帶寬很一般:雖然測試中用了更快的DDR4-2666內(nèi)存但是只有12GB/s,。 而Broadwell-EP用了更慢的DDR4-2400內(nèi)存卻能擁有50%更多的帶寬,,很顯然Skylake SP需要更多的線程來獲得盡可能多的可用內(nèi)存帶寬。 再來看AMD這邊,,如果需要的話,,Naple核心的單線程可以達到27.5GB/s。 這非常有前途,,這意味著在單線程層面,,HPC的應(yīng)用可以獲得充沛的帶寬從而運行程序足夠快,但是一個四核心的CCX可以調(diào)用的帶寬只有30GB/s。 總體來說,,英特爾Skylake-SP Xeon的內(nèi)存帶寬表現(xiàn)相比EPYC更加線性,,所有的Xeon核心都可以訪問所有的內(nèi)存通道,因此內(nèi)存帶寬直接根據(jù)線程數(shù)提升,。 內(nèi)存延遲和子系統(tǒng)測試 現(xiàn)在的CPU性能很大程度上取決于緩存子系統(tǒng),,有些應(yīng)用也非常依賴內(nèi)存子系統(tǒng),在這方面可以通過LMBench來評估緩存和內(nèi)存的延遲,。 設(shè)置的數(shù)據(jù)為'Random load latency stride=16 Bytes(隨機負載延遲幅度= 16字節(jié))' 結(jié)果如下: 緩存測試 有人形容AMD的Infinty Fabric將兩個CCX封裝一個Die上,,而在一個MCM中四個不同的Zeppelin Die相互連接。對于Naples來說,,將兩個CCX封裝在一個 Die上肯定不是最佳選擇,。 訪問本地'嵌在CCX內(nèi)的'8MB 3級緩存延遲非常低。但是一旦核心需要訪問另一個3級緩存塊時,,即使在同一個Die上,,Unloaded延遲也會非常糟糕。 這只比訪問內(nèi)存的延遲好一點,,所有目前推出的CPU在訪問內(nèi)存的進程都有很高延遲,。信號需要從內(nèi)存控制器到內(nèi)存總線,而DDR4-2666內(nèi)的內(nèi)存矩陣只運行在333MHz頻率上(因此DDR4的CAS延遲非常高),,所以令人驚訝的是on-chip fabric訪問SRAM需要這么多周期,。 這對最終用戶意味著什么呢?64MB的3級緩存在規(guī)格表上并不真的存在,,實際上即使是在單一的Zeppelin Die上的16MB的3級緩存也是由兩個8MB的3級緩存組成,。在MCM上沒有真正單一且統(tǒng)一的3級緩存,而是8個獨立的8MB三級緩存,。 對于占用空間適用于8MB 3級緩存的應(yīng)用來說表現(xiàn)很好,,像是虛擬機(JVM,虛擬機只依賴于一個)還有HPC/大數(shù)據(jù)應(yīng)用并行運行在不同的數(shù)據(jù)塊內(nèi)(比如map/reduce中的map),,然而這樣的設(shè)計對于那些需要'核心'訪問一些大得數(shù)據(jù)池的應(yīng)用來說肯定會有損害,,比如在數(shù)據(jù)庫應(yīng)用和大數(shù)據(jù)應(yīng)用的'Shuffle Phase'操作。 內(nèi)存子系統(tǒng)測試 為了再次確認延遲測試并更深入的了解各自的架構(gòu),,因此AnandTech使用了開源測試軟件TinyMemBench,,源代碼是由x86的GCC 5.4編譯,優(yōu)化級別設(shè)置為'O3',。 TinyMemBench的操作手冊對于測試有個很好的解釋: 通過測試雙隨機讀取,,可以看到內(nèi)存系統(tǒng)是如何成功應(yīng)對多個讀取需求的,。 不同大小數(shù)據(jù)下的延遲表現(xiàn) 近幾年來,CPU的三級緩存的大小一直在穩(wěn)步增加,。Xeon E5 v1有20MB,,v3升到45MB,v4的'Broadwell EP'進一步增加到55MB,,但是越大的緩存造成了越大的延遲,。 從Sandy Bridge-EP到Broadwell-EP,三級緩存的延遲翻了一倍,。所以難怪這次Skylake把二級緩存增大并用了更快且更小的三級緩存,。這讓512KB的測試中二級緩存的延遲降低了4倍。 AMD的unloaded延遲在8MB以下的測試中表現(xiàn)出非常強的競爭力,,相對以前的AMD服務(wù)器CPU來說是一個巨大的飛躍,。 但不幸的是在8MB以上的表現(xiàn)相比Broadwell核心訪問內(nèi)存的延遲更加糟糕。而在緩慢的三級緩存訪問測試中,,AMD的內(nèi)存訪問速度依然是最慢的,。 Unloaded延遲的重要性當(dāng)然不應(yīng)該被過分夸大,不過對于指針追蹤和其他對延遲比較敏感的應(yīng)用來說依然是個壞消息,。 單線程整數(shù)運算性能:SPEC CPU2006 即使在服務(wù)器市場也是高核心數(shù)的CPU稱雄,。單線程高性能表現(xiàn)依然值得擁有。它確保在任何情況下都能保證一定的性能發(fā)揮,,而不是僅僅為了'embarrassingly parallel(易并行計算)'軟件的'throughput situations'(吞吐情況)SPEC CPU2006以HPC和工作站為主,,它包括了針對整數(shù)運算的各種工作負載測試。 為了盡可能貼近一些關(guān)鍵軟件的編譯性能,,而不是試圖去達到更高的分數(shù),。因此在測試時: 使用64位的GCC:目前為止Linux使用最多的針對整數(shù)工作負載的編譯器。 好且全面的編譯器是不會試圖破壞測試(libquantum…)或者偏向某一架構(gòu),。 使用版本號為5.4的GCC:Ubuntu 16.04 LTS標(biāo)配編譯器(注意一點,,在早期的文章中使用的是4.8.4) 使用-Ofast -fno-strict-aliasing優(yōu)化:在性能和保持測試簡單之間達成一種平衡。 增加'-std=gnu89'可移植性指令來解決在一些測試中GCC5.x編譯器中無法編譯的問題,。 運行一次測試,。 這個測試的終極目標(biāo)是在'非積極優(yōu)化'的應(yīng)用測試中測試性能,因為一些原因,,'對多線程不太友好的'測試一直讓我們拭目以待,。 首先是單線程測試結(jié)果,很重要的一點是感謝現(xiàn)在的Turbo技術(shù),,所有的CPU相對基礎(chǔ)頻率來說都運行在更高的頻率上,。 The Xeon E5-2690 ('Sandy Bridge')能夠加速到3.8GHz The Xeon E5-2690 v3 ('Haswell')能夠加速到3.5GHz The Xeon E5-2699 v4 ('Broadwell')能夠加速到3.6GHz The Xeon 8176 ('Skylake-SP') 能夠加速到3.8GHz The EPYC 7601 ('Naples') 能夠加速到3.2GHz 首先讓我們單純看一下數(shù)字,。 測試結(jié)果 原始的SPEC數(shù)據(jù)在密密麻麻的數(shù)據(jù)表中處理起來很費勁,因此用百分比的方式來對比基礎(chǔ)數(shù)據(jù)看起來更直觀,。 Sandy Bridge EP(Xeon E5 v1)已經(jīng)有五年歷史了,,由于定位為將要被取代的服務(wù)器芯片,因此用它的數(shù)據(jù)作為100%的的基準,,然后去對比其他架構(gòu)的單線程性能,。 測試結(jié)果對比 首先是評估不同架構(gòu)的IPC(Inter-Process Communication,進程間通信)效率,。 考慮到EPYC的核心運行頻率相比英特爾低12-16%的情況下取得了90%左右的性能,,因此可以理解為Zen架構(gòu)的IPC性能很強。 作為英特爾最新的CPU,,需要注意到Sky-lake SP核心擁有相對上一代'Broadwell'更大的二級緩存所帶來的影響,,特別是在perlbench,gobmk,,hmmer和h264ref項目上取得的優(yōu)勢,。 同時,由于新的GCC 5.4編譯器,,英特爾在'403.gcc benchmark'的表現(xiàn)可視為新架構(gòu)的一種退步,。 雖然Xeon E5-2699 v4的表現(xiàn)相對'Sandy Bridge'架構(gòu)的Xeon E5-2690只有83-95%,但這一次進一步倒退到70%,。 另一方面,,AMD的Zen核心在運行GCC時表現(xiàn)的非常出色。在混合指令占據(jù)高百分比((比較容易預(yù)測)的分支指令中,,比如,,在占用的空間更小,并且對低延遲(大多數(shù)是L1/L2/8MB L3)依賴較高的指令表現(xiàn)很好,,在對分支指令預(yù)測影響更高的工作負載中(某種程度上更高比例的分支指令丟失)-gobmk,,sjeng,hmmer-在'Zen'上運行的也很好,,相比上一代AMD架構(gòu),,分支指令預(yù)測錯誤懲罰要明顯更低,這些都要感謝uop緩存,。 另外在指針追逐測試中-XML處理和路徑查找需要更大的三級緩存,,這是EPYC表現(xiàn)最差的項目。 還需要注意的是事實上在低IPC omnetapp(可理解為互聯(lián)網(wǎng)的sim卡)項目上,,Skylake-SP要比Broadwell慢,,不過依然比AMD的EPYC要快。 Omnetapp受益于Broadwell巨大的三級緩存,,這就是為什么在Skylake-SP上會出現(xiàn)性能下降的情況,。 當(dāng)然,,這也意味著AMD EPYC處理器那種拆分式的8*8MB 三級緩存表現(xiàn)的要比英特爾最新的CPU慢很多,。這個結(jié)論同樣在視頻編碼基準測試'h264ref'項目上同樣符合,。 但是編碼測試更看中DRAM帶寬。事實上因為EPYC擁有更高的DRAM帶寬確保其不會落后英特爾太多,。 總而言之,,Zen架構(gòu)在單線程的表現(xiàn)是出色的,但是對于較低的Turbo頻率和'更小'的8*8三級緩存上還是感到有點失望,。 SPEC CPU2006 SMT整數(shù)性能測試 接下來是測試單核心上的SMT(simultaneous multithreading,,并發(fā)多線程)性能。通過在同一個核心上同時使用兩個線程進行測試,,可以評估核心是如何處理SMT的,。SMT性能 用百分比的方式來對比單線程的測試結(jié)果,可以看出啟用SMT后有多少性能提升,。 對比結(jié)果 平均而言,,Xeon E5-2699 v4和Xeon 8176由于SMT都提高了20%(超線程),而EPYC 7601提升更大,,差不多提高了28%左右,。有很多可能可以用來解釋這一現(xiàn)象 ,但其中兩種可能性最大,。 在AMD EPYC單線程IPC非常低的情況下,,由于超過了三級緩存(>8MB)因此延遲較高需要等待,第二個線程可以確保CPU能夠更好的被利用起來(比如壓縮,,和網(wǎng)絡(luò)SIM),。 第二個可能性是,可以看到AMD核心能夠在輕線程場景下調(diào)用更多的內(nèi)存,,這對于測試中更看重內(nèi)存的部分(比如視頻編碼,,量子sim)起到幫助。不管怎樣,,光AMD確實讓吞吐量得到了提升,。 SPEC CPU2006多核測試 SPEC CPU'速率'數(shù)據(jù)對于評估服務(wù)器CPU性能沒有太大價值,因為大多數(shù)應(yīng)用程序不會并行運算很多完全獨立的進程,,至少會在線程中有一些交互,。但此前AMD官方放出來的宣傳圖曾引起了市場的爭議。EPYC 7601是否真的在整數(shù)運算上有領(lǐng)先47%的實力,?通過測試可以知道答案,。AMD官方放出來的數(shù)據(jù)曾引發(fā)市場爭議 多核性能測試對比 在AnandTech的測試中,所用的是47.omnetpp線程數(shù)設(shè)置為64,,因為如果設(shè)置為128則會報錯,,根據(jù)AnandTech的估計,,因為如果設(shè)置為128則性能還可以提升10%到20%。 需要提前聲明的一點事:SPECint的比例測試可能是不切合實際的,。 如果啟動88到128個實例,,就會創(chuàng)造出一個巨大的帶寬瓶頸,而且CPU的負載一直在100%,。這兩種可能性在大多數(shù)的整數(shù)應(yīng)用程序中都不太現(xiàn)實,。 再加上沒有同步進行,這對于像AMD EPYC 7601這樣的服務(wù)器CPU來說是一種非常理想的情況,。 比例測試或多或少的對整數(shù)處理的峰值性能做出評估,,忽略了在大多數(shù)整數(shù)應(yīng)用程序中存在的細微的可伸縮性問題。 不過,,AMD的說法還是靠譜的,,就平均而言,使用合理設(shè)置的'中立'編譯器,,AMD 7601相對Xeon E5-2699v4擁有40%(在Omnetpp可以取得42%的性能優(yōu)勢,,一旦修復(fù)了128位線程錯誤)的整數(shù)性能優(yōu)勢,甚至比Xeon 8176還要快6%,,不要期望這些數(shù)據(jù)可以真的在大多數(shù)的整數(shù)應(yīng)用程序中實現(xiàn),,但它顯示出AMD取得了多大的進步。 多線程整數(shù)性能測試 雖然單純的壓縮和解壓縮并不是真實世界中的測試部分(至少在服務(wù)器領(lǐng)域),,但是目前越來越多的服務(wù)器工作中的很大一部分職責(zé)就是負責(zé)這些工作(比如數(shù)據(jù)庫壓縮,,網(wǎng)站優(yōu)化) 。壓縮測試分數(shù)越越好 壓縮很依賴緩存,,內(nèi)存延遲和TLB((Translation Lookaside Buffer)轉(zhuǎn)換檢測緩沖區(qū))效率,。 這對于AMD的EPYC來說絕對不是一個理想的情況。最好的AMD CPU相比上一代英特爾Xeon擁有幾乎多達50%的核心,,但是在性能上只提高了11%,。 解壓縮測試分數(shù)越高越好 解壓縮對應(yīng)較少的整數(shù)指令(移位、乘法),。英特爾和AMD的核心在處理這些整數(shù)指令上看起來很類似,,但AMD的芯片多了4個核心。多出這14%的核心數(shù)帶來了10%的解壓性能提升,。 數(shù)據(jù)庫性能測試 在數(shù)據(jù)庫測試中,,AnandTech使用的是Percona Server 5.7,增強了Drop-in的MySQL,。而測試工具是,,Sysbench 1.0.7,相比之前0.4,0.5版本更加高效,。在測試中使用Read-Only OLTP Benchmark,,盡管有點不貼近現(xiàn)實。但仍然比其他的Sysbench測試要有趣得多,。這能夠在不產(chǎn)生I/O瓶頸的情況下測試CPU的性能,。得分越高越好 正如預(yù)期的那樣,EPYC在數(shù)據(jù)庫項目上無法擁有的高性能表現(xiàn),。一個小型數(shù)據(jù)庫大多需要存在三級緩存中成了EPYC最糟糕的場景,。就是說,需要相當(dāng)多的調(diào)試,。 根據(jù)AMD的說法,如果啟用了內(nèi)存交叉性能應(yīng)該可以提升一些(10%-15%,?),,總的來說,EPYC在事務(wù)性數(shù)據(jù)庫的表現(xiàn)很平庸,。如果配合比較好的調(diào)教它也許可以超過Xeon v4,,但距離冠軍8176還差的遠了一些。 這使得測試EPYC在非事務(wù)性數(shù)據(jù)庫(文檔存儲,,Key-Value)的表現(xiàn)變得很有趣,,但是傳統(tǒng)的事務(wù)性數(shù)據(jù)庫領(lǐng)域依然是英特爾的天下。 通常在由于響應(yīng)時間很高被報告的時候,,會表現(xiàn)出低單線程性能,。然而EPYC不是這樣,在測試一個比8MB三級緩存大一點的數(shù)據(jù)庫時的響應(yīng)時間高可能是因為三級緩存的延遲所致,。 Java性能測試 SPECjbb 2015 Benchmark的測試模塊來源于'面向全球市場的超市零售公司所使用的可以處理銷售需求,,在線交易和數(shù)據(jù)IT架構(gòu)',測試模塊使用了最新的JAVA7的特性來實現(xiàn)XML,通信壓縮和信息安全,。SPECjbb2015 架構(gòu) 通過設(shè)置4組事務(wù)注入器和后臺的場景來通過SPECjbb測試,,我們之所以用'Multi JVM'測試是因為這更貼近現(xiàn)實:服務(wù)器上有多個VMs是很常見的做法。 Java版本為 OpenJDK 1.8.0_131,,在測試中采用了相對基礎(chǔ)的調(diào)教來模擬真實世界,,即目標(biāo)為所有東西都裝在128G RAM的服務(wù)器內(nèi)。測試指令如下: “-server -Xmx24G -Xms24G -Xmn16G -XX:+AlwaysPreTouch -XX:+UseLargePagesIndividualAllocation” 下面這張圖顯示了在MultiJVM SPECJbb測試中最大的吞吐量,。 Java性能測試 雖然這個測試對于AMD來說不是最理想狀況(在現(xiàn)實中可能會選擇8個甚至16個后臺),,但是EPYC還是稍微超過了Xeon 8176,使用8個 JVM讓差距從1%擴大到4-5%,。 Critical-JOPS的測量標(biāo)準是在限定的響應(yīng)時間內(nèi)的吞吐量,。 CriticalJOPS測試,結(jié)果越高越好 在當(dāng)前活躍線程數(shù)的情況下,,可以通過增大每個JVM的內(nèi)存來獲得更高的Critical-JOPs,。 大數(shù)據(jù)測試 Apache Spark是大數(shù)據(jù)處理的代表,。大數(shù)據(jù)應(yīng)用加速,因此在這個環(huán)節(jié)中AnandTech利用Aparche Spark的很多特性來進行測試,。Apache Spark測試 上圖是對這個測試的說明:首先從Common Crawl的壓縮300GB數(shù)據(jù)開始,。這些壓縮文件主要是大量的網(wǎng)絡(luò)檔案,通過Java 庫中的'BoilerPipe'提取出有意義的文檔數(shù)據(jù),。 使用斯坦福CoreNLP自然語言處理工具,,從文本中選擇目標(biāo)(有含義的單詞)。然后計算哪個URL中出現(xiàn)這些目標(biāo)的次數(shù)最高,,然后使用交替最小二乘法算法來推薦哪一個URL對于確定的主題最接近,。 在過去的大量CPU測試中,SPARK 1.5在獨立模式下(Non-Cluster,,非集群)的結(jié)果非常好,,但隨著核心數(shù)的上升結(jié)果呈現(xiàn)了遞減的態(tài)勢。 只在一個JVM里來釋放300GB壓縮數(shù)據(jù)對于超過30核心的系統(tǒng)來說不是很適用,,比如具有高核心數(shù)的Xeon 8176和EPYC 7601,。根據(jù)AnandTech的說法,第一次用這種方式測試的時候出現(xiàn)了很嚴重的性能問題,。 64核心的EPYC 7601表現(xiàn)的像是16核心的Xeon,。而56核心的Sky-lake SP系統(tǒng)也就勉強強過24核心的Xeon E5 v4。顯然,,需要另一種測試方法,。 因此,最后AnandTech將服務(wù)器后臺變成虛擬集群,。第一次的嘗試是4個executor,。 于此同時,也通過工程師將Apaache benchmark升級到可以支持Apache Spark 2.1.1. Apache Spark測試 接下來是結(jié)果: 分數(shù)越高越好 如果你想知道除了需要虛擬化幾十個虛擬機的人以外,,誰還需要這樣的服務(wù)器怪物的話,,答案自然是是大數(shù)據(jù)。 大數(shù)據(jù)分析對于整數(shù)處理性能的需求是永遠填不飽的,。即使在AnandTech最快的機器上,,這個測試大概也需要四個小時來完成,這毫無疑問是一個殺手級應(yīng)用,。 Spark測試需要大概120GB內(nèi)存來運行,。存儲I/O上花費的時間是可以忽略的。 數(shù)據(jù)處理非常并行,,但是在數(shù)據(jù)清洗過程中需要大量的內(nèi)存交互,,ALS階段在很多線程上的擴展不是很好,但只占了不到4%的整體時間。 鑒于更高的時鐘頻率在輕線程和單線程部分,,更快的清洗階段讓英特爾領(lǐng)先了僅僅5%左右,。 而從這一點也能看出兩者均針對大數(shù)據(jù)這一服務(wù)器市場的熱門應(yīng)用場景進行了深度的開發(fā)和優(yōu)化 浮點運算性能測試 AnandTech通過C-ray,POV-Ray和NAMD來測試他們的浮點運算性能,,C-ray用來測試1級緩存,,POV-Ray用來測試2級緩存,AMD用來測試內(nèi)存子系統(tǒng),。C-ray測試 C-ray是一個非常簡單的光線跟蹤源工具,,它不是真實世界中的光線追蹤應(yīng)用。 事實上,,它本質(zhì)上是一個運行在1級緩存中的浮點基準測試工具,。在測試中使用標(biāo)準的測試分辨率(3840*2160)并用'sphfract'文檔來衡量性能,代碼預(yù)編譯過,。 C-ray測試結(jié)果 從結(jié)果來看,,AMD的EPYC取得了極大的優(yōu)勢,相對競爭對手的優(yōu)勢不少于50%,,當(dāng)然,如果是所有數(shù)據(jù)都位于一級緩存的話那么很容易提供給FP部分,,接下來是POV-Ray,。 POV-Ray測試 POV-Ray是一個非常著名的開源光線追蹤程序。測試用編譯的版本基于在github(https://github.com/POV-Ray/povray.git)中找到的,。沒有進行特殊的優(yōu)化,,采用'prebuild.sh'來進行配置和安裝。 POV-Ray測試 眾所周知,,POV-Ray主要運行在二級緩存中,,因此EPYC核心擁有的巨大的內(nèi)存帶寬在這里發(fā)揮不出大作用。 然而,,EPYC的性能是非常驚人的,,相對Xeon 8176快了16%,但如果加上AVX和內(nèi)存訪問呢,? NAMD測試 伊利諾伊大學(xué)香檳分校理論和計算生物物理小組開發(fā)的NAMD都是針對并行分子動力學(xué)的代碼,,主要面向上千個內(nèi)核上的極端并行情況。NAMD也是SPEC CPU2006 FP的一部分,。 相比以往的FP測試,,NAMD的代碼通過為AVX優(yōu)化過的英特爾的ICC來編譯,這理論上會給英特爾帶來一定的優(yōu)勢,。 首先,,使用'NAMD_2.10_Linux-x86_64-multicore'指令。并用最流行的測試負載,apoa1(Apolipoprotein A1),,結(jié)果用納秒來評估,,測量500步。 NAMD 再一次,,EPYC 7601用41%的壓倒性優(yōu)勢戰(zhàn)勝了英特爾的28核心,。英特爾在運行重矢量代碼(比如linpack)時可能要快很多。但是AMD最新的處理器運行其他的FP代碼更快,。 我們在第一次測試中使用2.10版本這樣可以對比我們過去的數(shù)據(jù),。2.12版本似乎可以更好的使用到英特爾的特性(英特爾的編譯器在矢量化和自動調(diào)度上已經(jīng)為支持AVX指令集提高了性能) NAMD 2.12測試 最老的Xeon性能看起來有25%的提升,而對于新的Xeon來說提升就變少了一些,,大概在13-15%左右,。 值得注意的是,新的代碼在EPYC 7601上運行要慢了4%,。三種不同的FP測試指向了同一個結(jié)果:Zen可能無法實現(xiàn)理論上最高的浮點運算峰值性能,,但是大部分浮點運算代碼在EPYC上運行的最好。 能源測試和最終結(jié)論 能源測試AnandTech在之前的測試中還順手對服務(wù)器的能耗進行了一分鐘測試,。第一個場景是MySQL中表現(xiàn)最好的時候:在響應(yīng)時間明顯提高以前,,吞吐量最高的時候。第二個是測試浮點運算性能,,POV-Ray調(diào)用所有可用線程的時候,。 EPYC的實際能耗顯然比英特爾低不少 Xeon 8176和雙路EPYC相比雙路Xeon E5-2699v4系統(tǒng)都有一些額外的部分(比如一個獨立的的10GbE網(wǎng)卡),但這并不能解釋為何空載功率那么高,,特別是雙路Xeon 8176,。 目前比較淺顯的結(jié)論是:EPYC 7601在運行整數(shù)運算的時候可能需要更多的能源。而英特爾CPU的眾多的FP單元是真正的耗電大戶,,即使在不需要運行重AVX應(yīng)用的時候依然耗電不少,。 最終結(jié)論 從測試結(jié)果來看,AMD EPYC確實擁有和英特爾最新的Xeon可擴展處理器家族一戰(zhàn)的實力,。 雖然受制于MCM的封裝方式和結(jié)構(gòu),,在內(nèi)存延遲和數(shù)據(jù)庫依然無法戰(zhàn)勝Xeon,但是在不少環(huán)節(jié)中都大幅領(lǐng)先競爭對手,,包括 一直被人詬病的功耗問題,,也表現(xiàn)亮眼,也難怪AMD此次信心十足,。 但不可否認的一點,,英特爾的優(yōu)勢除了架構(gòu)、工藝和指令集外,,其生態(tài)的成熟度是目前AMD無法比擬的,。 對于最終購買用戶來說,,如果沒有足夠的技術(shù)實力來調(diào)試EPYC讓其在運行程序時發(fā)揮出最大的性能,Xeon依然是很好的選擇,。 不過對于云計算服務(wù)商來說,,由于擁有調(diào)試EPYC的技術(shù)實力,再加上EPYC的高性價比(如果考慮到每美元對應(yīng)的性能,,顯然EPYC要比Xeon更有吸引力),,EPYC已擁有替代Xeon的性能表現(xiàn),這也是為何英特爾這次會重視AMD,。 AMD的復(fù)興之戰(zhàn)才剛剛開始,,而未來是否能繼續(xù)穩(wěn)步提升表現(xiàn)我們尚不得知,但我們可以看到,,伴隨著雙方的激烈競爭,,最終受益的是用戶,因此我們非常期待接下來雙方的進一步動作,。
|
|
來自: peterchiu60 > 《PC》