Create a gist now

Instantly share code, notes, and snippets.

Embed
Some apples to oranges comparisons.

Benchmark

2 GHz, 2-core PowerPC 970 made in 2003 versus 4-core 0.9 GHz BCM2709 made in 2015 versus 3.5 GHz, 8-thread, 4-core i7-6700HQ made in 2015:

Matrix product:

# stress-ng --cpu 2 --cpu-method matrixprod --timeout 120 --perf --metrics-brief
stress-ng: info:  [6878] stressor      bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [6878]                          (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [6878] cpu               2169    120.08    239.74      0.02        18.06         9.05
stress-ng: info:  [6878] cpu:
stress-ng: info:  [6878]            459,656,555,342 CPU Cycles                     3.83 B/sec
stress-ng: info:  [6878]            434,341,223,476 Instructions                   3.62 B/sec (0.945 instr. per cycle)
# stress-ng --cpu 4 --cpu-method matrixprod --timeout 120 --perf --metrics-brief
stress-ng: info:  [8602] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [8602]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [8602] cpu                5016    120.20    452.13      0.47        41.73        11.08
stress-ng: info:  [8602] cpu:
stress-ng: info:  [8602]               271885482472 CPU Cycles                     2.25 B/sec
stress-ng: info:  [8602]                69872588420 Instructions                   0.58 B/sec (0.257 instr. per cycle)
# stress-ng --cpu 8 --cpu-method matrixprod --timeout 120 --perf --metrics-brief
stress-ng: info:  [2316] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [2316]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [2316] cpu              104986    120.08    951.19      0.10       874.33       110.36
stress-ng: info:  [2316] cpu:
stress-ng: info:  [2316]          2,937,538,985,592 CPU Cycles                    24.36 B/sec
stress-ng: info:  [2316]          1,835,202,934,112 Instructions                  15.22 B/sec (0.625 instr. per cycle)

N-Queens:

# stress-ng --cpu 2 --cpu-method queens --timeout 120 --perf --metrics-brief
stress-ng: info:  [6938] stressor      bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [6938]                          (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [6938] cpu              11822    120.01    239.80      0.00        98.51        49.30
stress-ng: info:  [6938] cpu:
stress-ng: info:  [6938]            479,689,620,896 CPU Cycles                     4.00 B/sec
stress-ng: info:  [6938]            564,867,805,578 Instructions                   4.71 B/sec (1.178 instr. per cycle)
# stress-ng --cpu 4 --cpu-method queens --timeout 120 --perf --metrics-brief
stress-ng: info:  [8902] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [8902]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [8902] cpu                7935    120.20    455.13      0.33        66.01        17.42
stress-ng: info:  [8902] cpu:
stress-ng: info:  [8902]               277211159436 CPU Cycles                     2.30 B/sec
stress-ng: info:  [8902]               236556614336 Instructions                   1.96 B/sec (0.853 instr. per cycle)
# stress-ng --cpu 8 --cpu-method queens --timeout 120 --perf --metrics-brief
stress-ng: info:  [1614] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [1614]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [1614] cpu               68276    120.07    952.24      0.51       568.62        71.66
stress-ng: info:  [1614] cpu:
stress-ng: info:  [1614]          2,943,361,254,824 CPU Cycles                    24.42 B/sec
stress-ng: info:  [1614]          3,291,694,817,960 Instructions                  27.31 B/sec (1.118 instr. per cycle)

FFT:

# stress-ng --cpu 2 --cpu-method fft --timeout 120 --perf --metrics-brief
stress-ng: info:  [6981] stressor      bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [6981]                          (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [6981] cpu              24675    120.00    239.70      0.00       205.62       102.94
stress-ng: info:  [6981] cpu:
stress-ng: info:  [6981]            472,505,575,646 CPU Cycles                     3.94 B/sec
stress-ng: info:  [6981]            337,664,834,982 Instructions                   2.81 B/sec (0.715 instr. per cycle)
# stress-ng --cpu 4 --cpu-method fft --timeout 120 --perf --metrics-brief
stress-ng: info:  [9185] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [9185]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [9185] cpu               13691    120.20    452.64      0.66       113.90        30.20
stress-ng: info:  [9185] cpu:
stress-ng: info:  [9185]               277211312932 CPU Cycles                     2.30 B/sec
stress-ng: info:  [9185]               132368323828 Instructions                   1.10 B/sec (0.477 instr. per cycle)
# stress-ng --cpu 8 --cpu-method fft --timeout 120 --perf --metrics-brief
stress-ng: info:  [2966] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [2966]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [2966] cpu              210936    120.08    948.95      0.12      1756.67       222.26
stress-ng: info:  [2966] cpu:
stress-ng: info:  [2966]          2,564,008,833,600 CPU Cycles                    21.27 B/sec
stress-ng: info:  [2966]          2,290,522,431,008 Instructions                  19.00 B/sec (0.893 instr. per cycle)

Ackermann:

# stress-ng --cpu 2 --cpu-method ackermann --timeout 120 --perf --metrics-brief
stress-ng: info:  [7005] stressor      bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [7005]                          (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [7005] cpu               1237    120.06    239.84      0.00        10.30         5.16
stress-ng: info:  [7005] cpu:
stress-ng: info:  [7005]            458,914,948,092 CPU Cycles                     3.82 B/sec
stress-ng: info:  [7005]            620,258,171,224 Instructions                   5.16 B/sec (1.352 instr. per cycle)
# stress-ng --cpu 4 --cpu-method ackermann --timeout 120 --perf --metrics-brief
stress-ng: info:  [9429] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [9429]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [9429] cpu                1077    120.37    454.34      1.10         8.95         2.36
stress-ng: info:  [9429] cpu:
stress-ng: info:  [9429]               274137847488 CPU Cycles                     2.27 B/sec
stress-ng: info:  [9429]               336054799972 Instructions                   2.78 B/sec (1.226 instr. per cycle)
# stress-ng --cpu 8 --cpu-method ackermann --timeout 120 --perf --metrics-brief
stress-ng: info:  [3468] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [3468]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [3468] cpu               15836    120.11    950.45      0.08       131.84        16.66
stress-ng: info:  [3468] cpu:
stress-ng: info:  [3468]          2,755,006,697,552 CPU Cycles                    22.82 B/sec
stress-ng: info:  [3468]          5,676,328,285,448 Instructions                  47.02 B/sec (2.060 instr. per cycle)

Floating point numbers:

# stress-ng --cpu 2 --cpu-method double --timeout 120 --perf --metrics-brief
stress-ng: info:  [7024] stressor      bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [7024]                          (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [7024] cpu             626458    120.00    239.76      0.02      5220.48      2612.64
stress-ng: info:  [7024] cpu:
stress-ng: info:  [7024]            479,644,837,338 CPU Cycles                     4.00 B/sec
stress-ng: info:  [7024]            419,587,440,760 Instructions                   3.50 B/sec (0.875 instr. per cycle)
# stress-ng --cpu 4 --cpu-method double --timeout 120 --perf --metrics-brief
stress-ng: info:  [9693] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [9693]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [9693] cpu              291938    120.20    455.00      0.34      2428.81       641.14
stress-ng: info:  [9693] cpu:
stress-ng: info:  [9693]               278116959176 CPU Cycles                     2.30 B/sec
stress-ng: info:  [9693]               140849877912 Instructions                   1.17 B/sec (0.506 instr. per cycle)
# stress-ng --cpu 8 --cpu-method double --timeout 120 --perf --metrics-brief
stress-ng: info:  [4015] stressor       bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [4015]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [4015] cpu             5285340    120.07    948.65      0.19     44019.41      5570.32
stress-ng: info:  [4015] cpu:
stress-ng: info:  [4015]          2,462,617,026,304 CPU Cycles                    20.43 B/sec
stress-ng: info:  [4015]          2,660,429,528,568 Instructions                  22.07 B/sec (1.080 instr. per cycle)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment