Slowdowns due to Dynamic Binary Instrumentation when generating Basic Block Vectors for the SPEC CPU Benchmarks

These results were generated on our domori cluster. The machines are all dual-core dual-processor Intel Pentium D machines with 4GB of RAM running at 3.46GHz. The operating system was Linux 2.6.23.9-perfmon and the filesystem access was run over NFSv3 over gigabit ethernet. The benchmarks were run multiple time to account for noise in the environment, and the fastest result was chosen.

The bencmarks were all compiled as 32-bit x86 Linux binaries using gcc version 4.1.0 with -O2 optimization on a SuSE 10.1 box.

Summary Results

DBI tool Average Slowdown Factor
CPU 2000 CPU 2006
Total Int FP Total Int FP
Pin 15.33 19.36 6.47 11.33 13.41 7.69
Qemu 27.71 27.92 27.25 24.27 19.61 32.44
Valgrind 38.61 41.91 31.35 31.10 30.24 32.69

Detailed Results

Pin

Using the Pinpoints tool from pin kit pin-2.0-10520-gcc.4.0.0-ia32-linux

Pin SPEC CPU 2000

Note: in their 2005 PLDI paper the Pin developers say the slowdowns in gcc and perlbmk are due to the lack of code reuse and high number of indirect jumps.

benchmarknative timeDBI'd timeslowdown factor
swim3:1810:163.11
applu8:1828:183.41
lucas4:5017:093.55
mgrid3:4615:274.10
mcf2:4514:225.22
equake1:277:595.51
art.4701:5210:385.70
sixtrack4:4027:085.81
facerec3:5324:116.23
fma3d5:2133:356.28
ammp4:3529:436.48
apsi4:2830:166.78
art.1101:279:556.84
vpr.route1:3010:537.26
mesa3:1324:367.65
twolf3:1534:1710.55
perlbmk.makerand0:040:4711.75
perlbmk.diffmail0:326:4412.62
galgel2:2330:1512.69
vpr.place1:0714:2712.94
wupwise3:2043:1212.96
eon.kajiya0:5413:0914.61
bzip2.source0:4711:4014.89
bzip2.graphic0:5915:1215.46
eon.rushmeier0:318:0615.68
crafty1:4226:4115.70
gzip.log0:174:2815.76
eon.cook0:379:5216.00
bzip2.program0:4813:0016.25
parser3:2156:5416.99
gzip.graphic0:3510:0017.14
gzip.random0:288:3518.39
gzip.program0:5317:2219.66
vortex.31:0320:5119.86
vortex.10:5719:0120.02
vortex.21:0121:0120.67
gzip.source0:289:4720.96
gap1:3333:2121.52
perlbmk.perfect0:145:2022.86
gcc.1660:125:0725.58
gcc.2000:3414:3025.59
perlbmk.7040:2310:3727.70
perlbmk.9570:3516:1027.71
perlbmk.8500:3717:5629.08
perlbmk.5350:2110:2329.67
gcc.scilab0:2010:0230.10
gcc.integrate0:052:3130.20
gcc.expr0:052:3330.60
Average total slowdown: 15.33 (48 total)
Average int slowdown: 19.36 (33 total)
Average fp slowdown: 6.47 (15 total)

Pin SPEC CPU 2006

benchmarknative timeDBI'd timeslowdown factor
lbm20:4834:461.67
cactusADM35:531:14:572.09
gromacs37:451:47:332.85
GemsFDTD25:001:15:163.01
zeusmp31:472:06:163.97
bwaves21:381:28:394.10
milc21:401:30:554.20
leslie3D25:111:56:144.62
mcf16:361:23:135.01
astar.BigLakes9:441:00:046.17
astar.rivers17:381:52:236.37
soplex.pds-509:261:00:256.40
gcc.expr24:2830:096.75
xalancbmk39:194:28:426.83
h264ref.foreman_baseline5:5142:387.29
namd17:102:10:377.61
wrf32:494:09:437.61
sjeng55:087:03:157.68
soplex.ref6:1248:587.90
gamess.triazolium28:003:53:398.34
omnetpp17:192:27:058.49
gamess.h2ocu26:1959:099.36
hmmer.retro24:484:10:1810.09
sphinx326:244:29:2910.21
tonto24:584:15:1910.23
bzip2.combined4:1343:4110.36
povray11:232:05:3011.02
bzip2.liberty4:0244:4911.11
bzip2.chicken2:0324:5412.15
bzip2.source4:1353:2012.65
gcc.c-typeck1:4723:1513.04
gobmk.trevorc3:0642:2113.66
gobmk.nngs7:331:43:1813.68
gcc.1661:1617:2113.70
gobmk.13x133:0042:1814.10
perlbench.checkspam2:0730:0214.19
gobmk.trevord4:0457:5614.25
gcc.g232:2635:3414.62
calculix1:04:0915:56:3114.91
hmmer.nph37:481:58:5715.25
gcc.2002:0030:3415.28
gobmk.score23:4457:0915.31
gcc.s042:0030:4315.36
libquantum28:197:20:2415.55
gamess.cytosine9:022:23:5115.92
bzip2.program4:081:07:2516.31
gcc.scilab0:5214:1016.35
bzip2.html5:151:26:4516.52
gcc.expr1:2222:4816.68
gcc.cp-decl1:1221:1517.71
dealII13:474:05:3117.81
perlbench.diffmail3:331:06:4818.82
h264ref.foreman_main2:1944:0719.04
h264ref.sss_main19:417:39:5723.37
perlbench.splitmail4:141:47:5425.49
Average total slowdown: 11.33 (55 total)
Average int slowdown: 13.41 (35 total)
Average fp slowdown: 7.69 (20 total)

Qemu

Qemu version 0.9.3 with my qemusim-0.4 patchset

Qemu SPEC CPU 2000

benchmarknative timeDBI'd timeslowdown factor
mcf2:4514:325.28
perlbmk.makerand0:040:317.75
vpr.route1:3020:0613.40
art.4701:5227:2714.71
gzip.log0:174:1715.12
perlbmk.diffmail0:328:2315.72
bzip2.source0:4713:3517.34
gzip.program0:5315:3117.57
bzip2.graphic0:5917:4718.08
gzip.source0:288:2718.11
facerec3:531:11:2118.37
art.1101:2727:0218.64
gzip.random0:288:5719.18
bzip2.program0:4815:3819.54
gzip.graphic0:3511:2419.54
lucas4:501:34:4019.59
applu8:182:53:1320.87
gcc.integrate0:051:4921.80
fma3d5:212:04:3323.28
swim3:181:16:5223.29
ammp4:351:50:2724.10
equake1:2735:5524.77
gcc.expr0:052:0625.20
gcc.1660:125:0925.75
galgel2:231:01:4225.89
vpr.place1:0730:2727.27
parser3:211:33:2127.87
gcc.2000:3416:5529.85
mgrid3:461:53:4130.18
perlbmk.5350:2110:4230.57
gcc.scilab0:2010:2031.00
perlbmk.7040:2312:0131.35
mesa3:131:45:2732.78
perlbmk.perfect0:147:4933.50
perlbmk.9570:3519:4433.83
perlbmk.8500:3720:5733.97
apsi4:282:38:4535.54
twolf3:151:57:0936.05
vortex.10:5738:0840.14
gap1:331:02:4140.44
vortex.31:0342:4640.73
eon.rushmeier0:3121:4342.03
eon.kajiya0:5439:2243.74
wupwise3:202:29:0444.72
crafty1:421:16:4845.18
vortex.21:0145:5645.18
eon.cook0:3730:2449.30
sixtrack4:404:02:5752.06
Average total slowdown: 27.71 (48 total)
Average int slowdown: 27.92 (33 total)
Average fp slowdown: 27.25 (15 total)

Qemu SPEC CPU 2006

benchmarknative timeDBI'd timeslowdown factor
mcf16:361:30:065.43
gcc.expr24:2833:117.43
astar.BigLakes9:441:14:217.64
astar.rivers17:382:15:557.71
xalancbmk39:195:22:068.19
soplex.pds-509:261:52:0111.87
sjeng55:0811:02:0412.01
hmmer.retro24:485:11:1712.55
bzip2.liberty4:0250:5812.64
bzip2.combined4:1359:5814.22
bzip2.chicken2:0329:2114.32
gcc.g232:2635:2614.56
gcc.1661:1619:0915.12
soplex.ref6:121:34:3015.24
omnetpp17:194:43:4216.38
gcc.c-typeck1:4731:0917.47
bzip2.source4:131:16:1318.08
milc21:406:31:5418.09
h264ref.foreman_baseline5:511:47:2918.37
hmmer.nph37:482:24:5618.58
libquantum28:198:50:1518.73
gcc.2002:0040:3120.26
gcc.scilab0:5217:4120.40
gcc.cp-decl1:1224:3620.50
zeusmp31:4711:03:0320.86
gcc.s042:0042:2521.21
leslie3D25:119:02:3321.54
perlbench.checkspam2:0746:4622.09
bzip2.program4:081:33:3322.63
gobmk.score23:441:25:1022.81
GemsFDTD25:009:37:3823.11
bwaves21:388:37:1523.91
gobmk.trevorc3:061:15:3024.35
gobmk.13x133:001:13:0724.37
gobmk.nngs7:333:15:3025.89
gobmk.trevord4:041:47:3326.45
wrf32:4915:16:5927.94
tonto24:5812:24:1629.81
gcc.expr1:2240:4629.83
h264ref.foreman_main2:191:10:0530.25
h264ref.sss_main19:4110:04:5930.74
gromacs37:4520:02:2431.85
calculix1:04:0934:16:4332.06
gamess.h2ocu26:193:27:1632.81
perlbench.splitmail4:142:21:5333.52
perlbench.diffmail3:331:59:1833.61
gamess.triazolium28:0015:49:2433.91
lbm20:4812:17:5435.48
povray11:236:49:5536.01
bzip2.html5:153:19:0437.92
gamess.cytosine9:025:49:0138.64
cactusADM35:5324:55:2841.68
namd17:1013:06:4745.83
sphinx326:2427:14:4561.92
dealII13:4715:13:0166.24
Average total slowdown: 24.27 (55 total)
Average int slowdown: 19.61 (35 total)
Average fp slowdown: 32.44 (20 total)

