BYTEmark - auch heute noch wertvoll?

BYTEmark - questioning its use

Der BYTEmark wurde 1990 von der Computerzeitschrift BYTE entwickelt, mit Version 2 folgte 1995 auch eine Portierung auf die PowerPC-Plattform. Das kleine Programm bearbeitet einige rechenintensive Aufgaben (Subtests) und soll somit zeigen, welcher Rechner wie schnell ist im Vergleich zu anderen Maschinen. BYTEmark wurde für das MacOS, DOS, Windows 3.x, Windows 95/98 und NT (Intel, MIPS, DEC Alpha) entwickelt und erlaubt damit auch den plattform-übergreifenden Vergleich.

The BYTEmark was developed in the year 1990 by (for?) the BYTE computer magazine, version 2 appeared 1995 bringing the benchmark to the PowerPC plattform too. A small program does some number crunching tasks (subtests) and tells you how fast your machine runs compared to others. BYTEmark was developed for the MacOS, DOS, Windows 3.x, Windows 95/98 and NT (Intel, MIPS, DEC Alpha), so it gives you the possibility to compare between the plattforms.

Apple fügt seit ihren Werbespots mit dem Motto "Up to twice as fast" den Presseberichten zu neuen Macs auch die aktuellen BYTEmark Integer-Werte bei - der Mac lässt die Intel-Konkurrenz hier ziemlich langsam aussehen. Aber ist ein Benchmark aus dem Jahre 1995 heute überhaupt noch angemessen? Kann man mit einem vier Jahre alten Testprogramm überhaupt noch einigermassen brauchbare Ergebnisse erhalten, wo doch die Computerindustrie so schnelle Fortschritte macht und die Architektur der Rechner ständig erweitert? Man denke da an Cache, Backside-Cache, MMX, AltiVec usw.

Since Apple started with their "Up to twice as fast" commercials they also publish the BYTEmark integer score on the press release of new Macs - and they really leave the Intel based machines in the dust. But could you still use a four years old program to measure todays machines performance? Don't forget the computer industry does big steps in development and there are always new architecture features to appear, like the cache, backside cache, MMX, AltiVec, ...

Werfen wir einen Blick vier Jahre zurück, und sehen wir uns die damaligen Hardwarespezifikationen im Vergleich zu heute an:

Let's have a look back in time four years, we're comparing that times hardware specifications with todays:

 

Prozessor Jahr MHz Bus MHz L1 kB L2 kB L2 MHz BYTE int BYTE fp
Pentium 1994 75 50 16 256 50 ??? ???
Pentium 1996 200 66 16 256 66 2.1 2.2
Pentium II 1999 450 100 32 512 225 6.2 ???
Pentium III 1999 500 100 32 512 250 ??? ???
Pentium III Xeon 1999 500 100 32 2048 500 ??? ???
PowerPC 601 1994 60 30 32 256 30 0.8 0.5
PowerPC 604e 1996 200 50 64 1024 50 5.1 4.3
PowerPC G3 1999 400 100 64 1024 200 13.3 ???
PowerPC G3 1999 466 67 64 1024 311 ??? ???

 

Neben der offensichtlichen Erhöhung des CPU-Takts hat auch der Systembus - wenngleich deutlich schwächer - mitgezogen und L1 sowie L2-Cache sind grösser geworden. Das L2-Cache wird heutzutags ausserdem nicht mehr nur mit Bus- sondern mit halber oder ganzer Prozessorgeschwindigkeit betrieben, was einen deutlichen Einfluss auf die Rechenleistung ausübt (Backside-Cache; der PowerPC erlaubt eigentlich die Verhältnisse 1:1, 3:2, 2:1, 5:2 und 3:1).

The CPU clock speed climbed and so did the bus speed (but less percent compared to the CPU), and the L1 and L2 caches have become bigger. The L2 cache does not run at bus speed anymore, now its clock rate is half or full processor speed (backside cache; actually the PowerPC supports the ratios 1:1, 3:2, 2:1, 5:2 and 3:1).

