Opened 17 months ago
Closed 17 months ago
#350 closed enhancement (fixed)
Add composite geometric mean MIPS result to instr_speed utility
| Reported by: | Owned by: | Jeffrey H. Johnson | |
|---|---|---|---|
| Priority: | minor | Milestone: | MR12.9 |
| Component: | Tools | Version: | MR12.8 |
| Keywords: | Cc: |
Description
The instr_speed utility runs many (currently 15) different benchmarks and displays individual results, but provides no single average performance number, which would be very useful for quick comparisons.
The following proposed patch to instr_speed.pl1 adds a running product and test count and calculates a composite geometric mean result, which is displayed after all tests have been run.
cpa instr_speed.pl1 instr_speed_1.pl1
A45 dcl (successes, pf_aborts, nanos, ls_aborts, type, histi, bucketmin, bucketmax, pf, ls, maxs, bucket, count, nargs) fixed bin;
Changed by B to:
B45 dcl (successes, pf_aborts, nanos, ls_aborts, type, histi, bucketmin, bucketmax, pf, ls, maxs, bucket, count, nargs, ntests) fixed bin;
A52 dcl (mips, mips_total, mip_rate) float bin;
Changed by B to:
B52 dcl (mips, mips_total, mips_prod, mip_rate) float bin;
Inserted in B:
B123 ntests = 0;
B124 mips_prod = 0e0;
Preceding:
A123
A124 /* Now run the test for the 15 possible types of sequences */
A158 mip_rate = mips_total/float (successes); /* calculate mip_rate */
Changed by B to:
B160 ntests = ntests + 1;
B161 mip_rate = mips_total/float (successes); /* calculate mip_rate */
B162 if mips_prod = 0e0 then mips_prod = mip_rate; /* initialize mips_prod */
B163 else mips_prod = mips_prod * mip_rate; /* calculate mips_prod */
Inserted in B:
B169
B170 call ioa_ ("^/* * * * * * * * * * * * * * * * * * * * * *^/");
B171 call ioa_ ("COMPOSITE GEOMETRIC MEAN MIPS = ^6.3f^/", mips_prod ** (1 / float (ntests)));
Preceding:
A164
Comparison finished: 5 differences, 14 lines.
Example output:
INSTRUCTION SPEED TEST -- 03/01/25 2239.9 pst Sat
* * * * * * * * * * * * * * * * * * * * * *
TEST 1: (lda/sta - even/odd)
MIPS AVE = 11.399, TIME AVE = 93, 87 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 2: (lda/sta - odd/even)
MIPS AVE = 11.393, TIME AVE = 95, 87 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 3: (lda/lda/lda...)
MIPS AVE = 13.237, TIME AVE = 83, 75 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 4: (lda/sta - even/odd bit29)
MIPS AVE = 11.500, TIME AVE = 93, 86 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 5: (eppbp/spribp - even/odd)
MIPS AVE = 12.360, TIME AVE = 87, 80 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 6: (eppbp/spribp - odd/even)
MIPS AVE = 13.037, TIME AVE = 82, 76 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 7: (eppbp/spribp - even/odd indirect)
MIPS AVE = 8.207, TIME AVE = 129, 121 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 8: (eppbp/spribp - odd/even indirect)
MIPS AVE = 8.654, TIME AVE = 120, 115 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 9: (eppbp/spribp - even/odd bit29)
MIPS AVE = 12.063, TIME AVE = 92, 82 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 10: (eppbp/spribp - even/odd bit29ind)
MIPS AVE = 9.059, TIME AVE = 117, 110 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 11: (eppbp/spribp - odd/even bit29ind)
MIPS AVE = 8.882, TIME AVE = 117, 112 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 12: (random mix)
MIPS AVE = 11.445, TIME AVE = 94, 87 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 13: (lda 0,du...)
MIPS AVE = 19.447, TIME AVE = 55, 51 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 14: (nop 0,du...)
MIPS AVE = 18.393, TIME AVE = 59, 54 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
TEST 15: (lprpbp/sprpbp - even/odd bit29)
MIPS AVE = 11.331, TIME AVE = 94, 88 NANOSECONDS
* * * * * * * * * * * * * * * * * * * * * *
COMPOSITE GEOMETRIC MEAN MIPS = 11.673
Change History (3)
comment:1 by , 17 months ago
| Status: | new → accepted |
|---|---|
| Version: | → MR12.8 |
comment:2 by , 17 months ago
| Owner: | changed from to |
|---|---|
| Status: | accepted → assigned |
Note:
See TracTickets
for help on using tickets.

https://s3.amazonaws.com/eswenson-multics/public/mcrs/MCR10149.pdf