基於RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006環境搭建以及測試流程(之一)——介紹、安裝準備、安裝、config文件以及運行腳本介紹

版權聲明:本文爲博主原創文章,未經博主允許不得轉載

本次利用SPECCPU2006測試工具來進行Intel CPU Xeon E7-**** v4的測試以及調優,計劃在機器I840-G**測試。本次測試主要從硬件調優和操作系統調優兩個方面進行。經過最終的測試,SPECint_rate_base和SPECfp_rate_base結果均超過Intel的預期。其中調優過程尤爲重要,爲後續繼續的測試達下基礎。下面記錄中間的調優過程。

  1. SPECCPU2006簡介
  2. SPECCPU2006安裝和使用
  3. config文件以及運行腳本介紹
  4. 測試準備以及基準值測試
  5. 硬件調優過程
  6. OS調優過程
  7. 結果提交過程問題
  8. FAQ
  9. 自動化測試腳本
  10. Numa、memory interleaving、cgroup等相關內容學習
  11. 常用監控工具使用,最好寫成自動化腳本時稱log文件,可以用來觀察。
  12. top、sar、vmstat、oprofile、重拾pcp功能等

一、SPECCPU2006簡介

SPECCPU2006是SPEC組織(SPEC,Standard PerformanceEvaluation Corporation)推出的CPU評估軟件。SPECCPU2006包括了CINT2006(整型)和C FP2006(浮點)兩個子項目,前者用於測量和對比整數性能,而後者則用於測量和對比浮點性能。最終的批判指標(bench)主要有四個SPECCPUint_speed_2006、SPECCPUfp_speed_2006、SPECCPUint_rate2006、SPECCPUfp_rate2006。其中speed表示考慮的則是CPU的運行速度,即單個任務所需要的時間;rate表示吞吐率,即一定時間內完成的任務數量。作爲Intel最看重的數據是SPECCPUint_rate2006和SPECfp_rate2006,這兩個結果能夠真正表達CPU和主板搭配下的實際性能。

SPECCPU測試中,測試系統的CPU、內存和編譯器(SPEC CPU提供的是源代碼,並且允許測試用戶進行一定的編譯優化)都會影響最終的測試性能,而I/O(磁盤)、網絡、操作系統和圖形子系統對於SPECCPU2006的影響非常的小。

由上可見,影響最終結果的主要是:硬件(CPU、內存)、編譯器優化參數。但是,爲了進一步提高最終的結果,操作系統可以進行一些調優來進一步提高結果。

SPECCPU2006包括12個整型、17個浮點測試的bench。具體可以參見如下表

 

CIN2006包含12個benchmark,其中9個利用C程序完成、3個利用C++完成。具體如下表所示:

 

 

400.perlbench

C

PERL Programming Language

401.bzip2

C

Compression

403.gcc

C

C Compiler

429.mcf

C

Combinatorial Optimization

445.gobmk

C

Artificial Intelligence: go

456.hmmer

C

Search Gene Sequence

458.sjeng

C

Artificial Intelligence: chess

462.libquantum

C

Physics: Quantum Computing

464.h264ref

C

Video Compression

471.omnetpp

C++

Discrete Event Simulation

473.astar

C++

Path-finding Algorithms

483.xalancbmk

C++

XML Processing

 

CFP2006包含17個benchmark,其中4個用C++,3個使用C,6個使用Fortran,4個混合使用C語言和Fortran語言。詳細如下表所示:

 

410.bwaves

Fortran

Fluid Dynamics

416.gamess

Fortran

Quantum Chemistry

433.milc

C

Physics: Quantum Chromodynamics

434.zeusmp

Fortran

Physics/CFD

435.gromacs

C/Fortran

Biochemistry/Molecular Dynamics

436.cactusADM

C/Fortran

Physics/General Relativity

437.leslie3d

Fortran

Fluid Dynamics

444.namd

C++

Biology/Molecular Dynamics

447.dealII

C++

Finite Element Analysis

450.soplex

C++

Linear Programming, Optimization