Wenn der BYTEmark diesen Entwicklungen Rechnung tragen will, dann muss er unterschiedliche Ergebnisse aufzeigen, abhängig von der Taktrate von Prozessor, Bus und Cache und je nach Cachegrösse. Gehen wir dieser Frage nach, indem wir eine G3-Karte unterschiedlich konfigurieren:

If the BYTEmark is used to show the performance of todays machines it has to take care of different processor, bus and cache speeds as well as the cache size might influence the results. We followed this question using a differently configured G3 processor card:

 

BYTEmark @ G3 Configurations
CPU MHz Bus MHz L2 kB L2 MHz BYTEmark int BYTEmark fp Comment
300.0 50.0 1024k 150.0 9.73 = 100.0% 6.56 = 100.0% Standard
300.0 50.0 1024k 200.0 9.75 = 100.2% 6.58 = 100.3% L2-Cache 3:2
300.0 50.0 512k 150.0 9.72 =   99.9% 6.56 = 100.0% L2-Cache 512k
300.0 50.0 --- --- 8.80 =   90.4% 4.71 =   71.8% No L2-Cache
300.0 40.0 512k 150.0 9.73 = 100.0% 6.56 = 100.0% Bus 40 MHz
300.0 40.0 2048k 150/40 9.72 =   99.9% 6.56 = 100.0% L2-Cache 1MB & L3-Cache 1MB
300.0 40.0 1024k 40.0 9.26 =   95.2% 5.41 =   82.5% L2-Cache 40 MHz (Onboard, Bus-Speed)
Power Macintosh 8500, Met@box joeCARD 400 @300MHz, MacOS 8.5.1
Hinweis: Durch die Heruntertaktung der 400er-Karte auf 300 MHz läuft das Cache beim 3:2-Taktverhältnis mit Nominalgeschwindigkeit (200 MHz) Note: We downclocked the 400 MHz card to 300 MHz, this way the cache runs at its rated speed of 200 MHz when set to 3:2 ratio

 

Was zeigen die Resultate? Es scheint keine Rolle zu spielen, ob das Backside-Cache 1MB oder nur 512k gross ist. Auch die Cache-Geschwindigkeit hat kaum einen Einfluss auf das Ergebnis des BYTEmarks, ebensowenig die Taktrate des Systembusses. Der BYTEmark reagiert also ziemlich unsensibel auf unterschiedliche Hardwarekonfigurationen, die gemessenen Unterschiede liegen - mit einer Ausnahme - auf Promille-Ebene und sind damit zu vernachlässigen.

What do these results show us? The size of the backside cache does not seem to play any role, same scores for 512k and 1MB. Even the cache speed doesn't influence the BYTEmark score, neither does the bus speed. The BYTEmark does react unspecific on different hardware configurations. The differences are on a per mille level - ignore them. There's only one exception:

Einen Effekt erhält man erst, wenn man dem Prozessor das Backside-Cache abschaltet oder stattdessen nur das relativ langsam arbeitende Onboard-Cache der ersten und zweiten PowerMac-Generation einsetzt (was man generell nicht tun sollte). Der BYTEmark-Index wird hierdurch aber dennoch nur um 5 bzw. 10% beeinträchtigt, was gegenüber dem schnellen Backside-Cache kaum ein Nachteil ist und die Existenz des teuren Caches kaum rechtfertigen würde. Zwar reagiert der Floating-Point-Index mit einer Verlangsamung um 18 bzw. 28%, FP-Berechnungen beanspruchen aber auch bei intensiv auf die FPU zugreifenden Applikationen (z. B. Rendering) nur einen kleinen Teil der Gesamtrechenzeit und sind somit kein sinnvoller Massstab für "übliche" Anwendungsprogramme.

