Some time ago I posted a small program, which tested the speed of the individual instructions, and asked if someone would run it on different VAX'es. I posted a summary and then I got some more responses and posted a new summary. Since then I have got a few more responses. So here is a new summary. Thanks to: Harvey Brydon Hans Adamse randy k. hayashi Michael Botten Hannu Peltola Chris Hurlburt Wolfgang J. Moeller Scott Bailey Yaacov Slizak Dan Forrest Huw Davies Alain Chappuis Kevin Madden Kenn Humborg Wim Versteegen for their responses. Here are a brief summary of the results + some comments (mine and others) + some playing with machine-performance for different instrcution-mixes ! If anyone want the complete data-material, then mail me and I will mail them a copy. Arne Arne Vajhøj Internet: ISIS08@ECOSTAT.AAU.DK Institute of Economics and Statistics PSI: DATAPAX.23830211371400::ISIS08 Aarhus University Denmark ================================================================================ Absolute performance Byte Word Long F-floatD-floatG-floatH-floatChar(1) Char(2) Call mvaxii 1046 1221 1157 2005 2756 2982 417057 2766617 45451861 12782 mvax3300 515 583 454 785 1289 1382 187937 2132325 14998459 5577 mvax3400 504 570 440 779 1286 1381 218338 2141457 15033833 5530 mvax3600 460 521 401 704 1154 1241 149383 1523000 13217652 4981 mvax3900 303 351 267 468 768 827 103107 1108359 8883421 3544 vax750 1838 1879 1996 1659 2986 725667 795652 5763056 20563346 21321 vax780 907 993 1064 1102 1790 338533 379015 4152864 11641426 14832 vax785 572 606 654 705 1143 3606 5181 3888489 7799335 11903 vax4100 62 72 60 54 77 81 15561 221855 1778744 557 vax4200 176 197 155 305 479 488 68558 1543361 6198852 2796 vax4300 131 151 137 342 451 483 51408 541505 5348934 1471 vax4400 73 86 72 68 83 92 21057 313717 2506020 647 vax4500 52 65 55 50 65 72 15398 274427 1805931 553 vax6300 299 344 263 463 764 820 105392 932421 9710955 3877 vax6400 135 152 140 340 447 478 51914 641489 4858477 1499 vax6600 53 62 50 46 64 69 13268 178197 1520987 481 vax8350 730 767 699 1220 1628 2019 8379 2456053 7783971 12524 vax8600 209 208 207 363 542 532 2393 1283621 2400812 3289 vax8650 136 132 131 240 346 349 1570 828651 1563343 2241 vax8700 235 238 217 367 490 567 1083 467527 1428053 2238 vax8800 228 235 224 363 506 569 1101 470695 1325018 2466 vax9200 24 24 24 32 56 55 1039 100049 1268393 744 vax9400 30 26 24 35 61 60 1068 85137 1224990 727 vaxs2000 1117 1291 1227 2130 2925 3166 444133 2941796 48126851 13411 vaxs3100-30 467 523 405 706 1154 1241 156032 1784679 13339962 5253 vaxs3100-38 461 514 395 702 1156 1243 178295 1812917 13328234 5554 vaxs3100-58 456 519 409 720 1171 1252 156596 1887245 14044041 5265 vaxs3100-76 137 152 150 353 454 496 48904 734859 4896121 1477 vaxs3200 460 531 405 718 1167 1258 148366 1585280 13417484 5065 vaxs4000-60 86 101 92 218 288 305 35232 453399 3030740 995 vaxs4000-90 49 59 48 45 67 71 15403 224091 1793130 553 Relative performance Byte Word Long F-floatD-floatG-floatH-floatChar(1) Char(2) Call mvaxii 0.83 0.88 0.95 1.04 0.97 0.13 1.43 0.54 1.36 0.76 mvax3300 0.89 0.92 0.81 0.89 0.99 0.14 1.41 0.91 0.98 0.73 mvax3400 0.87 0.90 0.78 0.88 0.98 0.13 1.63 0.91 0.98 0.72 mvax3600 0.93 0.95 0.83 0.93 1.03 0.14 1.30 0.75 1.01 0.76 mvax3900 0.90 0.95 0.82 0.91 1.01 0.14 1.32 0.81 1.00 0.79 vax750 0.65 0.61 0.73 0.39 0.47 14.60 1.22 0.50 0.28 0.57 vax780 0.57 0.56 0.69 0.45 0.50 11.99 1.02 0.64 0.28 0.70 vax785 1.17 1.13 1.38 0.95 1.03 0.42 0.05 1.96 0.60 1.84 vax4100 1.16 1.23 1.16 0.66 0.63 0.09 1.25 1.02 1.25 0.78 vax4200 0.76 0.77 0.69 0.86 0.92 0.12 1.28 1.64 1.01 0.91 vax4300 0.74 0.79 0.81 1.28 1.14 0.16 1.26 0.76 1.15 0.63 vax4400 1.11 1.19 1.14 0.67 0.56 0.08 1.37 1.16 1.43 0.74 vax4500 1.02 1.16 1.12 0.65 0.57 0.08 1.30 1.32 1.34 0.82 vax6300 0.89 0.93 0.81 0.90 1.01 0.14 1.36 0.68 1.09 0.87 vax6400 0.76 0.78 0.81 1.25 1.11 0.15 1.26 0.89 1.03 0.63 vax6600 1.18 1.25 1.15 0.67 0.62 0.09 1.26 0.96 1.26 0.80 vax8350 1.36 1.30 1.34 1.49 1.34 0.21 0.07 1.13 0.55 1.76 vax8600 1.27 1.15 1.30 1.45 1.46 0.18 0.06 1.92 0.55 1.51 vax8650 1.27 1.13 1.27 1.47 1.43 0.18 0.06 1.90 0.55 1.58 vax8700 1.82 1.69 1.74 1.86 1.68 0.25 0.04 0.89 0.42 1.31 vax8800 1.76 1.65 1.79 1.83 1.73 0.25 0.04 0.89 0.39 1.43 vax9200 0.98 0.90 1.02 0.84 1.00 0.13 0.18 0.99 1.93 2.25 vax9400 1.17 0.92 0.97 0.89 1.06 0.13 0.18 0.81 1.80 2.13 vaxs2000 0.83 0.88 0.95 1.04 0.97 0.13 1.43 0.54 1.36 0.76 vaxs3100-30 0.91 0.93 0.82 0.90 1.00 0.14 1.32 0.86 0.99 0.77 vaxs3100-38 0.89 0.90 0.79 0.89 0.98 0.14 1.48 0.86 0.97 0.81 vaxs3100-58 0.88 0.91 0.81 0.91 1.00 0.14 1.30 0.90 1.02 0.77 vaxs3100-76 0.75 0.76 0.85 1.27 1.10 0.15 1.16 0.99 1.01 0.61 vaxs3200 0.91 0.96 0.83 0.93 1.02 0.14 1.27 0.77 1.01 0.76 vaxs4000-60 0.74 0.79 0.82 1.22 1.09 0.15 1.30 0.95 0.98 0.64 vaxs4000-90 1.03 1.12 1.03 0.62 0.62 0.08 1.38 1.14 1.41 0.87 Approx. MVUPs pseudo general integer float char mvaxii 1.00 1.00 1.00 1.00 1.00 mvax3300 2.19 2.24 2.38 2.39 2.09 mvax3400 2.18 2.27 2.44 2.42 2.13 mvax3600 2.54 2.60 2.68 2.68 2.46 mvax3900 3.74 3.83 3.98 4.00 3.62 vax750 0.45 0.72 0.60 0.83 0.64 vax780 0.79 1.20 1.10 1.38 1.11 vax785 2.58 1.75 1.75 2.13 1.60 vax4100 23.51 22.53 18.80 28.70 17.72 vax4200 5.45 5.40 6.70 6.32 4.97 vax4300 7.18 7.08 8.34 6.88 7.53 vax4400 19.03 18.29 15.66 24.29 14.14 vax4500 24.69 23.33 20.46 31.47 18.37 vax6300 3.76 3.91 4.01 4.00 3.71 vax6400 7.08 6.87 8.19 6.85 7.21 vax6600 27.70 26.76 22.05 33.85 20.99 vax8350 2.35 1.59 1.56 1.58 1.59 vax8600 7.67 4.88 5.45 5.21 4.86 vax8650 11.79 7.56 8.55 8.05 7.51 vax8700 9.79 6.03 5.30 5.49 6.21 vax8800 9.73 5.89 5.16 5.35 6.17 vax9200 50.65 40.65 43.23 46.82 36.16 vax9400 49.10 41.05 43.03 44.80 35.48 vaxs2000 0.94 0.94 0.94 0.94 0.94 vaxs3100-30 2.47 2.52 2.64 2.66 2.35 vaxs3100-38 2.43 2.52 2.68 2.67 2.36 vaxs3100-58 2.43 2.46 2.63 2.62 2.32 vaxs3100-76 6.91 6.51 7.87 6.62 6.85 vaxs3200 2.51 2.56 2.64 2.64 2.43 vaxs4000-60 10.81 10.41 12.37 10.54 10.96 vaxs4000-90 26.20 25.75 22.85 33.64 20.27 Col. 1-7 : ADDx2,ADDx3,SUBx2,SUBx3,MULx2,MULx3,DIVx2,DIVx3,MOVx,CMPx,TSTx Col. 8 : MOVC3,MOVC5 Col. 9 : MATCHC,LOCC,MOVTC,MOVTUC Col. 10 : CALLS,CALLG The absolute performance is a geometric mean of the instructions in the group (ns/inst). The relative performance is the absolute performance diveded by the machine power (geometric mean of all instruction groups for that machine) and scaled to be around 1.0 (diveded by the arithmetic mean of all machines for that instructions group). The pseudo MVUPS is the geometric mean of the absolute performance inverted and scaled with the microVAX II data. Note: this is a VERY primitive benchmark, because it is assuming a totally weird instruction mix and the results are as expected unreliable, but I have included it here just for the fun of it. The other four MVUPS are calculated ussing the following weights: general : 40% Long + 15% F-floating + 15% G-floating + 15% Char(1) + 5% Char(1) + 10% Call integer : 30% Word + 60% Long + 10% Call float : 30% Long + 30% F-floating + 30% D-floating + 10% Call char : 30% Byte + 30% Long + 20% Char(1) + 10% Char(1) + 10% Call None of theese instruction mixes are realistic, but they clearly demonstrates the well-known fact, that the benchmark-results somewhat depends on the benchmark, and they give some hints about the different machines. Notable facts: a) Word instructions are generally slower than both byte and long instructions. Explanation - Time increases with number of bits and there is a fixed overhead by disregarding any number of bits. b) D- and G-floating instructions are slower than F-floating, but not by a factor 2. Explanation - The number of bits are doubles, but there are fixed overhead. c) D- and G-floating are about equal in speed at all the newer machines, but on the old VAX750/VAX780 are D-floating 10 times faster than G-floating. Explanation: G-floating are emulated at VAX750/VAX780 ???? d) H-floating instructions are very slow at all the machines except VAX8350/VAX8600/VAX8700/VAX8650/VAX8800/VAX9200/VAX9400. Explanation - H-floating instructions are emulated at all the machines except VAX8350/VAX8600/VAX8700/VAX8650/VAX8800/VAX9200/VAX9400. e) The first group of character instructions are relative much faster at microVAX II and VAXstation 2000. Explanation - ? f) The second group of character instructions are slow at all the machines except VAX8350/VAX8600/VAX8700/VAX8650/VAX8800. Explanation - The second group of character instructions are emulated at all the machines except VAX8350/VAX8600/VAX8700/VAX8650/VAX8800. g) The call instructions are generally faster at the newer machines Explanation - DEC are heavily optimizing these instructions, because they are so important in todays procedural programming. h) The call instructions are rather slow at the VAX9200/VAX9400. Explanation - ? i) The floating instructions (F/D/G) are relative fast compared to integer instructions (byte/word/long) on the VAX4500. Explanation - ? j) The second group of character instructions are rather slow at the VAX9200/VAX9400. Explanation - ? The following facts are based on the detailed data and not the summary: a) MOVL + MOVQ is almost always faster than MOVF + MOVD/MOVG. Explanation - The "CISC overhead" (test for zero, test for negative, test for invalid) are much bigger for floating instructions. b) MATCHC and LOCC are almost equally fast on VAX8350/VAX8600/VAX8700/ VAX8650/VAX8800, MATCHC is 50 times slower than LOCC on VAX9200/VAX9400. MATCHC is 2-5 times slower than LOCC on the other machines. Explanation - Both LOCC and MATCHC are implemented in hardware on VAX8350/VAX8600/VAX8700/VAX8650/VAX8800, LOCC is implemented in hardware while MATCHC is emulated on teh VAX9200/VAX9400, both LOCC and MATCHC are emulated on the other machines. c) There are quite a difference between BEQL,BLEQ and BLSS on some of the machines. Explanation - ? d) The CVTHx, CVTxH and CMPH instructions are emulated on the VAX9200/VAX9400 while the rest of the H-floating instructions are implemented in hardware. Explanation - they ran out of micro-code storage.