http://www.vimlinux.com/lipeng/author/penglee5.html
Spec2006使用說明
五 10 十月 2014
By penglee
工具介紹
SPEC CPU 2006 benchmark是SPEC新一代的行業標准化的CPU測試基准套件。重點測試系統的處理器,內存子系統和編譯器。這個基准測試套件包括的SPECint基准和SPECfp基准。 其中SPECint2006基准包含12個不同的基准測試和SPECfp2006年基准包含19個不同的基准測試。SPEC設計了這個套件提供了一個比較標准的計算密集型,高性能的跨硬件的CPU測試工具。在SPEC CPU 2006基准有幾種不同的方法來衡量計算機性能。 一種方式是測量計算機完成單一任務的速度; 另一種方式吞吐量,容量或速率的測量。 說明:由於spec2006支持多種類型操作系統。以下安裝、測試、移植等介紹均基於Unix 和其他的 Unix-like system如linux。Windows系統不在此范圍內。
spec2006與spec2000的對比簡要說明
2006年8月24日,標准性能評估公司(SPEC)宣布CPU2006將取代CPU2000。 Spec cpu基准測試被廣泛的應用於工業界和學術界。新套件比cpu2000要大很多,而且將涵蓋到CPU、存儲器系統、編譯器特別是C++編譯器。Cpu2000只有1個關於C++的基准測試,CPU2006則含有7個相關套件,這其中包括了50W行c++代碼,Fortran和C語言和之前一樣有很好的覆蓋。
Spec2000和spec20006具體的套件信息如下:
Spec int2000 12個整點測試項目
164.gzip C語言編寫,很流行的數據壓縮程序。使用Lempel-Ziv coding(LZ77)作為壓縮算法。SPEC中的gzip除了讀入集外沒有其他文件I/O操作,所有壓縮和解壓都在主存中進行,方便測試CPU和存儲子系統。
175.vpr C語言編寫,FPGA中的電路定位和路由程序,用於計算機輔助電路設計領域。
176.gcc: C語言編寫,C語言優化編譯器。該GCC基於GCC 2.7.2.2版本,為摩托羅拉88100處理器生成機器碼。
181.mcf: C語言編寫,組合優化/單點輪換調度(Single-depot vehicle scheduling),派生自使用單站輪換調度的公共物流應用程序。
186.crafty: C語言編寫,國際象棋游戲程序。這是一個在64位機上設計的高性能計算機國際象棋程序,在32位機上可以使用long long來表示該數據類型。主要是一個整點程序,大量的邏輯運算。通過配置,能生成不同的搜索集,可以對處理器的整點運算,轉移預測和流水線等做測試。
197.parser: C語言編寫,字處理程序。連接語法分析器(Link Grammar Parser)是一個基於連接語法的英語句法分析器。連接語法時英語語法的較早理論。給定一個句子,系統能給它賦予一個詞法結構,這個結構是兩個詞之間被標記的連接。該分析器有大約60000個詞表的字典。
252.eon: C++語言編寫,計算機可視化。eon是一個基於概率的射線跟蹤程序,基於Kajiya 1986 ACM SIGGRAPH會議的論文。它將一定數量的3D射線發射到一個3D多面體中,計算射線和多邊形的交點,並通過計算入射光和交點生成新射線。最終的計算結果時一個能在照相機內看到的圖片。程序中的計算需求和基本計算機圖形學中介紹的傳統確定性射線跟蹤程序很相似,但是它有較少的存儲一致性需求,因為很多在同一個位置生成的隨機射線橫切3D空間中完全不同的區域.輸入:eon渲染一個150×150像素的一把椅子在房間前腳的圖片。
253.perlbmk: C語言編寫,Perl語言解釋器。這是一個Perl v5.005_03版本的刪減版,刪除了很多操作系統相關的特性,並增加了一些第三方的模塊,包括MD5 v1.7, MHonArc v2.3.3, IO-stringy v1.205,MailTools v1.11,TimeData v1.08。輸入:由四個perl腳本組成,一個email-to-HTML 轉換器,占用時間最長;一個spec CPU2000用來對比較輸出的diff腳本,一個通過迭代算法尋找合格數字的腳本,一個用於測試偽隨機數按照預定順序生成的腳本。輸出分別對應各個輸入。
254.gap: C語言編寫,群論,解釋器中常用。它實現一個語言和庫用於做群論計算。GAP是(Groups,Algorithms和Programming的縮寫)。
255.vortex: C語言編寫,單用戶面向對象數據庫中事務處理的benchmark。SPEC中的vortex來自完整面向對象數據庫程序VORTEx的一個子集。輸入和輸入數據庫的事務都會被轉換成一個方案。
256.bzip2: C語言編寫,壓縮程序。基於Julian Seward的bzip2 v0.1,唯一的不同是SPEC中的bzip2除了輸入外,無文件I/O。所有的壓縮和解壓都在內存中進行。輸入,輸出都和gzip的相似。
300.twolf: C語言實現,定位和路由模擬。twolf來自TimberWolfSC定位和全局路由,它被用於創建微處理器產品印刷電路布局的流程中,確定晶體管的位置和組內的全局連接。定位問題是一個排列,窮舉法耗時太長,TimberWolfSC程序則使用模擬退火作為啟發來找到較優解。
Spec int2006 12個整點測試項目
400.perlbench:C語言編寫,同spec2000的253.perlbmk類似,是Perl V5.8.7版本的刪減版,同樣刪除了一下操作系統特性有關的東西,增加了第三方的模塊,如: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個腳本進行增加負載或工作。1.主要的負載在於打開 垃圾郵件過濾軟件SpamAssassin。采取的過濾方式是采用記分制,也就是說會根據我們所設定的標准來給予分數超過標准值的時候即判定為 SPAM(垃圾郵件),其余為非垃圾郵件。但對SpamAssassin軟件做了很大程度的修改,避免一些I/0操作,並且沒有使用貝葉斯過濾。2.是比較流行的email到HTML的轉換器MHonArc 3.使用了spec2006的工具套件specdiff。
401.bzip2: C語言實現,同spec2000的256.bzip2類似,基於Julian Seward的bzip2 v1.03.唯一的不同是SPEC中的bzip2除了輸入外,無文件I/O。所有的壓縮和解壓都在內存中進行。輸入,輸出都和gzip的相似。負載包括六個部分:兩個小的JPEG圖片、一個程序、一個tar包起的幾個源程序文件、一個HTML文件、混合文件,包括壓縮起來的高可壓縮文件及不怎么可壓縮的文件。測試分別使用了三個不同的壓縮等級進行壓縮和解壓縮
403.gcc:C語言實現,同spec2000的176.gcc類似。該測試是基於gcc V3.2,為AMDCPU生成機器碼。相比spec2000的176.gcc,該測試有更多的輸入文件,因此測試壓力會更大,負載來源於對9組C代碼進行編譯。
429.mcf:C語言實現,同時需要libm庫支持,同spec2000的181.mcf類似,MCF是一個用於大型公共交通中的單站車輛調度的程序。但對輸入文件做了一定的修改,由32位變成64位,用以兼容64位系統。並且增加了cache命中和程序的性能。相比spec2000的181.mcf來說,占用的內存由之前的100M-190M變為860M-1700M。
445.gobmk:C語言實現,同spec2000的186.crafty類似。不同的是這里是實現的圍棋游戲。相比spec2000程序更復雜。
456.hmmer:C語言實現。HMMER是基於隱馬爾可夫模型(profile HMMs),用於生物序列分析工作。同Timed HMMer Search 類似。
458.sjeng:C語言實現。基於一種象棋游戲Sjeng11.2,屬於人工智能的范疇。
462.libquantum:C語言實現(C99)。libquantum是模擬量子計算機的庫文件,用來進行量子計算機應用的研究。
464.h264ref:C語言實現。一種視頻壓縮程序,基於H264AVC 9.3版,去除了I/O和平台相關的東西。
471.omnetpp:C++語言實現。OMNeT++,離散事件仿真。包括約8000台計算機和900個交換機/集線器,以及混合了各種從10Mb到1000Mb速率的大型CSMA/CD協議以太網絡模擬。
473 astar:C++語言實現,實現了2D尋路算法A*的三種不同版本。
- xalancbmk:C++語言實現,包含Xalan-C++ v1.8 mod、Xerces-C++ v2.5.0,實現了XML文檔/XSL表到HTML文檔的轉換。
Spec fp2000 13個浮點測試項目
168 wupwise:Fortran 77語言實現,格點規范理論與威爾遜數值模擬對費米子格是誇克傳播子的計算。輸入文件wupwise.in包含幾個創建該問題的參數,SEED:提供一個隨機數 NITER:迭代次數KAPPA:參數表征矩陣M = I - KAPPA * D。輸出文件wupwise.out,包含每次NITER迭代的校驗值(EPS)和包含最終的EPSILON特征的結果。
171 swim:Fortran 77語言實現,氣象學中的淺水模型。
172.mgrid :Fortran 77語言實現,多重網格求解器:3D勢場
173.applu: Fortran 77語言實現,拋物線/橢圓型偏微分方程
177.mesa:C語言實現 ,3D圖形庫。
178.galgel :Fortran 90語言實現,計算流體動力學
179.art :C,圖像識別/神經網絡
183.equake:C語言實現, 地震波傳播模擬
187.facerec: Fortran 90語言實現,圖像處理:人臉識別
189.lucas :Fortran 90語言實現,數論/素性測試
191.fma3d :Fortran 90語言實現,有限元模擬碰撞
200.sixtrack :Fortran 77語言實現,高能核物理加速器設計
301.apsi: Fortran 77語言實現,氣象學中污染物分布
Spec fp2006 17個浮點測試項目
410.bwaves:Fortran 77語言實現,流體力學范疇。對三維瞬跨音速粘性流中沖擊波的模擬計算
416.gamess:Fortran語言實現,量子化學范疇。采用GMAESS組件,包含 胞嘧啶分子、水和Cu2+離子、三唑離子等3種SCF自洽場計算。
433.milc:C語言實現,量子力學范疇,采用MILC組件,包含用來研究QCD量子色動力學、誇克及膠子的四維SU(3)格點規范理論的模。
434.zeusmp :Fortran 77/REAL*8語言實現,屬於計算流體力學范疇,ZEUS-MP程序,用來計算理想、非相對論條件下的流體力學和磁流體力學,434.zeusmp模擬計算了一個統一磁場中的3D沖擊波。
435.gromacs :C & Fortran語言實現,屬於生物化學/分子力學范疇。GROMACS是一個分子力學計算套件,然而也可以用於非生物系統,435.gromacs模擬了在一個水和離子溶液中的蛋白質溶菌酶結構在各種實驗手段如核磁共振的X光照射下的變化。
436.cactusADM:Fortran 90, ANSI C語言實現,物理中的廣義相對論。來源於Cactus BenchADM。436.cactusADM對時空曲率由內部物質決定的愛因斯坦演化方程進行求解,愛因斯坦演化方程由10個標准ADM 3+1分解的二階非線性偏微分方程組成。
437.leslie3d :Fortran 90語言實現,屬於流體力學范疇。 LESlie3d是用來計算湍流的計算流體力學程序,437.leslie3d計算了一個如燃油注入燃燒室的時間分層混合流體。
444.namd:C++語言實現。屬於生物/分子學范疇。NAMD是一個大型生物分子系統並行計算程序,444.namd模擬了了92224個原子組成的A-I載脂蛋白
447.dealII:C++語言實現。進行有限元分析,w/Boost lib 、deal.II lib、deal.II是定位於自適應有限元及誤差估計的C++庫,447.dealII對非常系數的亥姆霍茲方程進行求解,它使用了基於二元加權誤差估計生成最佳網格的自適應方法,該方程在3維得解。
450.soplex:C++語言實現。采用Plex v1.2.1程序,Plex使用單純形算法解線性方程
453.povray:ISO C++ 語言實現。 POV-Ray POV-Ray是一個光線追蹤渲染軟件,453.povray渲染一幅1280x1024的反鋸齒國際象棋棋盤圖像
454.calculix:Fortran 90 & C語言實現,結構力學范疇。CalculiX是一個用於線性及非線性三位結構力學的有限元分析軟件,454.calculix計算了一個高速旋轉的壓縮盤片在離心力的作用下的應力和變形情況
459.GemsFDTD:Fortran 90語言實現。屬於電磁學范疇。 459.GemsFDTD使用FDTD(有限差分時域)方法求解三維時域中的麥克斯韋方程,計算了一個理想導體的雷達散射截面
465.tonto: Fortran 95實現。量子化學范疇Tonto是一個面向對象的量子化學程序包,465.tonto計算面向量子晶體學,它基於一個符合X光衍射實驗數據的、約束的分子Hartree-Fock波函數
470.lbm :ANSI C語言實現。 470.lbm使用LBM(格子波爾茲曼方法)模擬非壓縮流體,它模擬了兩種情況:類似活塞推動的剪切驅動流體和管道流體,測試包含了3000個步驟
481.wrf :Fortran 90 & C語言實現。WRF v2.0.2 481.wrf基於WRF(Weather Research and Forecastin)模型,對NCAR的數據進行了計算,數據包括了UTC 2001.06.11到UTC 2001.06.12以三小時為間隔的數據
482.sphinx3:C語言實現。Sphinx-3一種語音識別軟件。
工具安裝
標准安裝方式
$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
通過安裝完成的軟件進行測試
先准備相關測試文件,如:cpu2006-20141030.tar。 解壓文件:
$tar xf cpu2006-20141030.tar
進入安裝目錄:
$cd cpu2006v99/(根據實際路徑)
導入測試工具:
$. shrc
注意:輸入時,圓點與shrc之間至少一個空格,該命令開始導入SPEC CPU2006程序。 修改測試文件絕對路徑:
$bin/relocate 顯示“Top of SPEC benchmark tree is '/cpu2006v99'”
運行測試
根據需求,進行參數選擇,開始運行測試腳本: 例如:runspec -c linux-mipsel-gcc -i ref -n 3 all 命令參數說明:
-c:讀取測試配置文件,linux-mipsel-gcc位於SPEC CPU2000安裝目錄的config目錄下,該文件可以根據實際信息進行修改。其編譯選項不建議修改。
-i:輸入測試數據集的大小,ref代表最大測試數據集,test代表最小測試數據集;
-n:每個測試項目運行的次數,如果需要SPEC CPU2006自動計算測試分值,需要指定運行次數等於或大於3,即n>=3;
all:SPEC CPU2006將運行基准測試程序中的所有測試項目。
出現以下信息,表明測試已經啟動“
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 Binaries
up to date 400.perlbench ref base linux-mipsel-gcc default
Up to date 401.bzip2 ref base linux-mipsel-gcc default
Up to date 403.gcc ref base linux-mipsel-gcc default
Up to date 429.mcf ref base linux-mipsel-gcc default
……
這組測試配置基本和spec2000類似,不同的是,spec2006在測試前,會把每個測試組件重新編譯建立一次。所以在測試前,應確保此時的系統中包含以下編譯器:g++、gcc、gfortran編譯器。如果進行連續測試,則不必進行再次編譯,可以加參數”—nobuild”. 附config文件大體說明:斜體部分為文本內容 //為解釋說明
#####################################################################
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-2016
verbose = 9
default=default=default=default:
#####################################################################
#
# Compiler selection
#
#####################################################################
makeflags = -j 4
CC = 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 -Ofast
notes0100= 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
......
其他具體組件的編譯信息不再一一說明,基本可以保持默認即可。
更多測試類型與方法參見下文。
測試結果收集與分析
測試結束后在result目錄下,查看測試結果,測試結果一般以測試類型和測試次序進行區別,並且會按照整點和浮點進行划分。如果是按照正式reportable的模式進行測試的話,會出一份網頁版的正式測試結果,參見下圖: 非正式結果可以去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.7
SPECint2006 39.1
Base Ratio為測試分值,該測試一般運行3遍取中值。整體結果為所有結果的幾何平均值。
舉例說明SPEC CPU2006常用測試命令組合
1.runspec -c test.cfg -i test -I all 基於最小測試數據集快速執行所有的測試,測試過程中如果某個用例發生錯誤,則跳過錯誤用例,繼續執行其他用例。 2.runspec -c test.cfg -i ref -n 3 -I all 基於最大測試數據集全面執行所有的測試,用於測試單核CPU,測試過程中如果某個用例發生錯誤,則跳過錯誤用例,繼續執行其他用例。 3.runspec -c test.cfg –r ref –n 3 fp 基於最大測試數據集,只運行fp測試 4.runspec -c test.cfg –r ref –n 3 int 基於最大測試數據集,只運行int測試 5.runspec -c test.cfg -i ref 473.astar 基於最大測試數據集只執行473.astar單個測試。 6 runspec –c test.cfg –i ref --rate 4 int 基於最大數據測試集進行rate測試,運行4線程測試的分值
其他命令補充
--action build 創建測試項目
--action onlyrun 只是運行,不進行確認測試結果是否正確
--action report 標准測試
--action clean 清理已經建立的測試項目
模式很多,不再一一介紹。
--check_version 檢查版本更新
--copies –c number 默認1 用來進行SPECrate run
--help 顯示幫助文檔
--ignore_errors 忽略錯誤
ations number —n 測試次數,一次reportable測試,必須是3次
--iter—loose 未設置reportable測試
--output_format 輸出文件格式 默認為html text 可以選擇 all cfg test csv html mail pdf ps printer raw screen text 等多種方式。
--rate -r 進行SPECspeed測試可以指定copies數量運行。
--rebuild 重新編譯測試文件
--tune tuning 默認是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
......
手動編譯及跨平台移植方法(僅供參考)
Spec2006包含的測試套件基本上與平台無關,因此理論上是可以直接進行跨平台進行測試。 Spec2006為了實現測試結果的准確及降低對平台的依賴,制作了自己的工具包。其中包括: 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 ./buildtools
AIX (64-bit):
CC=xlc CFLAGS='-O3 -qarch=ppc64 -q64 -D_ILS_MACROS' PERLFLAGS="-Doptimize='-O' -Aoptimize='-qarch=ppc64 -q64'" OBJECT_MODE=64 ./buildtools
HPUX:
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" ./buildtools
IRIX:
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
建立完成之后,確認是否成功的方法:
cd $SPEC (Unix) . shrc 或 runspec -V 或specmake -v specxz -h specperl -v specdiff –h runspec -h specinvoke -h
工具編譯完成之后,需要對工具進行打包
packagetools <archname>
如果自動化編譯出現問題,可以手動編譯每個測試工具。編譯方法為進入對應的工具包,手動編譯。
Top^
Comments