The only thing to affect the result (the BYTEmark) is to disable the backside cache, or to run with the relatively slow onboard cache used in the 1st and 2nd PowerMac generations (which is not recommended). This way the BYTEmark takes 5 or 10% longer to complete - which is quite not much longer than running with the fast backside cache, and this would not be a reason to put expensive cache chips in todays machines. Note that the floating point part of the test takes 18 or 28% longer when running with onboard or no cache, but fp-calculations make only a small part even in applications that use the FPU intensively (like rendering), so they do not give you a good prediction on how fast your applications will really run.

Real World Tests mit denselben Rechnerkonfigurationen zeigen, dass die Geschwindigkeit des Systembusses bei Macs mit Backside-Cache in der Tat kaum noch einen Einfluss auf die Systemleistung hat - dies war bei PowerMacs der ersten und zweiten Generation noch anders, weil dort das Cache mit derselben Geschwindigkeit betrieben wurde. Auch die Grösse des Caches (512k vs. 1MB) übt in diesen Tests nur einen geringen, aber dennoch deutlichen Einfluss aus (mehr als die 0.1% beim BYTEmark). Dasselbe gilt für die Cachegeschwindigkeit (Verhältnis 2:1 vs. 3:2), bei welcher der BYTEmark nur 0.2 bis 0.3% schneller durchlaufen wird. Ohne Cache bricht die Leistung in den Real World Tests teilweise dramatisch zusammen (bis 56%). Diese Werte schwanken natürlich von Anwendung zu Anwendung teilweise erheblich.

Real World tests run at the same machine configurations showed that the system bus speed really plays no role anymore in Macs with backside cache - the bus speed affected performance in 1st and 2nd generation PowerMacs because the cache was clocked at this speed too. The size of the cache (512k vs. 1MB) does impact performance in your daily applications - not very much but more than the 0.1% showed with BYTEmark. The same holds for the cache speed (2:1 vs. 3:2), where the BYTEmark is finished only 0.2 to 0.3% faster with higher cache clock. Running with no cache the performace drops dramatically in Real World tests (56% less). Of course these results may vary depending on the application you run.

Welche Subtests? Der BYTEmark verwendet in einem Subtest Bitfields (als Anlehnung an das Disk Usage Bitmapping des Betriebssystems). Der PowerPC-Prozessor erledigt diesen Subtest im Vergleich zur Intel-Konkurrenz rund fünf Mal schneller (28.59 vs. 5.72 Punkte), was den Gesamt-Index natürlich deutlich beeinflusst. Hier zeigt sich die Problematik der Auswahl von Subtests. Je nachdem, welche Aufgaben man in den Benchmark einbaut, erhält man einen anderen Gesamt-Index.
BYTE hat einen Vergleich zwischen PowerPC G3 und Pentium II mit je 300 MHz durchgeführt und den Index mit und ohne Bitfields-Subtest angegeben. Ohne Bitfields vermindert sich die Überlegenheit des PowerPCs, bescheinigt aber immer noch einen deutlichen Leistungsvorteil gegenüber dem Pentium II:

Which subtests? The BYTEmark uses Bitfields in one subtest to simulate disk usage bitmapping of the operating system. The PowerPC processor performs this task five times faster than the Intel Pentium II running at the same speed (28.59 vs. 5.72 points), and this really influences the total index. This shows how problematic it is to compile several subtests to a good overall-benchmark. The overall index depends strongly on the tasks you choose.
BYTE compared a PowerPC G3 and a Pentium II both running at 300 MHz, and they published the overall index with and without the Bitfields subtest. Not counting the Bitfields does reduce the PowerPCs predominance, but it still shows a clear advantage over the Pentium II:

 

BYTEmark & Bitfields
Prozessor MHz BYTEmark int BYTEmark fp Comment
PowerPC G3 300 10.15 6.57 Bitfields tested
Pentium II 300 4.21 4.84 Bitfields tested
PowerPC G3 300 6.29 6.56 Bitfields excluded
Pentium II 300 3.28 4.84 Bitfields excluded
Quelle * Source: BYTE

 

