spec 2006學(xué)習(xí)記錄
1. 安裝依賴包:
apt-get install gcc g++ gfortran libbz2-dev
2.解壓縮speccpu2006測試工具包,并附執(zhí)行權(quán)限:
tar xvf speccpu2006-v1.0.1-newest.tar
chmod -R a+x /home/speccpu2006-v1.0.1
3.編輯 tools/src/buildtools 文件,將311行注釋,并添加一行export PERLFLAGS="-A libs=-lm -A libs=-ldl"
// export LD_LIBRARY_PATH DYLD_LIBRARY_PATH
export PERLFLAGS="-A libs=-lm -A libs=-ldl"
4.修改tools/src/make-3.8.0/glob/glob.c文件,
在209行“#if !defined __alloca && !defined GNU_LIBRARY”和230行“#endif”前添加“//”注釋掉
//#if defined __alloca && !defined __GNU_LIBRARY__
# ifdef __GNUC__
# undef alloca
# define alloca(n) __builtin_alloca (n)
# else /* Not GCC. */
# ifdef HAVE_ALLOCA_H
# include <alloca.h>
# else /* Not HAVE_ALLOCA_H. */
# ifndef _AIX
# ifdef WINDOWS32
# include <malloc.h>
# else
extern char *alloca ();
# endif /* WINDOWS32 */
# endif /* Not _AIX. */
# endif /* sparc or HAVE_ALLOCA_H. */
# endif /* GCC. */
# define __alloca alloca
# ifdef __GNUC__
# undef alloca
# define alloca(n) __builtin_alloca (n)
# else /* Not GCC. */
# ifdef HAVE_ALLOCA_H
# include <alloca.h>
# else /* Not HAVE_ALLOCA_H. */
# ifndef _AIX
# ifdef WINDOWS32
# include <malloc.h>
# else
extern char *alloca ();
# endif /* WINDOWS32 */
# endif /* Not _AIX. */
# endif /* sparc or HAVE_ALLOCA_H. */
# endif /* GCC. */
# define __alloca alloca
//#endif
5.安裝speccpu2006:
./install.sh //在彈出的提示信息中,選擇yes,后回車
6.初始化環(huán)境變量:
[root@localhost /speccpu2006-v1.0.1]# source shrc
7.檢查SPEC CPU2006是否安裝成功
root@test-attft2000c8f4:~/speccpu2006-v1.0.1# . ./shrc
root@test-attft2000c8f4:~/speccpu2006-v1.0.1# runspec -V
runspec v4662 - Copyright 1999-2006 Standard Performance Evaluation Corporation
Using 'unknown' tools
This is the SPEC CPU2006 benchmark tools suite.
Version summary:
CPU2006 version: 1.0.1
Benchmarks version: 098a
Tools version: 098a
runspec version: 4662 ($Id: runspec 4662 2006-07-24 21:10:20Z cloyce $)
Tools information:
Tools package installed: unknown
File locking method: LockFileEx (network-safe)
Mode | UID | GID | Size | Modified Date | Name
0755 | 0 | 0 | 218536 | 31-Nov-2023 07:12:48 | specmake
0755 | 0 | 0 | 1330400 | 31-Nov-2023 07:12:48 | specperl
0755 | 0 | 0 | 26568 | 31-Nov-2023 07:12:48 | specinvoke
0755 | 0 | 0 | 30664 | 31-Nov-2023 07:12:48 | specinvoke_pm
0775 | 0 | 0 | 136344 | 31-Nov-2023 07:12:48 | specbzip2
0755 | 0 | 0 | 34808 | 31-Nov-2023 07:12:48 | specmd5sum
0755 | 0 | 0 | 7607 | 31-Nov-2023 07:13:19 | specdiff
0755 | 0 | 0 | 85740 | 31-Nov-2023 07:13:19 | specpp
0755 | 0 | 0 | 88872 | 31-Nov-2023 07:13:19 | runspec
0775 | 1000 | 1000 | 1143 | 16-Nov-2018 01:41:28 | runspec.bat
Version info for specinvoke (/root/speccpu2006-v1.0.1/bin/specinvoke): Version: 4205
Version info for specmake (/root/speccpu2006-v1.0.1/bin/specmake): GNU Make 3.80spec
Version info for specbzip2 (/root/speccpu2006-v1.0.1/bin/specbzip2): bzip2 v1.0.3, 15-Feb-2005
Version info for specpp (/root/speccpu2006-v1.0.1/bin/specperl): filepp version 1.7.1SPEC
Version info for specperl (/root/speccpu2006-v1.0.1/bin/specperl): This is specperl, v5.8.7 built for aarch64-linux
For more detail on specperl, say 'specperl -V'
root@test-attft2000c8f4:~/speccpu2006-v1.0.1#
8.選擇相應(yīng)配置文件進行測試:
[root@localhost /speccpu2006-v1.0.1/config]# cd config/
[root@localhost /speccpu2006-v1.0.1/config]# cp arm64.cfg test.cfg //根據(jù)架構(gòu)選擇不通的cfg文件
[root@localhost /speccpu2006-v1.0.1/config]# runspec -c arm64.cfg -n 1 -r 1 all //單線程
[root@localhost /speccpu2006-v1.0.1/config]# runspec -c arm64.cfg -n 1 -r N all //多線程
9. SPEC2006測試參數(shù)詳解
單個項目測試
runspec -c test.cfg 429.mcf --rate 4 -n 1 --noreportable
int整數(shù)測試
runspec -c test.cfg int --rate 8 -n 1 -size=ref --noreportable --output_format all
fp浮點數(shù)測試
runspec -c test.cfg fp --rate 8 -n 1 -size=ref --noreportable --output_format all
全項目測試
runspec -c test.cfg --rate 8 --noreportable --size=ref --tune=base -o text,screen,pdf -I --iterations=1 all
1)ref:測試規(guī)模
? ?測試規(guī)模有test,ref,train其中test最小跑的時間最短,如果測試編譯器正確性的時候可以用test規(guī)模,但是想測試性能時候用ref
2)iterations=3次:測試次數(shù)
編譯器性能穩(wěn)定時候測一次就行,也可以寫成n 3;
如果想得到加權(quán)統(tǒng)計的結(jié)果,也就是常說的cpu的spec分數(shù),需要設(shè)置iterations大于等于3。
3) all 測試范圍: 表示進行fp和int測試
將all替換成int 或 fp 進行定點和浮點的測試;將all替換成456/444等文件編號,表示對某一測試項進行單獨測試
對于CPU的SPEC測試,默認這一項是all,但是對于其中的某一項測試分數(shù)不滿意,可通過指定此測試項的編號,進行單獨測試。測試也會得到一個分數(shù),做單項的性能調(diào)優(yōu)時候,可以用得到。
4)輸出格式:-o text,screen,pdf
表示測試完成,生成報告的格式,依次分別是txt,屏幕顯示和pdf格式,保存目錄在spec解壓目錄result中。
5)noreportable && reportable :
表示檢測/不檢測生成的二進制文件是否修改過。
–reportable 如果原來生成的二進制文件被修改了,則運行時會自動重新編譯生成二進制文件,確保運行的程序是原始的程序。
6)測試核數(shù):-r 設(shè)置測試的CPU核心數(shù)目;
7)測試模式:-tune = base 基準測試;-tune = peak 峰值測試;-tune默認是base 可以選擇base, peak, or all ,Report 首先是base,其次是peak.
8)-I : 表示測試中,如遇報錯,略過錯誤繼續(xù)測試;文章來源:http://www.zghlxwxcb.cn/news/detail-736126.html
注意測試前清空緩存:
?文章來源地址http://www.zghlxwxcb.cn/news/detail-736126.html
echo 3 > /proc/sys/vm/drop_caches //清理緩存
到了這里,關(guān)于SPEC2006學(xué)習(xí)使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!