453.povray

C++

Image Ray-tracing

454.calculix

C/Fortran

Structural Mechanics

459.GemsFDTD

Fortran

Computational Electromagnetics

465.tonto

Fortran

Quantum Chemistry

470.lbm

C

Fluid Dynamics

481.wrf

C/Fortran

Weather Prediction

482.sphinx3

C

Speech recognition

二、SPECCPU2006安裝和使用

2.1安裝準備工作

安裝此工具必須要在一定的操作系統情況下,speccpu支持windows、linux。本文主要安裝國產操作系統NeoKylinV7.0Update2操作系統。同時,speccpu還需要一些額外的開發包及庫才能正常的使用,因此需要安裝一些額外的包。

由上介紹可知,SPECCPU2006給用戶的是源碼包,需要用戶進行編譯,因此需要安裝合適的編譯器進行編譯。由於測試的CPU大部分是intel的,因此本文主要介紹intel公司的編譯器icc、ifort的安裝和使用。

2.1.1 操作系統安裝

本次測試使用操作系統信息如下所示,使用NeoKylin V7Update2-b04

#cat /etc/.productinfo

[root@sky 桌面]# cat /etc/.productinfo

NeoKylin Linux Advanced Server

release V7Update2/(Potassium)-x86_64

b04.lic/20151230

[root@sky 桌面]# cat /etc/neokylin-release

NeoKylin Linux Advanced Server releaseV7Update2 (Potassium)

安裝過程

選擇最小化作爲一個基準,用來進行後續的比較而用,其中各種缺的包可以臨時安裝即可。不過spec安裝需要一些額外的static包,需要配置遠程的yum源才能正常使用。

本次安裝使用Lagency模式的最小化安裝,標準化分區、關閉kdump服務。示例圖像如下所示,選擇其中的minimor install,不選擇其他任何的額外包。

           

其中分區包括500MB的boot分區,4G的swap分區,500GB的根分區,且均採用xfs文件系統。

安裝的方式有多種,本次測試主要兩種:1.光盤安裝;2.利用BMC虛擬機掛載功能掛載iso鏡像文件進行遠程安裝。

硬件信息:

1.2TB raid0 兩塊硬盤;

2.4CPU 24cores/CPU

3.內存:64*16GB=8(內存板)*4(channel)*2(條)*16

 

2.1.2 安裝必須的軟件並關閉無用的服務

安裝必須安裝包

系統安裝完成後,則安裝必須的開發包或庫包。根據以往經驗,得到如下必須安裝包列表

glibc、glibc.i686、glibc-devel、glibc-devel.i686、glibc-static、glibc-static.i686、gcc、libgcc、 libgcc.i686、gcc-c++.x86_64、compat-gcc*.x86_64、gcc-objc++*.x86_64、libstdc++、libstdc++*.i686、libstdc++-devel、libstdc++-devel*.i686、nss-softokn-freebl、nss-softokn-freebl-devel、 nss-softokn-freebl*.i686、nss-softokn-freebl-devel*.i686、numactl lsb

系統中默認yum配置就可以正常使用,因此利用yum install腳本完成安裝,如下代碼所示:

#!/usr/bin/sh

packagelist={glibc glibc.i686 glibc-develglibc-devel.i686 glibc-static glibc-static.i686 gcc libgcc libgcc.i686gcc-c++.x86_64 compat-gcc*.x86_64 gcc-objc++*.x86_64 libstdc++ libstdc++*.i686libstdc++-devel libstdc++-devel*.i686 nss-softokn-freeblnss-softokn-freebl-devel nss-softokn-freebl*.i686nss-softokn-freebl-devel*.i686 numactl lsb}

for package in $packagelist

do

       yuminstall -y $package

done

如果過程中有需要的其他安裝包,則可以利用yum進行安裝即可。

關閉額外服務

爲了減少系統額外的干擾,此次實驗需要關閉一些額外的服務。具體列表如下所示:

同時需要修改/etc/selinux/config文件,將selinux修改爲disabled模式。

#!/usr/bin/sh

#disable some service

systemctl disable auditd.service

systemctl disable libvirtd

systemctl disable firewalld

systemctl disable irqbalance

systemctl disable postfix

systemctl disable crond

此處利用“systemctl list-unit-files |grep enable >test”輸出到本地的一個文件,然後利用vim工具進行替換最終完成如上的腳本。

2.1.2安裝icc以及ifort編譯器

由上介紹可知,speccpu的安裝需要編譯器,因此安裝icc成爲必須的準備工作之一。

下載:https://software.intel.com/zh-cn/try-buy-tools?wapkw=parallel_studio&_ga=1.25259578.648669715.1462956291

註冊一個賬戶,選擇免費使用的版本進行下載。兩種下載方式,一種將所有的離線文件都下載到本地;另外一種則是下載一個在線安裝的腳本進行在線安裝,可以只下載部分需要內容。parallel_studio_xe_2016_update2_online.sh

 

本文使用第一種方式,將整個離線包全部下載到本地。同時安裝時也可以使用兩種方法,一種是互動安裝,將需要輸入的選項輸入到終端,完成安裝。另外一種則是利用silent.cfg文件進行靜默安裝。

下載完成之後,安裝。

1)解壓到本地:

#tar xfparallel_studio_xe_2016_update2.tgz

安裝方式一:

#sh install.sh

首先,按下Enter,它首先會檢查系統必須條件。提示如下:

#Checking the prerequisites. It can takeseveral minutes. Please wait...

接着,檢查完成則會提示如下,此時按下q則繼續,不用看所有內容。

--More--[Press space to continue, 'q' toquit.]

然後會提示是否接受licence信息,提示如下所示,輸入accept則可以完成。

Do you agree to be bound by the terms andconditions of this license agreement?

 

Type 'accept' to continue or 'decline' togo back to the previous menu:

接着會提示激活軟件的方式,選擇試用或者稍後激活。一般爲第二項,輸入2。提示如下所示:

1. I want to activate my product using aserial number [default]

 

2. I want to evaluate Intel(R) ParallelStudio XE 2016 Update 2 Cluster Edition

 

for Linux* or activate later

 

3. I want to activate by using a licensefile, or by using Intel(R) Software

 

License Manager

 

此次檢查過程比較長,等候時間較長。完成後會提示是否參加促進intel軟件。一般可以選擇不參加2.

--------------------------------------------------------------------------------

 

1. Yes, I am willing to participate andimprove Intel software. (Recommended)

 

2. No, I don't want to participate in theIntel® Software Improvement Program at

 

this time.

 

完成後則會提示選擇安裝,此處尤爲重要,可以選擇安裝模塊,選擇2.Installation target,可以輸入安裝目錄;/opt/intel

This product can be installed on clusternodes.

 

--------------------------------------------------------------------------------

 

1. Finish configuring installation target[default]

 

 

2. Installation target                           [ Current system only ]

 

輸入Enter後則會提示接下來需要安裝的文件信息,部分如下所示:

Component(s) selected:

 

   Intel(R) MPI Library 5.1 Update 3                                      763MB

 

       Intel MPI Benchmarks                                                   

 

       Intel MPI Library for applications running on Intel(R) 64Architecture 

 

       Intel MPI Library for applications running on Intel(R) ManyIntegrated 

 

Core Architecture

 

 

   Intel(R) Trace Analyzer and Collector 9.1 Update 2                     424MB

 

       Intel(R) Trace Analyzer for Intel(R) 64 Architecture                   

 

       Intel(R) Trace Collector for Intel(R) 64 Architecture                  

 

       Intel(R) Trace Collector for Intel(R) Many Integrated Core Architecture

 

   Intel(R) Cluster Checker 3.1 Update 2                                  152MB

 

       Cluster Checker common files                                           

 

       Cluster Checker Analyzer                                               

 

       Cluster Checker Collector                                              

 

       Cluster Checker Database                                               

 

 

看完提示信息之後則是正式選擇安裝,尤爲重要的一點,選擇2.Customize installation,則可以選擇安裝哪部分軟件。

