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