跳转至

Spec all

总览

id int float
1 400.perlbench 410.bwaves
2 401.bzip2 416.gamess
3 403.gcc 433.milc
4 429.mcf 434.zeusmp
5 445.gobmk 435.gromacs
6 456.hmmer 436.cactusADM
7 458.sjeng 437.leslie3d
8 462.libquantum 444.namd
9 464.h264ref 447.dealII
10 471.omnetpp 450.soplex
11 473.astar 453.povray
12 483.xalancbmk 454.calculix
13 459.GemsFDTD
14 465.tonto
15 470.lbm
16 481.wrf
17 482.sphinx3

总共12 个int + 17个浮点= 29个,重点关注int

DCache与预取

参考论文:

A Reusable Characterization of the Memory System Behavior of SPEC2017 and SPEC2006

https://dl.acm.org/doi/fullHtml/10.1145/3446200

是否带有预取,cache 大小(单级cache总大小),对应的MPKI

对于spec 2006, gcc, mcf, omnetpp, bzip2应该都有相应的下降才对

我应该分析下gem5: DCache MPKI,L1I/L1D=128KB,L2=1M,L3=16MB

其中mcf: L1D = 300, L2 = 90, L3=192,相对图中太高了

omnetpp 随着Cache大小怎大还可以下降,目前是平均40,应该能降到20多

修改L2=2M试试,omnetpp,mcf应该有收益

关于一般预取器敏感性,我们看到 gcc、lbm、mcf、xalancbmk 和 bwaves,wrf 从预取中获得了显着的收益,而 cactuADM-cactuBSSN、omnetpp、leela、x264 和 perlbench 收益甚微。

mcf 和 lbm 都受益于小缓存大小的预取,其中差异可能高达 40 MPKI

对于spec2006, 其中gobmk 在从64k 变为128k 情况下,MPKI 下降显著

图 4.聚合应用程序缓存和预取器敏感度以及 SPEC 2006 和 SPEC 2017 之间的变化。缓存工作集大小显示在 x -轴,同时 y -axis 显示预取器无益处点 (PoNB)。

能看出:mcf, lbm, cactusBSSN, wrf, gcc 对预取要求高

ICache与分支预测

论文:Performance Characterization of SPEC CPU 2006 Benchmarks on Intel Core 2 Duo Processor

能看出mcf 对L1 DCache miss 很大,目前gem5: l1D MKPI=300!

对分支预测来说,astar, gobmk, sjeng 的MPKI比较大,达到10了

但gem5这里测试,MPKI: astar = 23, gobmk = 15 -> 11

bzip2, omnetpp, sjeng, soplex, 为7, 举例图中还有差异!说明分支预测还有空间

mcf =17, 和论文中差异也很大?

论文: SPEC CPUint2006 characterization, Rafael Rico, Virginia Escude, 2009

占比内存一直比较高,大约20MB, 超过dcache=64KB, L2=1M

perf record 没有什么热点函数

   5.71%  445.gobmk  445.gobmk          [.] fastlib                                                                                                                                                                                            
   5.33%  445.gobmk  445.gobmk          [.] scan_for_patterns                                                                                                                                                                                  
   5.02%  445.gobmk  445.gobmk          [.] order_moves.lto_priv.0                                                                                                                                                                             
   4.50%  445.gobmk  445.gobmk          [.] incremental_order_moves                                                                                                                                                                            
   3.89%  445.gobmk  445.gobmk          [.] undo_trymove                                                                                                                                                                                       
   3.65%  445.gobmk  445.gobmk          [.] do_play_move                                                                                                                                                                                       
   3.38%  445.gobmk  445.gobmk          [.] compute_connection_distances