SpecCPU2017 測試cpu性能


SpecCPU介紹見:
https://blog.csdn.net/qq_36287943/article/details/103601539
官網:https://spec.org/

1、SpecCPU2017是一套CPU子系統測試工具,包括4大種類套件共43個基准測試。4大種類套件如下:
整數型:SPECrate 2017 Integer,對應用例編號為5xx
SPECspeed 2017 Integer,對應用例編號為6xx
浮點型:SPECrate 2017 Floating Point,對應用例編號為5xx
SPECspeed 2017 Floating Point,對應用例編號為6XX

SPEC基准廣泛用於評估計算機系統的性能。SPEC CPU套件通過測量幾個程序(例如編譯器GCC,化學程序游戲和天氣程序WRF等)的運行時間來測試CPU性能。

benchmark 基准如下:(安裝目錄內)

43個benchmark的使用場景如下表所示:(官網)

2、Spec2017測試有兩種評估方式,分為speed和rate。speed是測試完成一項任務需要的時間,即速度測試;rate是測試單位時間內可以完成多少任務,即throughput(吞吐量測試)。speed和rate測試又有整數(Integer)和浮點(Floating Point)測試之分、base(基准測試)和peak(峰值測試)之分,如果是要生成報告的測試,要么是使用base,要么是base和peak一起用。可通過設置測試模式來實現:
--tune base 或者 --tune all 默認是base 可以選擇base, peak, or all ,Report 首先是base,其次是peak.

speed與rate說明 (速度與吞吐量)
speed:包含10個整形測試和10個浮點測試。speed測試只運行一次測試題,測試分數高,說明單次運行時間短。
rate:包含10個整形測試和13個浮點測試,rate測試是運行多個相同的測試題,運行數量由測試者指定,分數高,代表更大的通量(固定時間處理問題的數量)
base與peak說明 (基准與峰值)
base:base是簡單的標准的配置
peak:peak是可以提供更多個性化的配置編譯選項

Spec2017 計算rate分值的公式:ratio=copies*(reference_time/test_time)
copies:指定相同問題的數量
reference_time:SPEC給出的參考時間
test_time:測試得出的時間
說明:公式含義為,參考時間與單份測試所用時間的比值。ratio越高表示相同時間可以處理更多的問題,即機器的通量高。本測試過程中設置copies,分別為對應cpu的核數。

Spec2017 計算speed分值算法公式:ratio=reference_time/test_time
reference_time:SPEC給出的參考時間
test_time:測試得出的時間
ratio越高表示完成同樣的問題用時更少。

3、整數和浮點
cpu整數能力 (執行加法,減法,乘法)

cpu浮點能力(執行除法,也就是小數點的位移)

SpecCPU2017 工具安裝步驟
1、下載軟件(推薦使用1.0.5或更高版本的SPEC CPU 2017。本例中使用的版本為1.0.5)

a.SPEC官網下載SPEC CPU®2017測試工具。
https://www.spec.org/cpu2017/? ####官網收費下載

b.百度網盤下載cpu2017-1.05.iso
鏈接:https://pan.baidu.com/share/init?surl=kMoMJ5Ufg5oZql4HjyacAg
提取碼:5thr

2、安裝測試工具
安裝步驟參考文章:
https://support.huaweicloud.com/instance-evaluation-ecsie/ecsie_ipeg_0001.html

其中
a.在編譯源碼升級gcc時候mpc的包有點問題,需要重新官網下載源碼包
https://mirrors.sjtug.sjtu.edu.cn/gnu/mpc/mpc-1.0.3.tar.gz
b.編譯gcc時有個報錯需要用到gcc-c++ ,故需要安裝gcc-c++

3、測試步驟
a.Speccpu2017 安裝完成需執行命令

source shrc

runcpu --config=spec17-opti-gcc7.3.cfg all --tune=all –reportable

runcpu --config=spec17-opti-gcc7.3.cfg all --threads 98 --copies=98 --tune=all –reportable

--threads 線程數(貌似指定后未生效仍是1)
-- copies參數的取值必須等於當前CPU核數

部分參數說明
runspec -config=xxx.cfg -size=ref -r 4 -tune=base -noreportable -o txt,screen,pdf -I -iterations=3 all

a)配置文件:--config spec17-opti-gcc7.3.cfg,配置文件中可以包含上述命令的所有信息,但是runspec命令的優先級高。此文件在spec的解壓目錄下,由上述文章中已有可直接使用。

b)測試規模: --size ref(測試規模有test,ref,train其中test最小跑的時間最短,如果測試編譯器正確性的時候可以用test規模,但是想測試性能時候用ref)

c)測試次數:iterations=3次(編譯器性能穩定時候測一次就行),也可以寫成n 3;
tips:如果想得到加權統計的結果,也就是常說的cpu的spec分數,需要設置iterations大於等於3。

d)測試范圍: all 表示進行fp和int測試(將all替換成intrate 或 fprate 進行定點和浮點的測試;將all替換成456/444等文件編號,表示對某一測試項進行單獨測試)可選 'fprate', 'fpspeed', 'intrate', 'intspeed' or 'all'.

對於CPU的SPEC測試,默認這一項是all,但是對於其中的某一項測試分數不滿意,可通過指定此測試項的編號,進行單獨測試。測試也會得到一個分數,做單項的性能調優時候,可以用得到。

e)輸出格式:-o text,screen,pdf 表示測試完成,生成報告的格式,依次分別是txt,屏幕顯示和pdf格式,保存目錄在spec解壓目錄result中。

f)noreportable && reportable : 表示檢測/不檢測生成的二進制文件是否修改過。

--reportable 如果原來生成的二進制文件被修改了,則運行時會自動重新編譯生成二進制文件,確保運行的程序是原始的程序。

g)測試核數:-r 設置測試的CPU核心數目;

h)測試模式:-tune = base 基准測試;-tune = peak 峰值測試;-tune默認是base 可以選擇base, peak, or all ,Report 首先是base,其次是peak.

i)-I : 表示測試中,如遇報錯,略過錯誤繼續測試;

正確運行結果如下:

運行過程

Runcpu 運行時間會很長,大概3天以上

運行結果匯總在安裝目錄下的result目錄下

在運行過程中,需要查看執行完哪些用例可以查看
cat cat CPU2017.001.log.debug | grep -i success

參考資料
[1] https://blog.csdn.net/qq_36287943/article/details/103601539
[2]https://support.huaweicloud.com/instance-evaluation-ecsie/ecsie_ipeg_0001.html
[3]https://www.spec.org/cpu2017/Docs/quick-start.html
[4]https://www.spec.org/cpu2017/Docs/runcpu.html
[5]https://www.spec.org/cpu2017/Docs/overview.html

問題1:
測試Intel(Intel(R) Xeon(R) Gold 5220 CPU @ 2.20GHz 共72C) cpu時候執行命令報錯
runcpu --config=spec17-opti-gcc7.3.cfg fprate –threads 72 --tune=all –reportable
查看top 服務器的負載到80%+,查看執行過程中發現

未能發現有用信息,結合服務器cpu負載為80%+,cpu使用率搭99%,判斷可能是cpu超負載運行,從而把程序kill 掉,繼續查看執行的步驟發現 copies 指定為 96(配置文件內被寫死了) 而服務器為72核

修改執行命令加上參數
runcpu --config=spec17-opti-gcc7.3.cfg fprate –threads 72 —copies=72 --tune=all –reportable
之后 copies 顯示為72,用例可以繼續執行下去

問題2:執行命令指定的線程數未生效,暫未找到原因

其他參數見:
https://www.spec.org/cpu2017/Docs/runcpu.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM