![]() |
ENGLISH VERSION |
|
![]() |
Links | | | Forum | | | Kommentare | | | News melden |
![]() |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
![]() |
amiga-news.de Forum > Programmierung > Unterschiede der FPU bei G3 und G4 AMD64 P3 | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
28.12.2006, 16:22 Uhr bernd_roesch Posts: 364 [Benutzer gesperrt] |
Nachdem nun auch unter OS4 der JIT gut geht konnte ich nun auch ohne G3 G4 User zu sein den Unterschied der FPU ausmachen. Bei dem G4 sollte man speedkritische Routinen mit 64 bit floats machen.beim G3 mit 32bit floats.egal ob man nun native codet oder nicht. evtl kann ja mal jemand native benches machen... Man beachte beim G3 die 133 Mips bei single float fmove.s dagegen bei double float kommt man nur auf 54 Mips. Der G4 kommt bei single float nur auf 49 Mips.Bei double float auf 130 Mips Ob das nun native code ist oder nicht ist egal,der JIT übersetzt das eh in eine einzige PPC asm instructions. da das add.l 500 mips macht,brauchen alle Befehle die langsamer als das sind eben mehr takte. werte unter MOS wären: .5 237.08 fadd.x fpx,fpy Million/sec 133.59 fmove.s (d1.l),fp0 Million/sec 352.70 move.l (d1.l),d0 Million/sec (cached) bufferaddr $20CF6984 /4 ? 54.43 fmove.d -4(a0),fp1 and fmove.d -16(a0),fp0:allignd Million/sec (cached) bufferaddr &20CF6982 /4 ? 91.57 fmove.s -4(a0),fp1: unalligned Million/sec (cached) 299.59 fmove.s #2,fp0: 230.24 fmove.d #2,fp0: 500.65 add.l d0,d1: 123.26 fmul.x fp1,fp0 Bei dem G4 900 MHZ unter OS4 bekommt man den besten Wert wenn man 64 bit floats nutzt. 122.70 fadd.x fpx,fpy Million/sec 51.87 fmove.s (d1.l),fp0 Million/sec 240.68 move.l (d1.l),d0 Million/sec (cached) 137.67 fmove.d -4(a0),fp1 and fmove.d -16(a0),fp0:allignd Million/sec (cached) 49.86 fmove.s -4(a0),fp1: unalligned Million/sec (cached) 137.67 fmove.s #2,fp0: 78.36 fmove.d #2,fp0: 463.35 add.l d0,d1: 135.87 fmul.x fp1,fp0 Da ist natürlich klar dass der G4 nie ne Chance bei platformunabhängigen benches raytracing hat. die nutzen alle 32bit floats weil das schneller geht. bei X86 ist das single float optimiert.würde man 64bit nehmen,dann hätte der G4 ne gute Chance. trotz 1,8 GHZ kommt der AMD nur auf 92 Mips.das hat nix mit dem X86 byteswap zu tun,denn mein P3 1 GHZ kam damals unter winuae bei single und double floats auf 72 Mips Unter winuae kommt der AMD64 3000+ echte 1,8 GHz auf diese Werte 1. 594.86 fadd.x fpx,fpy Millions/sec 599.78 fmove.s (d1.l),fp0 Millions/sec 1177.47 move.l (d1.l),d0 Millions/sec (cached) bufferaddr $116014BC /4 ? . 91.61 fmove.d -4(a0),fp1 and fmove.d -16(a0),fp0:alligned Millions/sec (cached) bufferaddr $116014BA /4 ? .7 432.90 fmove.s -4(a0),fp1: unaligned Millions/sec (cached) 467.11 fmove.s #2,fp0: 523.86 fmove.d #2,fp0: 1556.02 add.l d0,d1: 400.60 fmul.x fp1,fp0 2. [ - Antworten - Zitieren - Direktlink - ] |
02.01.2007, 12:32 Uhr Solar Posts: 3680 Nutzer |
Zitat: Da plattformunabhängige Raytracer wohl kaum in Assembler geschrieben sind, und jemand der einen Benchmark portiert wohl kaum so dämlich sein dürfte die Berechnung nicht in 64bit zu machen, wenn dieser schneller als 32bit sein sollte... Letzteres halte ich nebenbei für unwahrscheinlich. Viel eher wird die Operation selbst sowieso in 64bit ausgeführt, und der Rest der Zeit geht für Einpacken / Auspacken des 32bit-Werts drauf. [ - Antworten - Zitieren - Direktlink - ] |
02.01.2007, 13:03 Uhr Holger Posts: 8116 Nutzer |
Zitat:Runden. Wenn man nur die reine Ausführungszeit des auf den Registern operierenden Arithmetikbefehls misst, wird nix aus- oder eingepackt. Die Register haben immer die gleiche Breite, auf dem 68k sind das 80 Bit, und wenn man die Zeit für's Runden sparen will, rechnet man auch immer in 80 Bit, womit eine effiziente und 100% kompatible Emulation auf dem ppc kaum möglich ist. Der Transfer in und aus dem Register dürfte dann meist von der Speicherbandbreite bestimmt werden, zumindest wenn man mehr als eine Zahl transferiert. Berechnungen in 32Bit werden erst dann deutlich effizienter, wenn man die SIMD-Einheiten eines Prozessor zu nutzen beginnt. Die sind meist darauf ausgelegt, mit 32 Bit Werten zu rechnen. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
02.01.2007, 14:18 Uhr Solar Posts: 3680 Nutzer |
Zitat: Das wissen Du und ich. Weiß das auch das Programm, mit dem Bernd seine Werte errechnet hat? Oder macht es den Fehler, eine (nicht vorhandene?) 32bit-Operation in 64bit zu "emulieren", inklusive zweifache Umwandlung des Wertes? Ich kenne mich mit der PPC-FPU nicht aus, aber wenn eine 32bit-Operation doppelt so lange brauchen soll wie eine 64bit-Operation, dann riecht das fischig, IMHO. [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Unterschiede der FPU bei G3 und G4 AMD64 P3 | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
![]() |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2025 by amiga-news.de - alle Rechte vorbehalten. |
![]() |