Compiler-Einfluss: Für das MacOS sind mindestens drei unterschiedliche BYTEmark-Varianten im Umlauf, die sich durch das Optimierungsverfahren der Compiler unterscheiden. Die besseren Ergebnisse erzielt man mit der DR/3-Variante, deren Resultate übrigens auch von Apple publiziert werden. Ein mit dem sehr "aggressiven" MR-C-Compiler (*) erstelltes Programm soll noch weitaus höhere Werte liefern, was wir mangels Verfügbarkeit dieses Programms leider nicht nachprüfen konnten. Die folgende Tabelle zeigt, dass ein PowerMac 8600/200 den Integer-Teil des BYTEmarks genauso schnell durchläuft wie ein 400 MHz schnelles G3-Upgrade (joeCARD) - nur durch Einsatz eines anderen Kompilats:

Compiler influence: There are at least three different BYTEmark executables available for the MacOS. Using the DR/3 program you get better scores, Apples published scores were measured with exactly this executable. There seems to be a third, very "aggressive" MR-C compiler (*) program available that scores even much higher. We haven't got this executable and cannot tell if this really applies. Have a look at the following table, the PowerMac 8600/200 finishes the BYTEmark integer subtests as fast as a 400 MHz G3 upgrade (joeCARD) - only by using a different executable:

(*) MR-C-Compiler: Macintosh Programmers Workshop (MPW)
ftp://ftp.apple.com/developer/Tool_Chest/Core_Mac_OS_Tools/MPW_etc./MPW-GM/MPW/Tools/MrC.sit.hqx
(Thanks to Goetz Becker)

 

BYTEmark & Compiler
Computer CPU BYTEmark int BYTEmark fp Comment
PowerMac G3/350 G3/350 6.95 5.16 ? Compiler
PowerMac G3/350 G3/350 11.23 7.58 DR/3 Compiler
joeCARD 400 G3/400 8.30 5.97 ? Compiler
joeCARD 400 G3/400 13.28 8.76 DR/3 Compiler
8600/200 604e/200 13.24 4.63 MR-C Compiler

 

Fazit: Es ist gefährlich, die allgemeine Leistung eines Computers mit nur einem einzigen zusammengewürfelten synthetischen Test zu messen. Es ist noch gefährlicher, dies mit einem veralteten Benchmark zu erledigen, besonders wenn dieser Test sehr compiler-abhängig ist. Aus diesen Gründen sollte man Beurteilungen aufgrund des BYTEmarks mit Vorsicht geniessen.
Dasselbe gilt übrigens auch für die SPECmarks (mit Ausnahme der Optimierung), die ebenfalls aus dem Jahre 1995 stammen und heutigen Architekturen nicht mehr gerecht werden. Auch diese Tests berücksichtigen keine Prozessor-Features wie beispielsweise Intels MMX (MMX2 im Pentium III) oder AltiVec in Motorolas kommendem PowerPC G4, die bei Anwendungen wie beispielsweise PhotoShop aber deutlich für eine Verkürzung der Rechenzeit sorgen.

Summary: It's dangerous to measure a computers overall performance using only one synthetic test collection. It's even more dangerous to measure this with a (four years) old test. You also have to think about compiler optimization when looking at BYTEmark scores.
The same (except for the optimization part) holds for the SPECmarks from 1995 used to compare processors of different manufacturers. These tests don't take care of processors special abilities like MMX in the Pentium family (MMX2 in Pentium III) or AltiVec in Motorolas oncoming PowerPC G4. These special abilites do have a significant effect when running applications like PhotoShop.

10. Mai 1999 - Sven Negrassus
Additional:


Letzte Änderung * Last Update:
Mittwoch, 26. Mai 1999