è vero che la FPU è penalizzata nei P4 ma bisogna anche dire che un P4 con molti Mhz e bus alti sopperisce a questa mancanza. La prova? Questa. Il record di super Pi ottimizzato x la FPU di K7 E pIII.Originally posted by The3DProgrammer
questa è una faccenda essenziale che avevo intenzione di trattare appena connesso....tu mi dai lo spunto x iniziare:
allora come sapete i benchmark sono 7: ALU (simulazione database), FPU Single (trasformazione 3D) FPU Double (approssimazione di pigreco) MIPS (no comment ), MFLOPS, oltre a quelli della RAM. Ora il quesito è: Perchè mettere 2 bench x l'ALU, 2 x l'FPU etc? il motivo è semplice. Come credo sappiate nn tutto il codice viene eseguito alla stessa velocità: in particolare, le CPU odierne hanno la tendenza a parallelizzare il + possibile, sia per sfruttare le varie pipeline di cui sono dotate, sia eventualmente le istruzioni SIMD. Non tutto il codice è adatto xò ad essere parallelizzato: spesso (la quasi totalità delle volte ) diviene impossibile cercare di parallelizzare a causa della presenza di salti nel codice, di dipendenze tra i dati, etc etc. CPUBench tiene conto proprio di questo: In particolare, il benchmark 1 (ALU), il benchmark 2 (FPU SP ) e il benchmark 3 (FPU DP ) sono estremamente difficili da parallelizzare (anke se, in particolare nel caso del bench ALU, ho implementato alcune ottimizzazioni per sfruttare al max la velocità della cache ), mentre i benchmark MIPS e MFLOPS sono ESTREMAMENTE adatti ad essere parallelizzati, ed è proprio x questo che passando con qualsiasi CPU (athlon o P4 ) da modalità IA32 a modalità ottimizzata, se ci fate caso, i risultati MIPS/MFLOPS quasi raddoppiano. Capite quindi xkè ho deciso di inserire questi benchmark differenti: per avere una visione + ampia sulle performance che una determinata CPU da con diversi tipi di codice.
Analizziamo per esempio le differenze di performance che si hanno passando da modalità standard a ottimizzata sul P4 di kikujiro :
risultati IA32
Overall Result: 5455 CPUMarks
ALU Result: 54587 ALUMarks
ALU Time: 4.937 seconds
FPU Result (overall): 42293 FPUMarks
FPU Single Precision Result: 31255 FPUMarks SP
FPU Single Precision Time: 11.569 seconds
FPU Double Precision Result: 53331 FPUMarks DP
FPU Double Precision Time: 12.218 seconds
MIPS Result: 3523 MIPS
MFLOPS Result: 2914 MFLOPS
Risultati SSE2
Overall Result: 6530 CPUMarks
ALU Result: 67543 ALUMarks
ALU Time: 3.99 seconds
FPU Result (overall): 45429 FPUMarks
FPU Single Precision Result: 36770 FPUMarks SP
FPU Single Precision Time: 9.834 seconds
FPU Double Precision Result: 54088 FPUMarks DP
FPU Double Precision Time: 3.14159 seconds
MIPS Result: 6211 MIPS
MFLOPS Result: 4969 MFLOPS
tralasciando il benchmark ALU, che si avvantaggia nn solo delle SSE2 ma anche di alcune ottimizzazioni legate alla cache, notate come i bench FPU SP e DP traggano relativamente poco vantaggio dall'utilizzo delle SSE2: questo proprio a causa del problema di cui vi ho parlato prima (difficoltà nel parallelizzare...i risultati sono +ttosto bassi xkè, come sapete, l'unità FPU x87 standard del P4 nn è velocissima ). I benchmark MIPS e MFLOPS, con l'uso delle SSE2 invece praticamente raddoppiano (circa 80% di guadagno ) a dimostrare che in alcuni campi l'uso delle istruzioni SIMD può incrementare notevolmente le performance offerte. Naturalmente, il discorso è applicabile allo stesso modo alle altre CPU (PIII e K7 ) anke se in maniera lievemente differente, questo xkè le FPU di PIII e K7 sono decisamente + performanti a parità di frequenza dell'unità FPU del P4. In teoria quindi CPUBench2002 dovrebbe fornire buone info riguardanti le prestazioni della propria CPU in vari ambiti. Per quanto riguarda i pesi, i bench ke pesano di + sono quelli ALU, FPU SP e DP (peso 4) seguiti da MIPS e MFLOPS (peso 3) e dai risultati della RAM (peso 1)
byez
e come ben sapete winMe è - veloce di win2k/Xp in superPi.
P.S. cmq non ho ancora visto il bench ram ALU e FPU bandwith del north di kikujiro.xchè non posti anche quello.
Ciao