張平
《微型計算機》的讀者應(yīng)該對各種各樣的評測很熟悉了。在對新產(chǎn)品進行評測時,一般分為兩個角度,主觀與客觀。主觀角度的測試自然不用多說,這類測試主要包括外觀、設(shè)計、易用性、顏色和流行趨勢等這些難以量化的內(nèi)容??陀^角度的測試則要復(fù)雜一些,它指的是使用一種方法或者一種模式對測試目標(biāo)進行操作,從而得出一個可以在相同的環(huán)境和條件下可復(fù)制的結(jié)果的過程。換句話來說,客觀測試主要是指利用各種測試軟件或者測試工具、測試環(huán)境運行統(tǒng)一的測試,得到測試目標(biāo)的運行結(jié)果的過程。僅僅看測試軟件的話,S P E C旗下的測試軟件雖然出鏡較少,但是其較高的專業(yè)性和比較均衡、公平的設(shè)置,一直是很多專業(yè)媒體的最愛。那么,SPEC是什么,包含哪些測試,又應(yīng)該如何解讀SPEC的測試結(jié)果,尤其是CPU測試結(jié)果呢?
標(biāo)準(zhǔn)性能評估公司:五大評測架構(gòu)
S P E C 的全稱是S t a n d a r dPerformance Evaluation Corporation,也就是標(biāo)準(zhǔn)性能評估公司,這個公司成立于1988年,其主要目的是為市場提供現(xiàn)實且標(biāo)準(zhǔn)化的測試數(shù)據(jù)。在30多年后,SPEC已經(jīng)發(fā)展成擁有60多家成員公司、業(yè)內(nèi)影響力巨大的性能標(biāo)準(zhǔn)化機構(gòu)之一。
SPEC的發(fā)展理念是確保市場上擁有一套公平、有效的指標(biāo)來區(qū)分不同的候選系統(tǒng),并且試圖在候選產(chǎn)品的獨特優(yōu)勢和嚴(yán)格遵守標(biāo)準(zhǔn)之間取得平衡。S P E C宣稱一個能夠被合理利用得好的測試將促進市場的發(fā)展。鑒于此,SPEC提供了一整套基于現(xiàn)有測試程序的標(biāo)準(zhǔn)化源代碼,這使得基準(zhǔn)測試人員可以使用S PEC的源代碼調(diào)整系統(tǒng)的性能,以獲得最佳測試結(jié)果,也減少了市場上存在的完全不可類比的問題。
在組織架構(gòu)方面,SPEC被定義為一個非營利性機構(gòu),它的成員資格對任何愿意支持其目標(biāo)的公司或者組織開放,由于SPEC的運營也需要經(jīng)費,因此成為SPEC的成員也就意味著需要交納一定的入會費用。目前,根據(jù)測試目的的不同,SPEC擁有5個下屬機構(gòu),分別是:
1.開放系統(tǒng)組織(T h e O p e nSystems Group,簡稱OSG)
該組織來自最早的S P E C委員會。OSG所針對的是運行開放系統(tǒng)環(huán)境的桌面系統(tǒng)、高端服務(wù)器或者高端工作站的基準(zhǔn)測試,這個部分的測試也是我們目前接觸最多的。OSG在應(yīng)用中還細(xì)分為下列幾個部分:
云計算測試:包括云計算基礎(chǔ)設(shè)施、應(yīng)用情況和新興技術(shù)相關(guān)領(lǐng)域的工業(yè)標(biāo)準(zhǔn)基礎(chǔ)測試等。
CPU測試:包括傳統(tǒng)的SPECmarks以及其他的相關(guān)CPU測試。
JAVA測試:包括Java客戶端和服務(wù)器基準(zhǔn)測試JVM98、JVM2008、JBB2000和JBB2005,SPECjAppServer和SPECjEnterprise Java企業(yè)應(yīng)用服務(wù)器基準(zhǔn),以及SPECjms2007測試等。
功耗測試:主要用于針對服務(wù)器級的計算設(shè)備的功率和性能的測試,SPEC在2007年就推出SPECpower_ssj2008,對CPU、緩存、內(nèi)存層次結(jié)構(gòu)以及共享內(nèi)存的處理器在多個負(fù)載級別上的可擴展性進行了測試。新的SERT套件的工作大約從2009年開始,首先是Chauffeur框架的突破性設(shè)計,然后是工作負(fù)載的設(shè)計和實施、硬件和軟件的自動發(fā)現(xiàn),以及GUI。在進行這些工作的同時,SPECpower委員會與更注重學(xué)術(shù)的SPEC Power研究工作組合作,進行了大規(guī)模的實驗,以確定SERT套件2.0的服務(wù)器效率指標(biāo),并最終在2017年發(fā)布。
存儲測試:包括NFS基準(zhǔn)SFS93(L A D D I S)、S F S97、S F S 97_ R1和SFS2008、SPEC SFS2014和SPECstorageSolution 2020等測試,主要也是不同場合的存儲應(yīng)用的性能。
虛擬化測試:這是第一代用于比較數(shù)據(jù)中心服務(wù)器虛擬化性能的S P ECv ir t_s c2010,以及其后續(xù)的SPECvirt_sc2013。
2.國際標(biāo)準(zhǔn)小組( T h eInternational Standards Group,簡稱ISG),其工作是負(fù)責(zé)監(jiān)督標(biāo)準(zhǔn)化基準(zhǔn)的研究并將其應(yīng)用在政府法規(guī)和計劃中,同時促使國際標(biāo)準(zhǔn)化的發(fā)展。
3.高性能小組(T h e H i g h -Performance Group 、簡稱HPG),主要面向高性能計算領(lǐng)域的標(biāo)準(zhǔn)化的、跨平臺的性能評估。
4.圖形和工作站性能小組(TheGraphics and Workstation PerformanceG roup,簡稱為GW PG),這個小組主要是針對圖形和工作站的性能基準(zhǔn)和報告程序進行研發(fā)。它于1994年就推出標(biāo)準(zhǔn)化基準(zhǔn)測試,目前包括應(yīng)用性能測試、圖形性能測試和工作站性能表征三個模塊,不過GWPG的測試比較老舊,目前不多見。
5.研究小組(SPEC Research Group,簡稱RG),這個小主要是促進對基準(zhǔn)測試方法和工具的創(chuàng)新研究等。
基于上述5個下屬機構(gòu),SPEC推出了16款測試軟件或工具,涵蓋了CPU、GPU、HPC、Java、功率、開發(fā)和結(jié)果分析等不同的用途。今天,我們重點來看一下目前CPU方面最新的測試軟件SPEC CPU 2017。
SPEC CPU 2017:面向?qū)I(yè)領(lǐng)域的計算密集型測試
SPEC CPU包含多個版本,比如SPEC CPU 2017以及較早的SPEC CPU2000、SPEC CPU 89、SPEC CPU 92等等。目前依舊在使用的是SPEC CPU 2017,其發(fā)布于2017年,雖然看起來比較早,但是在CPU架構(gòu)和應(yīng)用場景沒有發(fā)生巨大變化之前,一個設(shè)計出色、運行穩(wěn)定且能很好地表現(xiàn)出絕大部分硬件性能的測試軟件依舊是值得信賴的。鑒于此,本文就重點來看看這個版本的測試內(nèi)容。
綜述:SPEC CPU 2017的基本內(nèi)容
SPEC CPU 2017是一個工業(yè)標(biāo)準(zhǔn)化、C PU密集型的測試軟件,用于測量和比較計算密集型應(yīng)用的性能,尤其強調(diào)處理器、內(nèi)存子系統(tǒng)和編譯器的性能等。其中,內(nèi)存子系統(tǒng)指的是緩存、主內(nèi)存等。編譯器性能則指的是C、C++、Fortran等編譯器的性能,包括優(yōu)化器等。至于網(wǎng)絡(luò)、圖形、Java、IO系統(tǒng)等,SPEC CPU 2017并不關(guān)注,但是這部分設(shè)置也有可能對SPECCPU 2017最終性能產(chǎn)生影響。
SPEC CPU 2017測試的目的是希望能夠在廣泛的實際硬件范圍內(nèi)提供計算密集型設(shè)備的性能比較,因此其工作負(fù)載全部來自用戶的實際應(yīng)用。測試是以源代碼方式提供的,因此在執(zhí)行層面需要使用編譯器命令,通過shell或者命令提示窗口才能夠運行。此外,SPEC CPU 2017還包含了一個可以用于測量能耗的可選指標(biāo)。
SPEC CPU 2017包含了4個板塊和總計43個基準(zhǔn)測試。具體來看,包含SPECspeed 2017整數(shù)、SPECspeed 2017浮點以及SPECrate 2017整數(shù)、SPECrate2017浮點4個部分。其中SPECspeed是用于比較計算機完成單一任務(wù)的時間,因此使用了“speed”也就是“速度”作為副標(biāo)題,后兩者SPECrate是用于比較計算機在單位時間內(nèi)的吞吐量,因此采用的是“rate”也就是“速率”。一般來說,速度型測試對CPU內(nèi)部的流程和執(zhí)行部分更為敏感,但是可能無法很好地表現(xiàn)CPU在面臨較大的計算負(fù)荷或者內(nèi)存子系統(tǒng)相關(guān)的性能。相反,速率型測試能夠很好地將壓力傳遞給內(nèi)存子系統(tǒng)以及CPU吞吐能力,這對很多高性能計算是至關(guān)重要的。
準(zhǔn)備:運行SPEC CPU2017的前置條件
如果你購買了SPEC CPU 2017,那么就會獲得一個I SO文件,其中包含基準(zhǔn)測試的源代碼、數(shù)據(jù)集,一些對基準(zhǔn)測試進行編譯、運行、驗證和報告的工具,用于各種操作系統(tǒng)的預(yù)編譯工具以及SPEC CPU 2017工具的源代碼,可以編譯未覆蓋的操作系統(tǒng),另外還包括SPEC CPU 2017的相關(guān)運行說明、報告規(guī)則等。
如果要運行SPEC CPU 2017,在硬件方面首先需要一臺可以運行Linux、Mac OS X、Unix或者Windows的計算機。在硬件配置方面,SPEC CPU 2017需要1GB~2GB的主內(nèi)存或者16GB的運行空間,磁盤方面建議保留250GB,最低需要10GB。另外還包括支持C、C++或者Fortran的編譯器或者預(yù)編譯的文件等。
對操作人員而言,和3D M a r k、PCMark這類面向玩家的測試軟件不同的是,由于SPEC CPU 2017不提供可執(zhí)行文件,因此要求用戶具備基本的代碼基礎(chǔ),比如一些基本的C M D指令,打開磁盤、定位文件、運行文件等。另外,用戶還需要會使用命令行對部分運行參數(shù)進行調(diào)整和控制。在初期的測試文件配置完成后,用戶可以通過一些測試命令來測試自己的配置是否正確等。
由于SPEC CPU 2017的設(shè)置和測試比較復(fù)雜,因此SPEC組織提供了非常詳盡的測試前準(zhǔn)備文檔,有興趣的讀者可以在SPEC的官網(wǎng)查找閱讀,本文就不再贅述了。
測試:SPEC CPU 2017包含的測試內(nèi)容
前文我們曾提到,SPEC CPU 2017包含了4個板塊的測試內(nèi)容,在這里我們進一步解讀這些測試分別指代哪些性能。
從上述測試內(nèi)容表可以看出,SPEC CPU 2017的測試內(nèi)容是包羅萬象、非常豐富的。在SPEC的官網(wǎng)上,我們可以查到每一個測試內(nèi)容的源代碼、編寫人員和聯(lián)系方式、計算思路、可以執(zhí)行、輸入和輸出的說明等。舉例來說,508.namd_r這個測試的源代碼來自伊利諾伊大學(xué)香檳分校的吉姆·菲利普斯,這個測試基準(zhǔn)來自NAM D的數(shù)據(jù)布局和內(nèi)循環(huán),而NAMD是用于大型生物分子系統(tǒng)模擬的并行程序。因此這是使用在實際應(yīng)用中的軟件代碼,利用其來測試CPU能夠很好地反映CPU在實際應(yīng)用中的情況。此外還有來自一些國外政府機構(gòu)比如美國大氣研究中心、美國海軍研究實驗室等提供的算法和代碼,比如用于天氣預(yù)報和大氣模擬的計算代碼以及模擬爆炸、模擬海洋、3D渲染和動畫的代碼等,都相當(dāng)實用。
SPEC CPU 2017的測試內(nèi)容除了來自實際工作,很接地氣之外,還在一定程度上反映出C P U在內(nèi)部架構(gòu)方面的改進情況。比如整數(shù)測試部分的500.p erlbenc h_r和502.gcc_r測試涉及指令解釋,因此可以考察CPU架構(gòu)的IPC以及OP-Cache的性能。520.omnetpp_r測試內(nèi)容是離散事件模擬,可以用來考查C P U的I P C提升尤其是內(nèi)存方面的性能提升。523.xalancbmk_r則可能和帶寬、延遲等內(nèi)容相關(guān)。525.x264_r則是IPC、內(nèi)存帶寬和整體執(zhí)行能力。幾個人工智能相關(guān)的測試和處理器的IPC、分支預(yù)測存在相關(guān)性等。557.xz_r這類通用數(shù)據(jù)壓縮測試則和處理器的IPC、內(nèi)存設(shè)計以及吞吐能力相關(guān)。在浮點部分,所有的測試都和CPU的浮點計算能力相關(guān),并且503.bwaves_r可能也涉及到處理器存儲相關(guān)的性能。508.namd_r和538.imagick_r涉及有關(guān)IPC性能的提升。519.lbm_r、549.fotonik3d_r和554.roms_r則和內(nèi)存帶寬有一定關(guān)系,部分測試內(nèi)容要求CPU能夠?qū)彺鎸崿F(xiàn)充分的高效率的應(yīng)用,因此其結(jié)果也能夠在一定程度上反映處理器的緩存性能。
對普通用戶來說,SPEC CPU 2017的測試內(nèi)容雖然看起來沒有PCMark和3DMark這類合成類測試通俗易懂,但是C P U并不是針對某一個用戶設(shè)計的CPU,我們?nèi)粘K械膭幼髟贑PU內(nèi)部最終都會被分解成各類基本操作,比如數(shù)據(jù)移動、乘加計算或者解碼、回寫等,因此最終運行SPEC CPU2017更快的處理器,在各類我們常常接觸到的合成類測試中依舊會有更好的表現(xiàn)。SPEC CPU 2017還可以去考察到底是哪一個測試帶來了更好的性能表現(xiàn),CPU的那一部分需要加強,是否可以通過編譯器帶來更好的性能等。對專業(yè)人員來說,這有著相當(dāng)重要的意義。
結(jié)果:SPEC CPU 2017的結(jié)果解讀
SPEC CPU 2017的測試結(jié)果包含基準(zhǔn)和峰值兩種類型。前者是使用SPEC CPU 2017所給定的語言并且以相同的編譯方式所得出的結(jié)果,所有測試結(jié)果都需要包含基準(zhǔn)結(jié)果,這相當(dāng)于是一個標(biāo)準(zhǔn)化的普遍適應(yīng)的結(jié)果。另外SPEC CPU 2017還允許廠商通過優(yōu)化得到峰值數(shù)據(jù),廠商可以通過編譯器、軟件方面的操作,來獲得相比基準(zhǔn)測試更高的性能,并展示給用戶以體現(xiàn)自己產(chǎn)品的潛力。
SPEC CPU 2017的所有測試結(jié)果都公布在https://www.spec.org/cpu2017/results上。截至2021年5月底,一共有624個系統(tǒng)上傳了SPEC CPU 2017的測試成績,包括戴爾、華碩、富士通、惠普、聯(lián)想等企業(yè)。測試成績包含了所有系統(tǒng)的總成績分?jǐn)?shù)以及以額外鏈接形式提供的系統(tǒng)配置、測試分?jǐn)?shù)細(xì)節(jié)等內(nèi)容。對用戶來說,如果要了解某款處理器的性能,也可以在SPEC官網(wǎng)查詢相關(guān)測試結(jié)果。除了SPEC外,一些IT媒體也會使用SPECCPU2017進行測試并將所有的測試數(shù)據(jù)存檔列表在網(wǎng)站上,比如anandtech等網(wǎng)站,用戶也可以自行搜索對比。
值得一提的是,由于英特爾、AMD、高通等廠商偶爾會在新品發(fā)布前對產(chǎn)品進行SPEC CPU 2017測試,因此之前曾發(fā)生過未發(fā)布的新品數(shù)據(jù)和信息被上傳至SPEC網(wǎng)站的情況,因此SPEC CPU 2017的結(jié)果網(wǎng)站偶爾會成為新聞爆料的來源。
SPEC CPU 2017:專業(yè)而可靠
不難看出,SPEC CPU 2017測試相當(dāng)可靠,尤其它的測試內(nèi)容來自實際工作中使用的代碼,最終表現(xiàn)出來的性能也和處理器架構(gòu)設(shè)計存在一定的相關(guān)性,這也反映了SPEC CPU 2017在設(shè)計上的優(yōu)勢。和其他測試軟件相比,SPEC CPU 2017的弱勢在于使用麻煩、價格較貴,并且成績解讀和分析需要較多知識儲備。當(dāng)然,作為一個面向?qū)I(yè)用戶的測試軟件,SPEC CPU2017自然也不會像3DMark、PCMark那樣太多考慮用戶的感受。不過,我們還是希望SPEC CPU 2017能夠在未來的版本中增加易用性,尤其是加快版本更新速度,畢竟目前的處理器和半導(dǎo)體產(chǎn)業(yè)發(fā)展還是相當(dāng)迅速的,在AI計算、浮點計算方面不斷有新的指令集和技術(shù)提出,SPEC也需要進一步緊跟時代。在今后,MC也會不定期地對各種評測中所使用到的,有意思的測試軟件進行類似介紹,幫助讀者更好地了解數(shù)據(jù)背后的故事與意義。