在之前的五期連載中,筆者介紹了Sandy Bridge處理器的架構(gòu)/微架構(gòu)上的細(xì)節(jié),現(xiàn)在我們來看看Sandy Bridge架構(gòu)的實(shí)際性能表現(xiàn)。
SPEC CPU 2006測(cè)試
限于篇幅關(guān)系,本篇僅包括了一個(gè)測(cè)試:SPEC CPU 2006,SPEC CPU測(cè)試是業(yè)界沿用多年的一個(gè)大型CPU性能測(cè)試項(xiàng)目。SPEC是標(biāo)準(zhǔn)性能評(píng)估公司(Standard Performance Evaluation Corporation)的簡(jiǎn)稱,是由計(jì)算機(jī)廠商、系統(tǒng)集成商、大學(xué)、研究機(jī)構(gòu)、咨詢等多家公司組成的非營利性組織,這個(gè)組織的目標(biāo)是建立、維護(hù)一套用于評(píng)估計(jì)算機(jī)系統(tǒng)的標(biāo)準(zhǔn)。
為了保證數(shù)據(jù)的公平、有效和可信,SPEC CPU測(cè)試使用了現(xiàn)實(shí)世界的應(yīng)用程序,而不是用循環(huán)的算術(shù)操作來進(jìn)行基準(zhǔn)測(cè)試。SPEC CPU 2006包括了12項(xiàng)整數(shù)運(yùn)算和17項(xiàng)浮點(diǎn)運(yùn)算。各個(gè)測(cè)試組件基本上由C和Fortran語言編寫,有7個(gè)測(cè)試項(xiàng)目使用了C++語言,而Fortran語言均用來編寫浮點(diǎn)部分。需要特別說明的是,SPEC CPU是一個(gè)僅提供源代碼的測(cè)試,需要自行進(jìn)行編譯生成可執(zhí)行的代碼,因此,SPEC CPU實(shí)際上也測(cè)試了使用的編譯器,好處是可以體現(xiàn)出時(shí)代變遷、編譯器更新帶來的影響,壞處是需要掌握一定的編譯器技術(shù)。
從左表中可以看出,SPEC CPU 2006的測(cè)試項(xiàng)目都有著其原來的應(yīng)用程序版本,整個(gè)SPEC CPU 2006測(cè)試就包括了多種實(shí)際的應(yīng)用程序的項(xiàng)目,例如,bzip壓縮/解壓縮和H264視頻編碼、一些游戲AI中會(huì)用到的A*尋路算法、網(wǎng)絡(luò)應(yīng)用中用到的HTML/XML處理等子項(xiàng)目,SPEC CPU還包含了需要處理大量數(shù)據(jù)的科學(xué)應(yīng)用程序測(cè)試項(xiàng)目。SPEC CPU是一個(gè)測(cè)試CPU子系統(tǒng)的程序,因此,其中涉及讀寫磁盤和網(wǎng)絡(luò)傳輸?shù)牟糠侄家呀?jīng)修改,使得外部存儲(chǔ)子系統(tǒng)和網(wǎng)絡(luò)系統(tǒng)對(duì)測(cè)試結(jié)果不造成影響。總的來說,SPEC CPU 2006包含了和CPU相關(guān)的大量測(cè)試項(xiàng)目,涵蓋了運(yùn)算密集型和內(nèi)存密集型的應(yīng)用,它可以體現(xiàn)出CPU子系統(tǒng)和內(nèi)存子系統(tǒng)對(duì)實(shí)際應(yīng)用程序的性能因素,這也就是其設(shè)計(jì)目的。
測(cè)試系統(tǒng)
我們使用了三套系統(tǒng)進(jìn)行這個(gè)測(cè)試,一套是老的Core i7 870,一套是Core i5 2500K,一套則是Core i7 2600K,前者屬于45nm工藝的Westmere架構(gòu)(Nehalem微架構(gòu)),后兩個(gè)則是32nm工藝的Sandy Bridge架構(gòu)(同樣,微架構(gòu)也是Sandy Bridge),這三套系統(tǒng)都屬于中端桌面市場(chǎng),均只支持雙通道內(nèi)存。其中,Core i7 870和Core i7 2600K都是四核心八線程,而Core i5 2500K則是四核心四線程。Core i7 870的默認(rèn)頻率為2.93GHz,內(nèi)置2.4GHz(4.8GT/s)的QPI總線,而Sandy Bridge架構(gòu)的Core i5 2500K/Core i7 2600K則取消了QPI總線,默認(rèn)頻率提升到3.3GHz/3.4GHz,這三個(gè)處理器都搭載了Turbo Boost技術(shù),可以在負(fù)載高的時(shí)候提升運(yùn)行頻率,不過會(huì)對(duì)性能分析帶來影響,因此本文僅給出關(guān)閉Turbo Boost技術(shù)的性能成績。所有的處理器都具有8MB的L3共享內(nèi)存。
內(nèi)存子系統(tǒng)也是SPEC CPU測(cè)試的重要因素,我們?yōu)镃ore i7 870和Core i7 2600K平臺(tái)提供了16GB的內(nèi)存(4 x 4GB),為Core i5 2500K提供了8GB的內(nèi)存,這是為了保證每個(gè)硬件線程能具備2GB的容量。Sandy Bridge處理器現(xiàn)在可以支持DDR3-1600規(guī)格的內(nèi)存,不過單條4GB的內(nèi)存還比較少能達(dá)到這個(gè)規(guī)格,例如,我們使用的4條芝奇紅鋼牙就只能支持到DDR3-1333,因此我們所有的測(cè)試都在DDR3-1333下進(jìn)行。SPEC CPU幾乎不受CPU和內(nèi)存之外部件的影響。
測(cè)試使用的操作系統(tǒng)平臺(tái)是Windows Server 2008 R2,我們?cè)谒械钠脚_(tái)上使用了老的SPEC CPU 2006 v1.1代碼進(jìn)行測(cè)試,基于SPEC CPU 2006 v1.1和一年多前的Intel Compiler 11.0,不支持Sandy Bridge的AVX指令集,這可以體現(xiàn)出Sandy Bridge在運(yùn)行老的代碼時(shí)相對(duì)上一代處理器架構(gòu)的提升,在以后我們會(huì)再進(jìn)行AVX編譯版本的測(cè)試,它將可以體現(xiàn)出Sandy Bridge在運(yùn)行優(yōu)化編碼下的性能。
SPEC CPU測(cè)試會(huì)給出大量的數(shù)據(jù),例如,可以分為測(cè)試單線程運(yùn)行效能的speed測(cè)試和測(cè)試多線程運(yùn)行效能/測(cè)試整個(gè)處理器運(yùn)算吞吐量的rate測(cè)試,或者分為測(cè)試通常優(yōu)化性能的base測(cè)試和極致優(yōu)化性能的peak測(cè)試。此外,每個(gè)測(cè)試同時(shí)包含了整數(shù)的int測(cè)試和浮點(diǎn)的fp測(cè)試,總共會(huì)得出8個(gè)測(cè)試數(shù)據(jù)表,每個(gè)表包括一個(gè)總分和若干個(gè)子項(xiàng)目得分,由于不同的子項(xiàng)目代表不同的應(yīng)用,因此我們給出了具體的子項(xiàng)目成績。
性能分析:速度測(cè)試
我們先來看測(cè)試單線程運(yùn)行效能的speed測(cè)試,包含了SPECint_base2006和SPECfp_base2006兩個(gè)項(xiàng)目,它可以體現(xiàn)出處理器在將所有資源都供給一個(gè)測(cè)試實(shí)例下的運(yùn)行效能,其中,Sandy Bridge架構(gòu)的Core i5 2500K的效能比Westmere架構(gòu)的Core i7 870整數(shù)得分要高23.2%(35比28.4),浮點(diǎn)得分要高30.9%(40.2比30.7),考慮到Core i5 2500K 3.3GHz的頻率和Core i7 870 2.93GHz的12.6%的頻率差別,則同頻提升分別應(yīng)為運(yùn)行分為9.4%(整數(shù))和16.3%(浮點(diǎn)),10%以上的同頻性能提升是個(gè)很不錯(cuò)的數(shù)據(jù)。特別是考慮到Sandy Bridge平臺(tái)在CPU主頻提升時(shí)內(nèi)存規(guī)格并沒有相應(yīng)改動(dòng)的情況下。
去掉頻率的影響之后,幾乎所有的子項(xiàng)目中性能都得到了提升,提升特別明顯的整數(shù)項(xiàng)目有401.bzip2 壓縮(26.0%)、464.h264ref 視頻壓縮(25.4%)、473.astar 尋路算法(23.0%),浮點(diǎn)項(xiàng)目有436.cactusADM 物理:廣義相對(duì)論(56.0%)、453.povray 影像光線追蹤(46.3%)、447.dealII 有限元分析(24.2%)、416.gamess 量子化學(xué)(23.8%)、437.leslie3d 流體力學(xué)(22.5%),這些都是運(yùn)算密集和緩存密集型的項(xiàng)目。
性能分析:吞吐測(cè)試
測(cè)試多線程運(yùn)行效能/測(cè)試整個(gè)處理器運(yùn)算吞吐量的rate測(cè)試是個(gè)不同的情況,它包含了SPECint_rate_base2006和SPECfp_rate_base2006兩個(gè)項(xiàng)目,它體現(xiàn)的是處理器全力運(yùn)轉(zhuǎn)的運(yùn)算吞吐量和數(shù)據(jù)吞吐量,雖然其中的單個(gè)測(cè)試線程性能會(huì)受到影響,然而處理器的資源得到了最大程度的利用。從結(jié)果來看,Sandy Bridge架構(gòu)的Core i5 2500K的效能比Westmere架構(gòu)的Core i7 870整數(shù)得分要高23.0%(110比89.4),浮點(diǎn)得分要高21.7%(88.6比72.8),考慮到頻率差別,則同頻提升分別應(yīng)為運(yùn)行分為9.2%(整數(shù))和8.1%(浮點(diǎn)),比起speed測(cè)試要低一些,這是因?yàn)?,rate測(cè)試同時(shí)運(yùn)行了多個(gè)測(cè)試實(shí)例(這里是4個(gè)),對(duì)運(yùn)行資源的需求更高,特別是對(duì)緩存、內(nèi)存子系統(tǒng)的壓力要大了不少,因此在兩代產(chǎn)品內(nèi)存規(guī)格一樣時(shí),Sandy Bridge會(huì)受到更多的限制。Sandy Bridge支持的DDR3-1600規(guī)格確實(shí)有必要。
去掉頻率的影響之后,提升特別明顯的整數(shù)項(xiàng)目有456.hmmer 基因序列搜索(46.4%)、464.h264ref 視頻壓縮(25.4%),浮點(diǎn)項(xiàng)目有453.povray 影像光線追蹤(44.0%)、416.gamess 量子化學(xué)(24.0%),它們是從Sandy Bridge環(huán)形總線中獲益最大的項(xiàng)目,這些都是同頻性能提升非常明顯的項(xiàng)目。
結(jié)語
和上一代Nehalem相比,Sandy Bridge最大的性能提升應(yīng)該是內(nèi)部使用的環(huán)形總線,它大大增加了L3緩存的帶寬,并降低了延遲,此外,處理器微架構(gòu)上的更新,如L0指令緩存、雙Load端口起到的作用也不小,基本上,同頻下Sandy Bridge的性能提升在10%左右,一些同時(shí)也是緩存密集型的應(yīng)用獲益將會(huì)更高,甚至可以達(dá)到56%(436.cactusADM 物理:廣義相對(duì)論)。雙通道的Sandy Bridge可以很好地在一般的桌面應(yīng)用下工作,而在運(yùn)算密集型,特別是內(nèi)存密集型的科學(xué)應(yīng)用當(dāng)中,對(duì)內(nèi)存子系統(tǒng)的壓力將會(huì)很大,特別是在超線程的環(huán)境下,對(duì)內(nèi)存容量乃至帶寬都有更高的要求,雙通道配置的Sandy Bridge將不敷使用。對(duì)應(yīng)的,英特爾準(zhǔn)備了三通道/四通道的LGA2011插槽的Sandy Bridge產(chǎn)品線,將可以更好地滿足這些應(yīng)用的需求,當(dāng)然,更高檔的定位也意味著更高的價(jià)格。限于篇幅我們沒有給出打開超線程測(cè)試的成績,不過可以指出的是,在雙通道配置下,打開超線程的speed測(cè)試成績反而是略微下降了,而rate測(cè)試雖然有所提升,然而幅度也只有1%#12316;2%,作為對(duì)比,在三通道Nehalem-EP至強(qiáng)處理器平臺(tái)上,開啟超線程帶來的性能提升可以達(dá)到5%#12316;10%。
在目前被限制為雙通道的桌面平臺(tái)上,我們可以看到環(huán)形總線架構(gòu)帶來的L3緩存可以大為提升性能,甚至英特爾還適時(shí)地加入了共享L3緩存的核芯顯卡,以充分地利用其資源。下回,我們將繼續(xù)帶來Sandy Bridge的性能,敬請(qǐng)繼續(xù)期待。