1. Start installation Now [default]

 

2. Customize installation

 

此處選擇安裝的架構,默認只有Intel(R) 64,但是speccpu中需要IA-32架構,因此需要在此處選擇IA-32。按下1再按下Enter則可以完成選擇。

Target Architecture(s) of yourapplications:

 

--------------------------------------------------------------------------------

 

1. [ ]   IA-32

 

2. [x]   Intel(R) 64

 

 

3. Finish architecture selection[default]

 

選完之後

Target Architecture(s) of yourapplications:

 

--------------------------------------------------------------------------------

 

1. [x]    IA-32

 

2. [x]   Intel(R) 64

 

 

3. Finish architecture selection[default]

 

 

此時完成選擇之後則可以選擇3完成架構選擇。並選擇開始安裝。根據提示則可以看到是否安裝完成。

Step 7 of 7 | Complete

 

--------------------------------------------------------------------------------

 

Thank you for installing and for usingIntel(R) Parallel Studio XE 2016 Update 2

 

Cluster Edition for Linux*.

 

由上述過程可見,比較複雜,因此,建議實際使用中使用silent.cfg來進行靜默安裝。

2)利用install.sh腳本進行安裝或者修改silent.cfg文件,利用如下方式進行靜默安裝:

#sh install.sh -s silent.cfg &

其中silent.cfg主要需要修改如下幾項:

PSET_INSTALL_DIR=/opt/intel (選擇安裝路徑)

COMPONENTS=ALL(選擇所有組件)

ACTIVATION_TYPE=trial_lic (試用)

ARCH_SELECTED=ALL(架構處選擇ALL安裝IA32和INTEL64)、

具體參考附件:silent.cfg

 

完成安裝後,需要配置環境變量;

#cat “source/opt/intel/bin/compilervars.sh intel64”>> ~/.bashrc

#source ~/.bashrc

#icc -v

結果顯示:icc version 16.0.2 (gcc version 4.8.5 compatibility)

如果結果沒有提示錯誤,則表示安裝完成。

2.2 SPECCPU安裝

在安裝好操作系統,配置好icc編譯器之後則可以正式安裝SPECCPU了。一般speccpu2006以iso形式存在。具體安裝方式如下所示

1)掛載cpu2006-1.2.iso

#mount -o loop cpu2006.iso /mnt

2)運行安裝腳步進行安裝

#sh install.sh

提示信息如下,輸入安裝目錄:/cpu2006

SPEC CPU2006 Installation

 

 

Top of the CPU2006 tree is '/mnt'

 

Enter the directory you wish to install to(e.g. /usr/cpu2006)

 

/cpu2006

 

根據系統的情況,最終選擇工具集:linux-suse10-amd64,提示信息如下:

Attempting to install the linux-suse10-amd64toolset...

很快則是解壓所有的bench最終看到如下提示則表示完成安裝:

Installation successful.  Source the shrc or cshrc in

 

/cpu2006

 

to set up your environment for thebenchmark. 

驗證是否安裝完成:

#source /cpu2006/shrc

#runspec –help

如果有選項的提示,則表示安裝完成。部分顯示結果如下:

[root@spec cpu2006]# runspec --help 

Usage: /cpu2006/bin/runspec [options] 

If a long option shows an argument asmandatory, then it is mandatory 

for the equivalent short option also.  Similarly for optional arguments. 

Optional arguments are enclosed in []. 

When using long arguments, the equals sign('=') is optional.

 

 

Option list (alphabetical order): 

 -aACTION                      Same as'--action ACTION' 

 --action=ACTION                Set the action for runspec totake. ACTION is 

                                  one of: build, buildsetup, clean,clobber, 

                                  configpp,scrub, report, run, setup, trash, 

                                  validate 

 --nobuild                      Do not attempt to buildbinaries

 -cFILE                        Same as '--config FILE'

  -CUSERS[,USERS...]            Same as'--copies USERS[,USERS...] 

 --check_version                Check the suite version evenfor non- 

                                  reportableruns 

