Spec2006使用说明
Spec2006使用說明
五 10 十月 2014
By?penglee工具介紹
SPEC CPU 2006 benchmark是SPEC新一代的行業(yè)標(biāo)準(zhǔn)化的CPU測(cè)試基準(zhǔn)套件。重點(diǎn)測(cè)試系統(tǒng)的處理器,內(nèi)存子系統(tǒng)和編譯器。這個(gè)基準(zhǔn)測(cè)試套件包括的SPECint基準(zhǔn)和SPECfp基準(zhǔn)。 其中SPECint2006基準(zhǔn)包含12個(gè)不同的基準(zhǔn)測(cè)試和SPECfp2006年基準(zhǔn)包含19個(gè)不同的基準(zhǔn)測(cè)試。SPEC設(shè)計(jì)了這個(gè)套件提供了一個(gè)比較標(biāo)準(zhǔn)的計(jì)算密集型,高性能的跨硬件的CPU測(cè)試工具。在SPEC CPU 2006基準(zhǔn)有幾種不同的方法來衡量計(jì)算機(jī)性能。 一種方式是測(cè)量計(jì)算機(jī)完成單一任務(wù)的速度; 另一種方式吞吐量,容量或速率的測(cè)量。 說明:由于spec2006支持多種類型操作系統(tǒng)。以下安裝、測(cè)試、移植等介紹均基于Unix 和其他的 Unix-like system如linux。Windows系統(tǒng)不在此范圍內(nèi)。
spec2006與spec2000的對(duì)比簡(jiǎn)要說明
2006年8月24日,標(biāo)準(zhǔn)性能評(píng)估公司(SPEC)宣布CPU2006將取代CPU2000。 Spec cpu基準(zhǔn)測(cè)試被廣泛的應(yīng)用于工業(yè)界和學(xué)術(shù)界。新套件比cpu2000要大很多,而且將涵蓋到CPU、存儲(chǔ)器系統(tǒng)、編譯器特別是C++編譯器。Cpu2000只有1個(gè)關(guān)于C++的基準(zhǔn)測(cè)試,CPU2006則含有7個(gè)相關(guān)套件,這其中包括了50W行c++代碼,Fortran和C語言和之前一樣有很好的覆蓋。
Spec2000和spec20006具體的套件信息如下:
Spec int2000 12個(gè)整點(diǎn)測(cè)試項(xiàng)目
164.gzip C語言編寫,很流行的數(shù)據(jù)壓縮程序。使用Lempel-Ziv coding(LZ77)作為壓縮算法。SPEC中的gzip除了讀入集外沒有其他文件I/O操作,所有壓縮和解壓都在主存中進(jìn)行,方便測(cè)試CPU和存儲(chǔ)子系統(tǒng)。
175.vpr C語言編寫,FPGA中的電路定位和路由程序,用于計(jì)算機(jī)輔助電路設(shè)計(jì)領(lǐng)域。
176.gcc: C語言編寫,C語言優(yōu)化編譯器。該GCC基于GCC 2.7.2.2版本,為摩托羅拉88100處理器生成機(jī)器碼。
181.mcf: C語言編寫,組合優(yōu)化/單點(diǎn)輪換調(diào)度(Single-depot vehicle scheduling),派生自使用單站輪換調(diào)度的公共物流應(yīng)用程序。
186.crafty: C語言編寫,國際象棋游戲程序。這是一個(gè)在64位機(jī)上設(shè)計(jì)的高性能計(jì)算機(jī)國際象棋程序,在32位機(jī)上可以使用long long來表示該數(shù)據(jù)類型。主要是一個(gè)整點(diǎn)程序,大量的邏輯運(yùn)算。通過配置,能生成不同的搜索集,可以對(duì)處理器的整點(diǎn)運(yùn)算,轉(zhuǎn)移預(yù)測(cè)和流水線等做測(cè)試。
197.parser: C語言編寫,字處理程序。連接語法分析器(Link Grammar Parser)是一個(gè)基于連接語法的英語句法分析器。連接語法時(shí)英語語法的較早理論。給定一個(gè)句子,系統(tǒng)能給它賦予一個(gè)詞法結(jié)構(gòu),這個(gè)結(jié)構(gòu)是兩個(gè)詞之間被標(biāo)記的連接。該分析器有大約60000個(gè)詞表的字典。
252.eon: C++語言編寫,計(jì)算機(jī)可視化。eon是一個(gè)基于概率的射線跟蹤程序,基于Kajiya 1986 ACM SIGGRAPH會(huì)議的論文。它將一定數(shù)量的3D射線發(fā)射到一個(gè)3D多面體中,計(jì)算射線和多邊形的交點(diǎn),并通過計(jì)算入射光和交點(diǎn)生成新射線。最終的計(jì)算結(jié)果時(shí)一個(gè)能在照相機(jī)內(nèi)看到的圖片。程序中的計(jì)算需求和基本計(jì)算機(jī)圖形學(xué)中介紹的傳統(tǒng)確定性射線跟蹤程序很相似,但是它有較少的存儲(chǔ)一致性需求,因?yàn)楹芏嘣谕粋€(gè)位置生成的隨機(jī)射線橫切3D空間中完全不同的區(qū)域.輸入:eon渲染一個(gè)150×150像素的一把椅子在房間前腳的圖片。
253.perlbmk: C語言編寫,Perl語言解釋器。這是一個(gè)Perl v5.005_03版本的刪減版,刪除了很多操作系統(tǒng)相關(guān)的特性,并增加了一些第三方的模塊,包括MD5 v1.7, MHonArc v2.3.3, IO-stringy v1.205,MailTools v1.11,TimeData v1.08。輸入:由四個(gè)perl腳本組成,一個(gè)email-to-HTML 轉(zhuǎn)換器,占用時(shí)間最長(zhǎng);一個(gè)spec CPU2000用來對(duì)比較輸出的diff腳本,一個(gè)通過迭代算法尋找合格數(shù)字的腳本,一個(gè)用于測(cè)試偽隨機(jī)數(shù)按照預(yù)定順序生成的腳本。輸出分別對(duì)應(yīng)各個(gè)輸入。
254.gap: C語言編寫,群論,解釋器中常用。它實(shí)現(xiàn)一個(gè)語言和庫用于做群論計(jì)算。GAP是(Groups,Algorithms和Programming的縮寫)。
255.vortex: C語言編寫,單用戶面向?qū)ο髷?shù)據(jù)庫中事務(wù)處理的benchmark。SPEC中的vortex來自完整面向?qū)ο髷?shù)據(jù)庫程序VORTEx的一個(gè)子集。輸入和輸入數(shù)據(jù)庫的事務(wù)都會(huì)被轉(zhuǎn)換成一個(gè)方案。
256.bzip2: C語言編寫,壓縮程序。基于Julian Seward的bzip2 v0.1,唯一的不同是SPEC中的bzip2除了輸入外,無文件I/O。所有的壓縮和解壓都在內(nèi)存中進(jìn)行。輸入,輸出都和gzip的相似。
300.twolf: C語言實(shí)現(xiàn),定位和路由模擬。twolf來自TimberWolfSC定位和全局路由,它被用于創(chuàng)建微處理器產(chǎn)品印刷電路布局的流程中,確定晶體管的位置和組內(nèi)的全局連接。定位問題是一個(gè)排列,窮舉法耗時(shí)太長(zhǎng),TimberWolfSC程序則使用模擬退火作為啟發(fā)來找到較優(yōu)解。
Spec int2006 12個(gè)整點(diǎn)測(cè)試項(xiàng)目
400.perlbench:C語言編寫,同spec2000的253.perlbmk類似,是Perl V5.8.7版本的刪減版,同樣刪除了一下操作系統(tǒng)特性有關(guān)的東西,增加了第三方的模塊,如:SpamAssassin V2.61,Digest-MD5 v2.33,HTML-Parser v3.35,MHonArc V2.6.8,IO-stringy V1.205,MailTools V1.60,TimeDate V1.16。400.perlbench采用3個(gè)腳本進(jìn)行增加負(fù)載或工作。1.主要的負(fù)載在于打開?垃圾郵件過濾軟件SpamAssassin。采取的過濾方式是采用記分制,也就是說會(huì)根據(jù)我們所設(shè)定的標(biāo)準(zhǔn)來給予分?jǐn)?shù)超過標(biāo)準(zhǔn)值的時(shí)候即判定為 SPAM(垃圾郵件),其余為非垃圾郵件。但對(duì)SpamAssassin軟件做了很大程度的修改,避免一些I/0操作,并且沒有使用貝葉斯過濾。2.是比較流行的email到HTML的轉(zhuǎn)換器MHonArc 3.使用了spec2006的工具套件specdiff。
401.bzip2: C語言實(shí)現(xiàn),同spec2000的256.bzip2類似,基于Julian Seward的bzip2 v1.03.唯一的不同是SPEC中的bzip2除了輸入外,無文件I/O。所有的壓縮和解壓都在內(nèi)存中進(jìn)行。輸入,輸出都和gzip的相似。負(fù)載包括六個(gè)部分:兩個(gè)小的JPEG圖片、一個(gè)程序、一個(gè)tar包起的幾個(gè)源程序文件、一個(gè)HTML文件、混合文件,包括壓縮起來的高可壓縮文件及不怎么可壓縮的文件。測(cè)試分別使用了三個(gè)不同的壓縮等級(jí)進(jìn)行壓縮和解壓縮
403.gcc:C語言實(shí)現(xiàn),同spec2000的176.gcc類似。該測(cè)試是基于gcc V3.2,為AMDCPU生成機(jī)器碼。相比spec2000的176.gcc,該測(cè)試有更多的輸入文件,因此測(cè)試壓力會(huì)更大,負(fù)載來源于對(duì)9組C代碼進(jìn)行編譯。
429.mcf:C語言實(shí)現(xiàn),同時(shí)需要libm庫支持,同spec2000的181.mcf類似,MCF是一個(gè)用于大型公共交通中的單站車輛調(diào)度的程序。但對(duì)輸入文件做了一定的修改,由32位變成64位,用以兼容64位系統(tǒng)。并且增加了cache命中和程序的性能。相比spec2000的181.mcf來說,占用的內(nèi)存由之前的100M-190M變?yōu)?60M-1700M。
445.gobmk:C語言實(shí)現(xiàn),同spec2000的186.crafty類似。不同的是這里是實(shí)現(xiàn)的圍棋游戲。相比spec2000程序更復(fù)雜。
456.hmmer:C語言實(shí)現(xiàn)。HMMER是基于隱馬爾可夫模型(profile HMMs),用于生物序列分析工作。同Timed HMMer Search 類似。
458.sjeng:C語言實(shí)現(xiàn)。基于一種象棋游戲Sjeng11.2,屬于人工智能的范疇。
462.libquantum:C語言實(shí)現(xiàn)(C99)。libquantum是模擬量子計(jì)算機(jī)的庫文件,用來進(jìn)行量子計(jì)算機(jī)應(yīng)用的研究。
464.h264ref:C語言實(shí)現(xiàn)。一種視頻壓縮程序,基于H264AVC 9.3版,去除了I/O和平臺(tái)相關(guān)的東西。
471.omnetpp:C++語言實(shí)現(xiàn)。OMNeT++,離散事件仿真。包括約8000臺(tái)計(jì)算機(jī)和900個(gè)交換機(jī)/集線器,以及混合了各種從10Mb到1000Mb速率的大型CSMA/CD協(xié)議以太網(wǎng)絡(luò)模擬。
473 astar:C++語言實(shí)現(xiàn),實(shí)現(xiàn)了2D尋路算法A*的三種不同版本。
Spec fp2000 13個(gè)浮點(diǎn)測(cè)試項(xiàng)目
168 wupwise:Fortran 77語言實(shí)現(xiàn),格點(diǎn)規(guī)范理論與威爾遜數(shù)值模擬對(duì)費(fèi)米子格是夸克傳播子的計(jì)算。輸入文件wupwise.in包含幾個(gè)創(chuàng)建該問題的參數(shù),SEED:提供一個(gè)隨機(jī)數(shù) NITER:迭代次數(shù)KAPPA:參數(shù)表征矩陣M = I - KAPPA * D。輸出文件wupwise.out,包含每次NITER迭代的校驗(yàn)值(EPS)和包含最終的EPSILON特征的結(jié)果。
171 swim:Fortran 77語言實(shí)現(xiàn),氣象學(xué)中的淺水模型。
172.mgrid :Fortran 77語言實(shí)現(xiàn),多重網(wǎng)格求解器:3D勢(shì)場(chǎng)
173.applu: Fortran 77語言實(shí)現(xiàn),拋物線/橢圓型偏微分方程
177.mesa:C語言實(shí)現(xiàn) ,3D圖形庫。
178.galgel :Fortran 90語言實(shí)現(xiàn),計(jì)算流體動(dòng)力學(xué)
179.art :C,圖像識(shí)別/神經(jīng)網(wǎng)絡(luò)
183.equake:C語言實(shí)現(xiàn), 地震波傳播模擬
187.facerec: Fortran 90語言實(shí)現(xiàn),圖像處理:人臉識(shí)別
189.lucas :Fortran 90語言實(shí)現(xiàn),數(shù)論/素性測(cè)試
191.fma3d :Fortran 90語言實(shí)現(xiàn),有限元模擬碰撞
200.sixtrack :Fortran 77語言實(shí)現(xiàn),高能核物理加速器設(shè)計(jì)
301.apsi: Fortran 77語言實(shí)現(xiàn),氣象學(xué)中污染物分布
Spec fp2006 17個(gè)浮點(diǎn)測(cè)試項(xiàng)目
410.bwaves:Fortran 77語言實(shí)現(xiàn),流體力學(xué)范疇。對(duì)三維瞬跨音速粘性流中沖擊波的模擬計(jì)算
416.gamess:Fortran語言實(shí)現(xiàn),量子化學(xué)范疇。采用GMAESS組件,包含 胞嘧啶分子、水和Cu2+離子、三唑離子等3種SCF自洽場(chǎng)計(jì)算。
433.milc:C語言實(shí)現(xiàn),量子力學(xué)范疇,采用MILC組件,包含用來研究QCD量子色動(dòng)力學(xué)、夸克及膠子的四維SU(3)格點(diǎn)規(guī)范理論的模。
434.zeusmp :Fortran 77/REAL*8語言實(shí)現(xiàn),屬于計(jì)算流體力學(xué)范疇,ZEUS-MP程序,用來計(jì)算理想、非相對(duì)論條件下的流體力學(xué)和磁流體力學(xué),434.zeusmp模擬計(jì)算了一個(gè)統(tǒng)一磁場(chǎng)中的3D沖擊波。
435.gromacs :C & Fortran語言實(shí)現(xiàn),屬于生物化學(xué)/分子力學(xué)范疇。GROMACS是一個(gè)分子力學(xué)計(jì)算套件,然而也可以用于非生物系統(tǒng),435.gromacs模擬了在一個(gè)水和離子溶液中的蛋白質(zhì)溶菌酶結(jié)構(gòu)在各種實(shí)驗(yàn)手段如核磁共振的X光照射下的變化。
436.cactusADM:Fortran 90, ANSI C語言實(shí)現(xiàn),物理中的廣義相對(duì)論。來源于Cactus BenchADM。436.cactusADM對(duì)時(shí)空曲率由內(nèi)部物質(zhì)決定的愛因斯坦演化方程進(jìn)行求解,愛因斯坦演化方程由10個(gè)標(biāo)準(zhǔn)ADM 3+1分解的二階非線性偏微分方程組成。
437.leslie3d :Fortran 90語言實(shí)現(xiàn),屬于流體力學(xué)范疇。 LESlie3d是用來計(jì)算湍流的計(jì)算流體力學(xué)程序,437.leslie3d計(jì)算了一個(gè)如燃油注入燃燒室的時(shí)間分層混合流體。
444.namd:C++語言實(shí)現(xiàn)。屬于生物/分子學(xué)范疇。NAMD是一個(gè)大型生物分子系統(tǒng)并行計(jì)算程序,444.namd模擬了了92224個(gè)原子組成的A-I載脂蛋白
447.dealII:C++語言實(shí)現(xiàn)。進(jìn)行有限元分析,w/Boost lib 、deal.II lib、deal.II是定位于自適應(yīng)有限元及誤差估計(jì)的C++庫,447.dealII對(duì)非常系數(shù)的亥姆霍茲方程進(jìn)行求解,它使用了基于二元加權(quán)誤差估計(jì)生成最佳網(wǎng)格的自適應(yīng)方法,該方程在3維得解。
450.soplex:C++語言實(shí)現(xiàn)。采用Plex v1.2.1程序,Plex使用單純形算法解線性方程
453.povray:ISO C++ 語言實(shí)現(xiàn)。 POV-Ray POV-Ray是一個(gè)光線追蹤渲染軟件,453.povray渲染一幅1280x1024的反鋸齒國際象棋棋盤圖像
454.calculix:Fortran 90 & C語言實(shí)現(xiàn),結(jié)構(gòu)力學(xué)范疇。CalculiX是一個(gè)用于線性及非線性三位結(jié)構(gòu)力學(xué)的有限元分析軟件,454.calculix計(jì)算了一個(gè)高速旋轉(zhuǎn)的壓縮盤片在離心力的作用下的應(yīng)力和變形情況
459.GemsFDTD:Fortran 90語言實(shí)現(xiàn)。屬于電磁學(xué)范疇。 459.GemsFDTD使用FDTD(有限差分時(shí)域)方法求解三維時(shí)域中的麥克斯韋方程,計(jì)算了一個(gè)理想導(dǎo)體的雷達(dá)散射截面
465.tonto: Fortran 95實(shí)現(xiàn)。量子化學(xué)范疇Tonto是一個(gè)面向?qū)ο蟮牧孔踊瘜W(xué)程序包,465.tonto計(jì)算面向量子晶體學(xué),它基于一個(gè)符合X光衍射實(shí)驗(yàn)數(shù)據(jù)的、約束的分子Hartree-Fock波函數(shù)
470.lbm :ANSI C語言實(shí)現(xiàn)。 470.lbm使用LBM(格子波爾茲曼方法)模擬非壓縮流體,它模擬了兩種情況:類似活塞推動(dòng)的剪切驅(qū)動(dòng)流體和管道流體,測(cè)試包含了3000個(gè)步驟
481.wrf :Fortran 90 & C語言實(shí)現(xiàn)。WRF v2.0.2 481.wrf基于WRF(Weather Research and Forecastin)模型,對(duì)NCAR的數(shù)據(jù)進(jìn)行了計(jì)算,數(shù)據(jù)包括了UTC 2001.06.11到UTC 2001.06.12以三小時(shí)為間隔的數(shù)據(jù)
482.sphinx3:C語言實(shí)現(xiàn)。Sphinx-3一種語音識(shí)別軟件。
工具安裝
標(biāo)準(zhǔn)安裝方式
$mount -t iso9660 -o ro,exec /dev/cdrom /mnt $cd /mnt $./install.sh可以指定安裝目錄如:
$./install.sh -d /home/cpu2006安裝過程中可能遇到以下提示:
Installing FROM /Volumes/SPEC_CPU2006 Installing TO /home/cpu2006 Is this correct? (Please enter 'yes' or 'no') yes通過安裝完成的軟件進(jìn)行測(cè)試
先準(zhǔn)備相關(guān)測(cè)試文件,如:cpu2006-20141030.tar。 解壓文件:
$tar xf cpu2006-20141030.tar進(jìn)入安裝目錄:
$cd cpu2006v99/(根據(jù)實(shí)際路徑)導(dǎo)入測(cè)試工具:
$. shrc注意:輸入時(shí),圓點(diǎn)與shrc之間至少一個(gè)空格,該命令開始導(dǎo)入SPEC CPU2006程序。 修改測(cè)試文件絕對(duì)路徑:
$bin/relocate 顯示“Top of SPEC benchmark tree is '/cpu2006v99'”運(yùn)行測(cè)試
根據(jù)需求,進(jìn)行參數(shù)選擇,開始運(yùn)行測(cè)試腳本: 例如:runspec -c linux-mipsel-gcc -i ref -n 3 all 命令參數(shù)說明:
-c:讀取測(cè)試配置文件,linux-mipsel-gcc位于SPEC CPU2000安裝目錄的config目錄下,該文件可以根據(jù)實(shí)際信息進(jìn)行修改。其編譯選項(xiàng)不建議修改。 -i:輸入測(cè)試數(shù)據(jù)集的大小,ref代表最大測(cè)試數(shù)據(jù)集,test代表最小測(cè)試數(shù)據(jù)集; -n:每個(gè)測(cè)試項(xiàng)目運(yùn)行的次數(shù),如果需要SPEC CPU2006自動(dòng)計(jì)算測(cè)試分值,需要指定運(yùn)行次數(shù)等于或大于3,即n>=3; all:SPEC CPU2006將運(yùn)行基準(zhǔn)測(cè)試程序中的所有測(cè)試項(xiàng)目。出現(xiàn)以下信息,表明測(cè)試已經(jīng)啟動(dòng)“
runspec v4283 - Copyright 1999-2006 Standard Performance Evaluation Corporation Using 'mipsel-linux' tools Reading MANIFEST... 17899 files Loading runspec modules............... Locating benchmarks...found 31 benchmarks in 13 benchsets. Locating output formats: ASCII, config, CSV, flags, html (DISABLED), mail, PDF, PostScript, raw, Screen, Submission Check Reading config file '/cpu2006v99/config/linux-mipsel-gcc.cfg' Benchmarks selected: 400.perlbench, 401.bzip2, 403.gcc, 429.mcf, 445.gobmk, 456.hmmer, 458.sjeng, 462.libquantum, 464.h264ref, 471.omnetpp, 473.astar, 483.xalancbmk, 999.specrand, 410.bwaves, 416.gamess, 433.milc, 434.zeusmp, 435.gromacs, 436.cactusADM, 437.leslie3d, 444.namd, 447.dealII, 450.soplex, 453.povray, 454.calculix, 459.GemsFDTD, 465.tonto, 470.lbm, 481.wrf, 482.sphinx3, 998.specrand Compiling Binariesup to date 400.perlbench ref base linux-mipsel-gcc defaultUp to date 401.bzip2 ref base linux-mipsel-gcc defaultUp to date 403.gcc ref base linux-mipsel-gcc defaultUp to date 429.mcf ref base linux-mipsel-gcc default ……這組測(cè)試配置基本和spec2000類似,不同的是,spec2006在測(cè)試前,會(huì)把每個(gè)測(cè)試組件重新編譯建立一次。所以在測(cè)試前,應(yīng)確保此時(shí)的系統(tǒng)中包含以下編譯器:g++、gcc、gfortran編譯器。如果進(jìn)行連續(xù)測(cè)試,則不必進(jìn)行再次編譯,可以加參數(shù)”—nobuild”. 附config文件大體說明:斜體部分為文本內(nèi)容 //為解釋說明
##################################################################### ignore_errors = yes tune = base ext = loongson.3a2000 output_format = asc, Screen, html reportable = 0 teeout = yes teerunout = yes hw_avail = Feb-2015 sw_avail = Feb-2015 license_num = company_name = Loongson prepared_by = Loongson tester_name = isoft test_date = July-2016verbose = 9default=default=default=default: ##################################################################### # # Compiler selection # #####################################################################makeflags = -j 4CC = mips64el-loongson-linux-gcc CXX = mips64el-loongson-linux-g++ FC = mips64el-loongson-linux-gfortran## HW config hw_cpu_name = Loongson hw_model = 3A2000 hw_cpu_mhz = 1000 hw_fpu = Integrated hw_nchips = 1 hw_ncores = 4 hw_ncoresperchip= 4 hw_nthreads = 4 hw_ncpuorder = 1 hw_parallel = yes hw_pcache = 64KB I + 64KB D hw_scache = 4096KB(I + D) hw_memory = 2 x 4GB DDR1066 hw_vendor = Loongson## SW config sw_os = iSoft sw_file = ext4 sw_state = runlevel 3 sw_compiler = gcc , g++ & gfortran 4.8##################################################################### # Optimization ##################################################################### ## Base is low opt default=default=default=default: # For this data model, -m32 needs to be here, as one of the lines below OPTIMIZE = -static -march=loongson3a PORTABILITY =COPTIMIZE = -flto -Ofast CXXOPTIMIZE = -flto -Ofast FOPTIMIZE = -flto -Ofastnotes0100= C/C++ base flags: -flto -Ofast notes0110= Fortran base flags: -flto -Ofast##################################################################### # 32/64 bit Portability Flags - all #####################################################################default=base=default=default: notes25=default=peak=default=default: notes25=##################################################################### # Portability Flags - INT #####################################################################400.perlbench=default=default=default: notes35 = 400.perlbench: -DSPEC_CPU_LINUX_IA32 CPORTABILITY= -DSPEC_CPU_LINUX_IA32 -fno-strict-aliasing #notes35 = 400.perlbench: -DSPEC_CPU_LINUX #CPORTABILITY= -DSPEC_CPU_LINUX -DSPEC_CPU_LITTLEENDIAN #COPTIMIZE = -O2 ...... 其他具體組件的編譯信息不再一一說明,基本可以保持默認(rèn)即可。更多測(cè)試類型與方法參見下文。
測(cè)試結(jié)果收集與分析
測(cè)試結(jié)束后在result目錄下,查看測(cè)試結(jié)果,測(cè)試結(jié)果一般以測(cè)試類型和測(cè)試次序進(jìn)行區(qū)別,并且會(huì)按照整點(diǎn)和浮點(diǎn)進(jìn)行劃分。如果是按照正式reportable的模式進(jìn)行測(cè)試的話,會(huì)出一份網(wǎng)頁版的正式測(cè)試結(jié)果,參見下圖: 非正式結(jié)果可以去asc或txt文檔查看,格式例如下文:
Base Base Base Peak Peak Peak Benchmarks Ref. Run Time Ratio Ref. Run Time Ratio -------------- ------ --------- --------- ------ --------- --------- 400.perlbench 9770 430 22.7 S 9770 339 28.8 S 400.perlbench 9770 429 22.8 * 9770 338 28.9 S 400.perlbench 9770 429 22.8 S 9770 339 28.8 * 401.bzip2 9650 559 17.3 * 9650 552 17.5 * 401.bzip2 9650 559 17.3 S 9650 553 17.5 S 401.bzip2 9650 560 17.2 S 9650 552 17.5 S 403.gcc 8050 374 21.5 S 8050 337 23.9 S 403.gcc 8050 367 22.0 * 8050 337 23.9 S 403.gcc 8050 366 22.0 S 8050 337 23.9 * 429.mcf 9120 187 48.9 S 9120 187 48.9 S 429.mcf 9120 188 48.6 * 9120 188 48.6 * 429.mcf 9120 211 43.2 S 9120 211 43.2 S 445.gobmk 10490 559 18.8 S 10490 542 19.4 S 445.gobmk 10490 559 18.8 S 10490 542 19.4 * 445.gobmk 10490 559 18.8 * 10490 541 19.4 S 456.hmmer 9330 213 43.8 S 9330 213 43.7 * 456.hmmer 9330 247 37.8 S 9330 214 43.6 S 456.hmmer 9330 214 43.5 * 9330 213 43.7 S 458.sjeng 12100 616 19.6 * 12100 574 21.1 * 458.sjeng 12100 617 19.6 S 12100 575 21.0 S 458.sjeng 12100 585 20.7 S 12100 574 21.1 S 462.libquantum 20720 14.2 1460 * 20720 14.2 1460 * 462.libquantum 20720 14.4 1440 S 20720 14.4 1440 S 462.libquantum 20720 13.5 1540 S 20720 13.5 1540 S 464.h264ref 22130 578 38.3 * 22130 527 42.0 S 464.h264ref 22130 579 38.2 S 22130 526 42.0 * 464.h264ref 22130 578 38.3 S 22130 526 42.0 S 471.omnetpp 6250 349 17.9 S 6250 288 21.7 * 471.omnetpp 6250 348 17.9 * 6250 288 21.7 S 471.omnetpp 6250 348 18.0 S 6250 289 21.7 S 473.astar 7020 313 22.4 S 7020 313 22.4 S 473.astar 7020 311 22.6 S 7020 311 22.6 S 473.astar 7020 311 22.6 * 7020 311 22.6 * 483.xalancbmk 6900 174 39.7 * 6900 170 40.7 S 483.xalancbmk 6900 174 39.6 S 6900 170 40.5 S 483.xalancbmk 6900 174 39.7 S 6900 170 40.6 * ============================================================================== 400.perlbench 9770 429 22.8 * 9770 339 28.8 * 401.bzip2 9650 559 17.3 * 9650 552 17.5 * 403.gcc 8050 367 22.0 * 8050 337 23.9 * 429.mcf 9120 188 48.6 * 9120 188 48.6 * 445.gobmk 10490 559 18.8 * 10490 542 19.4 * 456.hmmer 9330 214 43.5 * 9330 213 43.7 * 458.sjeng 12100 616 19.6 * 12100 574 21.1 * 462.libquantum 20720 14.2 1460 * 20720 14.2 1460 * 464.h264ref 22130 578 38.3 * 22130 526 42.0 * 471.omnetpp 6250 348 17.9 * 6250 288 21.7 * 473.astar 7020 311 22.6 * 7020 311 22.6 * 483.xalancbmk 6900 174 39.7 * 6900 170 40.6 *SPECint(R)_base2006 36.7SPECint2006 39.1Base Ratio為測(cè)試分值,該測(cè)試一般運(yùn)行3遍取中值。整體結(jié)果為所有結(jié)果的幾何平均值。
舉例說明SPEC CPU2006常用測(cè)試命令組合
1.runspec -c test.cfg -i test -I all 基于最小測(cè)試數(shù)據(jù)集快速執(zhí)行所有的測(cè)試,測(cè)試過程中如果某個(gè)用例發(fā)生錯(cuò)誤,則跳過錯(cuò)誤用例,繼續(xù)執(zhí)行其他用例。 2.runspec -c test.cfg -i ref -n 3 -I all 基于最大測(cè)試數(shù)據(jù)集全面執(zhí)行所有的測(cè)試,用于測(cè)試單核CPU,測(cè)試過程中如果某個(gè)用例發(fā)生錯(cuò)誤,則跳過錯(cuò)誤用例,繼續(xù)執(zhí)行其他用例。 3.runspec -c test.cfg –r ref –n 3 fp 基于最大測(cè)試數(shù)據(jù)集,只運(yùn)行fp測(cè)試 4.runspec -c test.cfg –r ref –n 3 int 基于最大測(cè)試數(shù)據(jù)集,只運(yùn)行int測(cè)試 5.runspec -c test.cfg -i ref 473.astar 基于最大測(cè)試數(shù)據(jù)集只執(zhí)行473.astar單個(gè)測(cè)試。 6 runspec –c test.cfg –i ref --rate 4 int 基于最大數(shù)據(jù)測(cè)試集進(jìn)行rate測(cè)試,運(yùn)行4線程測(cè)試的分值
其他命令補(bǔ)充
--action build 創(chuàng)建測(cè)試項(xiàng)目 --action onlyrun 只是運(yùn)行,不進(jìn)行確認(rèn)測(cè)試結(jié)果是否正確 --action report 標(biāo)準(zhǔn)測(cè)試 --action clean 清理已經(jīng)建立的測(cè)試項(xiàng)目模式很多,不再一一介紹。
--check_version 檢查版本更新 --copies –c number 默認(rèn)1 用來進(jìn)行SPECrate run --help 顯示幫助文檔 --ignore_errors 忽略錯(cuò)誤 ations number —n 測(cè)試次數(shù),一次reportable測(cè)試,必須是3次 --iter—loose 未設(shè)置reportable測(cè)試 --output_format 輸出文件格式 默認(rèn)為html text 可以選擇 all cfg test csv html mail pdf ps printer raw screen text 等多種方式。 --rate -r 進(jìn)行SPECspeed測(cè)試可以指定copies數(shù)量運(yùn)行。 --rebuild 重新編譯測(cè)試文件 --tune tuning 默認(rèn)是base 可以選擇base, peak, or all ,Report 首先是base,其次是peak.以上是比較常用的命令,一些不常用的命令不再介紹,可參考下文了解。
-a Same as --action --action action Do: build|buildsetup|clean|clobber|configpp| onlyrun|realclean|report|run|runsetup|scrub| setup|trash|validate --basepeak Copy base results to peak (use with --rawformat) --nobuild Do not attempt to build binaries -c Same as --config -C Same as --copies --check_version Check whether an updated version of CPU2006 is available --comment "text" Add a comment to the log and the stored configfile. --config file Set config file for runspec to use --copies Set the number of copies for a SPECrate run -D Same as --rebuild -d Same as --deletework --debug Same as --verbose --define SYMBOL[=VALUE] Define a config preprocessor macro --delay secs Add delay before and after benchmark invocation --deletework Force work directories to be rebuilt --dryrun Same as --fake --dry-run Same as --fake -e Same as --extension --ext Same as --extension --extension ext[,ext...] Set the extensions -F Same as --flagsurl --fake Show what commands would be executed. --fakereport Generate a report without compiling codes or doing a run. --fakereportable Generate a fake report as if "--reportable" were set. --[no]feedback Control whether builds use feedback directed optimization --flagupdate Same as --update --flagsupdate Same as --update --flagsurl url Location (url or filespec) where to find your flags file --getflags Same as --update --graph_auto Let the tools pick minimum and maximum for the graph --graph_min N Set the minimum for the graph --graph_max N Set the maximum for the graph -h Same as --help --help Print usage message --http_proxy Specify the proxy for internet access --http_timeout Timeout when attempting http access -I Same as --ignore_errors -i Same as --size --ignore_errors Continue with benchmark runs even if some fail --ignoreerror Same as --ignore_errors ......手動(dòng)編譯及跨平臺(tái)移植方法(僅供參考)
Spec2006包含的測(cè)試套件基本上與平臺(tái)無關(guān),因此理論上是可以直接進(jìn)行跨平臺(tái)進(jìn)行測(cè)試。 Spec2006為了實(shí)現(xiàn)測(cè)試結(jié)果的準(zhǔn)確及降低對(duì)平臺(tái)的依賴,制作了自己的工具包。其中包括: specdiff(examines results to see if the correct answer was obtained)、specinvoke (invokes benchmarks for CPU2006)、specmake(GNU make ,Calling it "specmake" avoids possible conflicts with versions of make that may already be on your system. SPEC requires that published results use the versions of the tools that it supplies, so that if SPEC applies patches or extensions from time to time, all users run with a consistent tool set. Similar considerations apply to other tools in this list.)、specxz (The xz compression program)、specmd5sum(md5sum from GNU coreutils, with enhancements)、spectar( GNU tar)、specperl(Perl)。Various Perl modules such as Algorithm::Diff, GD, HTML::Parser, PDF::API2, URI, XML::SAX, etc.。 編譯工具:C99 編譯器 C++編譯器 如果是初始安裝包,則需要解壓源碼包
# xz -dc install_archives/cpu2006.tar.xz | tar -xf - tools/src建立工具包的命令如下:
AIX (32-bit): CC=xlc CFLAGS='-O -qarch=ppc -D_LARGE_FILES -D_ILS_MACROS' PERLFLAGS="-Doptimize='-O' -Accflags='-D_LARGE_FILES'" OBJECT_MODE=32 ./buildtoolsAIX (64-bit): CC=xlc CFLAGS='-O3 -qarch=ppc64 -q64 -D_ILS_MACROS' PERLFLAGS="-Doptimize='-O' -Aoptimize='-qarch=ppc64 -q64'" OBJECT_MODE=64 ./buildtoolsHPUX: CC="/opt/ansic/bin/cc" CFLAGS="-Ae +O2 +z -D_FILE_OFFSET_BITS=64 -AC99" XZCFLAGS=-AC99 PERLFLAGS="-Doptimize=+O1 -Dlibpth=/usr/lib/hpux32 -Dldflags=-lm -Dcppstdin=cc -Acppstdin=-E -Acppstdin=-Aa -Acppstdin=-D__STDC_EXT__ -Acppstdin=-AC89" ./buildtoolsIRIX: ulimit -s 128000; CFLAGS="-c99 -D_FILE_OFFSET_BITS=64" MD5CFLAGS="-O2" PERLFLAGS="-Doptimize=-O3 -Uloclib -Dlibpth=/usr/lib32" XZFLAGS="--disable-assembler --disable-shared" XZCFLAGS="-O1" ./buildtools建立完成之后,確認(rèn)是否成功的方法:
cd $SPEC (Unix) . shrc 或 runspec -V 或specmake -v specxz -h specperl -v specdiff –h runspec -h specinvoke -h工具編譯完成之后,需要對(duì)工具進(jìn)行打包
packagetools <archname>如果自動(dòng)化編譯出現(xiàn)問題,可以手動(dòng)編譯每個(gè)測(cè)試工具。編譯方法為進(jìn)入對(duì)應(yīng)的工具包,手動(dòng)編譯。
Top^
Comments
轉(zhuǎn)載于:https://www.cnblogs.com/xuanbjut/p/11565451.html
總結(jié)
以上是生活随笔為你收集整理的Spec2006使用说明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DOS运行GHOST加参数
- 下一篇: python-urllib3