Valgrind 3.3.0 with my exp-bbv-0.5 tool

Valgrind SPEC CPU 2000

benchmarknative timeDBI'd timeslowdown factor
mcf2:4522:018.01
perlbmk.makerand0:040:4310.75
art.4701:5220:0810.79
art.1101:2718:1512.59
lucas4:501:23:0617.19
vpr.route1:3029:1219.47
applu8:183:12:1323.16
facerec3:531:30:0223.18
swim3:181:19:1424.01
ammp4:351:52:0324.45
perlbmk.diffmail0:3213:4325.72
fma3d5:212:25:3827.22
gzip.log0:177:4327.24
equake1:2741:2428.55
bzip2.source0:4723:0329.43
bzip2.graphic0:5930:0430.58
gzip.source0:2815:2032.86
bzip2.program0:4826:5033.54
mgrid3:462:06:2333.55
gzip.program0:5329:5733.91
gzip.graphic0:3519:5434.11
parser3:211:55:0634.36
gzip.random0:2816:2235.07
gcc.integrate0:053:0537.00
gcc.expr0:053:1539.00
twolf3:152:09:5639.98
apsi4:283:06:1641.70
vpr.place1:0748:0343.03
galgel2:231:43:0843.27
gcc.1660:129:0845.67
perlbmk.perfect0:1410:5146.50
gcc.2000:3428:0949.68
gcc.scilab0:2016:4850.40
perlbmk.7040:2319:3050.87
perlbmk.5350:2117:5351.10
wupwise3:202:51:2751.44
gap1:331:20:3451.98
mesa3:132:51:1553.24
eon.rushmeier0:3127:5454.00
perlbmk.9570:3531:5854.80
sixtrack4:404:21:1455.98
eon.kajiya0:5450:4956.46
vortex.10:5753:4956.65
vortex.31:0359:3756.78
perlbmk.8500:3735:3857.78
crafty1:421:44:3561.52
eon.cook0:3738:0961.86
vortex.21:011:03:5662.89
Average total slowdown: 38.61 (48 total)
Average int slowdown: 41.91 (33 total)
Average fp slowdown: 31.35 (15 total)

Valgrind CPU 2006

benchmarknative timeDBI'd timeslowdown factor
zeusmp31:47n/an/a
mcf16:362:29:008.98
astar.BigLakes9:442:04:5212.83
gcc.expr24:2857:2712.86
xalancbmk39:198:38:2813.19
astar.rivers17:383:54:1513.28
gamess.triazolium28:007:44:0016.57
soplex.pds-509:262:48:0417.82
sjeng55:0817:15:4018.78
milc21:407:02:5919.52
tonto24:588:32:1120.51
calculix1:04:0924:05:0922.53
bzip2.liberty4:021:33:0323.07
bzip2.combined4:131:37:3123.13
omnetpp17:196:51:3223.77
soplex.ref6:122:31:1824.40
hmmer.retro24:4810:07:4324.50
gcc.1661:1631:3624.95
bzip2.chicken2:0351:4525.24
lbm20:488:45:2025.26
gcc.g232:261:04:0326.32
leslie3D25:1111:19:5027.00
GemsFDTD25:0011:21:5027.27
h264ref.foreman_baseline5:512:39:4627.31
gcc.c-typeck1:4752:4529.58
bzip2.source4:132:06:2629.98
bwaves21:3810:53:0330.19
gcc.expr1:2241:5530.67
gcc.scilab0:5227:1331.40
gcc.s042:001:03:5031.92
perlbench.checkspam2:071:08:5432.55
gcc.2002:001:05:3532.79
gcc.cp-decl1:1239:4533.12
libquantum28:1916:41:1235.36
hmmer.nph37:484:38:0935.66
gobmk.trevorc3:061:52:1836.23
gromacs37:4522:53:4636.39
gobmk.score23:442:16:0636.46
bzip2.html5:153:11:3536.49
gobmk.13x133:001:49:3936.55
wrf32:4920:40:4337.81
bzip2.program4:082:36:3337.88
sphinx326:2417:03:2638.77
gobmk.nngs7:334:54:0538.95
gobmk.trevord4:042:38:2538.95
cactusADM35:5326:25:0744.17
gamess.h2ocu26:194:40:3544.42
povray11:238:26:2344.48
h264ref.foreman_main2:191:43:3744.73
h264ref.sss_main19:4115:15:2546.51
dealII13:4710:46:2946.90
namd17:1013:31:5747.30
perlbench.diffmail3:332:54:1549.08
gamess.cytosine9:027:29:2349.75
perlbench.splitmail4:143:54:1555.33
Average total slowdown: 31.10 (54 total)
Average int slowdown: 30.24 (35 total)
Average fp slowdown: 32.69 (19 total)

Back to BBV Research Page