最終,在操作系統正常安裝,必須軟件包安裝成功,icc編譯器成功安裝的情況下,完成了speccpu2006的安裝,接下來則可以正常的去使用了。runspec命令是跑測試的最重要工具。

三、config文件介紹

3.1 測試需要準備的工作

安裝完成speccpu2006後進入安裝目錄/cpu2006後可以看到其下主要有如下文件:

[root@spec cpu2006]# ls

 

Docs     LICENSE      MANIFEST  README.txt SUMS.tools  bin     cshrc       install.sh              result  shrc.bat  uninstall.sh

 

Docs.txt LICENSE.txt  README    Revisions  benchspec   config  install.bat redistributable_sources  shrc    tmp      version.txt

 

文件

描述

Docs/Docs.txt

文檔,包括各種userguide等信息十分有用

LICENCE/LICENCE.txt

序列號信息

README/README.txt

speccpu簡介

SUMS.tools

各種工具列表

Bin/

一些工具(runspec)所在目錄

Cshrc/shrc.bat/shrc

設置環境變量腳本,linux下shrc

Install.sh/uninstall.sh/install.bat

安裝和卸載腳本

Benchspec/

存放bench的目錄十分重要,運行過程文件均在其中.包括測試所需數據、源碼、二進制包等

Version.txt

版本信息

Result/

運行結果和日誌目錄

Config/

config文件以及flag文件所在目錄

 

1)config文件

如上所述,進入config文件夾中會有一些示例配置文件,一個flags文件夾,其下包含一些示例xml文件作爲flag文件。config文件是運行過程中十分重要的文件,編譯參數、運行腳本、軟硬件描述等內容均在其中。Config文件更加詳細的信息請參考:《SPECCPUconfig詳解.odt》。其中詳細介紹了config文件包含五個部分,並介紹了每個部分如何進行書寫。

本文以實際使用過程中使用的例子來具體介紹config文件。這次測試使用的config文件是:cpu2006-1.2-ic16.0u2-lin64-ws-avx2-rate-20160328.cfg。根據名稱可以發現其爲cpu2006v1.2測試工具,使用的icc爲16.02,64位的操作系統,指令集爲avx2,測試對象爲rate,日期爲20160328。下面開始利用註釋來逐段解讀config文件。

 

如下爲config文件最開始的一段,爲一段註釋文件。

############################################################################

 

# This is a sample config file. It wastested with:                                                             

 

#                                                                                                               

 

#     Compiler name/version:       IntelCompiler 16.0u2

  #編譯器版本

#     Operating system version:   64-Bit NeoKylin Advanced Linux V7Update2 #os系統

 

#     Hardware:                 Intelprocessors supporting AVX2

#CPU指令集AVX2

#                                                                                                               

 

############################################################################

 

# SPEC CPU2006 Intel Linux64 config file

 

# 20160328 Intel Compiler 16.0 forLinux64

 

############################################################################

 

接下來爲主要內容:

action      = validate

    #runspec參數,默認,編譯,運行,結果正確性檢查,報告生成

tune        = base,peak

  #測試範圍既包括基準測試也包括峯值測試,和runspec 加入                                    #     --tune=all一樣,

接下來內容,關鍵爲一個日期定義和fail_build,如果修改爲0,則需要修改version日期,否則會出現報錯。

%define version 20160328

 

    ext         = cpu2006-1.2-ic16.0u2-lin64-ws-avx2-rate-%{version}

 #可執行文件擴展名

    #

 

    # vvvvvvvvvvvv # do not change unless you read NOTE above

 

      fail_build=1 # do not change unless you read NOTE above

 

    # ^^^^^^^^^^^^ # do not change unless you read NOTE above

 

    #

 

    ########################################################

 

    #

 

重要內容,如下所示:

PATHSEP     = /

      #路徑

check_md5=1

          #使用MD5散列來驗證可執行文件同配置文件匹配,如果不匹配,重新編譯

reportable=1

                       #  遵循報告規則,生成規範的報告文件

bench_post_setup=sync

  #在每個benchmark的運行目錄配置完成後,都執行命令:sync將內存緩衝區內的數據寫入磁盤。

parallel_test=0

    #設置並行進行testtrain workloadbenchmark二進制文件驗證正確性工作的數量

mean_anyway=1

  #即使測試過程有invalid狀態也要計算結果值。

sysinfo_program = specperl$[top]/config/sysinfo.rev6914

  #specperl獲取軟硬件信息的腳本

 

 

flagsurl1=Intel-ic16.0-official-linux64.xml

  #flag文件的文件名稱,默認目錄在/cpu2006

%ifdef %{default-platform-flags}

      #如果runpsec中定義了default-platform-flags參數則

flagsurl2=Default-Platform-Flags.xml

       #利用另外一個flag文件Default-Platform-Flags.xml

%endif

 

 

 

# Set some environment variables

 

preENV_LD_LIBRARY_PATH =$[top]/libs/32:$[top]/libs/64:$[top]/sh

  #庫文件目錄,其中libssh均爲smarheap庫的連接和庫文件。

 

接下來的內容主要爲針對base和peak的編譯參數。主要的規則如下:benchmark[,...]=tuning[,...]=extension[,...]=machine[,...]

每個部分的可選內容如下所示:

benchmark:

1.default
2.int
3.fp
4單個的benchmark,例如:465.tonto
5.多個benchmark,例如:450.soplex,403.gcc 
6.一個benchmark設定文件*.bset,在目錄 $SPEC/benchspec/CPU2006 下有已經默認的*.bset文件,也可以自行設定bset文件

tuning:

1.default
2.base
3.peak
4.tuning列表,例如:base,peak 

extension:

1default
2.隨意字符,例如:"cloyce-naturalblonde"
3.擴展名列表,逗號分割

machine:

1.default
2.隨意字符
3.機器type列表, (可以讓config文件運行不同的機器型號)

 

int=default=default=default:

  #根據上述表格,其表示int測試集、測試方式包含base                                                        peak。同時擴展名按照上面ext內容;機器爲默認。

CC= icc -m32-L/opt/intel/compilers_and_libraries_2016/linux/compiler/lib/ia32_lin

#C編譯方式,icc編譯,生成32位,連接庫爲後面的目錄。

CXX= icpc -m32-L/opt/intel/compilers_and_libraries_2016/linux/compiler/lib/ia32_lin

#c++編譯方式,和上述C語言編譯一致

OBJ = .o

  #編譯對象文件擴展爲.o文件

SMARTHEAP32_DIR = /sh  #32smartheap庫目錄,因此需要將其拷貝到根目錄下

SMARTHEAP64_DIR = /sh

  #64smartheap庫目錄

PORTABILITY = -D_FILE_OFFSET_BITS=64  #portability參數,文件偏移位數:64

fp=default=default=default:

   #同上int

CC= icc   -m64

                      #問題,此處-m64表示生成64位程序,爲啥這麼做呢?

CXX= icpc -m64

FC= ifort -m64

OBJ = .o

接下來爲關鍵的綁定策略。默認都會自動提交

default:

#submit關鍵字則是提交的shell命令,內容是對於每個子線程命令$command,進行綁定操作,內存爲本地綁定,核綁定則是綁定則是按順序綁定core0191$SPECCOPYNUMrunspec腳本中的全局變量。是因爲runspec腳本中看到submit關鍵詞就進行下面操作?根據文檔表示,$SPECCOPYNUM根據你的runspec命令中copy數量來定,一般從0開始,到你的核數本次測試即:0~191.

submit       = numactl --localalloc--physcpubind=$SPECCOPYNUM $command

%ifdef %{no-numa}

 #如果在runspec命令中添加了no-numa定義(define)則執行如下命令,即利用taskset來進行cpu綁定。

submit       = taskset -c $SPECCOPYNUM $command

%endif

下面是編譯器的選項

default:

 

SSE          = -xCORE-AVX2

  #使用指令集爲xCORE-AVX2,這個是目前效率最高,適合對應的intelCPU

FASTNOSTATIC =  $(SSE) -ipo -O3 -no-prec-div #優化選項,後面三項均是編譯

優化參數,詳細見icc編譯器參數

FAST         = $(SSE) -ipo -O3 -no-prec-div #同上所示

 

後續是針對每一個基準設置的不同的Portability選項,舉例如下

400.perlbench=default:

  #其他的編譯參數均爲默認的,如上所示

CPORTABILITY=      -DSPEC_CPU_LINUX_IA32

  #可移植性選項,具體意義待定

後續471、473和483三個基準使用了smartheap庫,具體使用的參數如下所示:

 

471.omnetpp,473.astar,483.xalancbmk=default:

 

EXTRA_LIBS=  -L$(SMARTHEAP32_DIR) -lsmartheap

 #鏈接到smartheap庫中

EXTRA_LDFLAGS= -Wl,-z,muldefs

              #待定

 

後續則是一些優化選項,COPTIMIZE或者CXXOPTIMIZE等選項

int=base=default=default:

 

COPTIMIZE=    $(FASTNOSTATIC)  -opt-prefetch -opt-mem-layout-trans=3 #默認編譯器後面添加了幾項-opt-prefetch,-opt-mem-layout-trans=3

 

CXXOPTIMIZE=  $(FASTNOSTATIC)  -opt-prefetch -opt-mem-layout-trans=3

 

 

 

fp=base=default=default:

#浮點優化選項

OPTIMIZE=     $(FAST) -opt-prefetch

 

COPTIMIZE=    -auto-p32 -ansi-alias-opt-mem-layout-trans=3

 

CXXOPTIMIZE=  -auto-p32 -ansi-alias -opt-mem-layout-trans=3

 

 

前面的結果均爲編譯base的參數,後續則是編譯peak的一些參數,如下所示爲整型峯值參數信息

 

int=peak=default:

 

COPTIMIZE=         -ansi-alias -opt-mem-layout-trans=3

 

CXXOPTIMIZE=       -ansi-alias -opt-mem-layout-trans=3

 

PASS1_CFLAGS     = -prof-gen:threadsafe -par-num-threads=1

 

PASS2_CFLAGS     = $(FASTNOSTATIC) -prof-use

 

PASS1_CXXFLAGS   = -prof-gen:threadsafe -par-num-threads=1

 

PASS2_CXXFLAGS   = $(FASTNOSTATIC) -prof-use

 

PASS1_LDCFLAGS   = -prof-gen:threadsafe -par-num-threads=1

 

PASS2_LDCFLAGS   = $(FASTNOSTATIC) -prof-use

 

PASS1_LDCXXFLAGS = -prof-gen:threadsafe-par-num-threads=1

 

PASS2_LDCXXFLAGS = $(FASTNOSTATIC)-prof-use

 

緊接着則是每個整型bench的單獨peak參數,同時後續則是浮點相關的參數。接下來則是一些和自己信息匹配的系統和硬件信息。如下部分示例信息所示:

 

default=default=default=default:

 

license_num      = 13

 #序號,每個廠商有自己的序列號

test_sponsor     = Intel Corporation

  #廠商

hw_avail         = Dec-9999

  #硬件獲取日期

sw_avail         = Jan-2016

   #系統獲取日期

tester           = Intel Corporation

  #測試廠商

hw_cpu_name      = Intel Trademarked CPU Name

 #cpu的名稱

 

最後則是md5校驗信息,這個信息十分重要,用於檢驗結果的正確性,編譯的準確性,如果已經生成了一組md5校驗結果,後續將config文件修改,則會要求修改failbuild,否則出現錯誤。下面畫出config文件的sections。

runspec選項

base選項(編譯器)

peak選項(編譯器)

hw和os信息(結果顯示)

md5校驗信息(結果驗證)

2)flag文件

flag腳本目的在於格式化測試結果,一般選用官網已有的一些xml文件即可,不需要手動修改內容。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章