PDA

View Full Version : Piccolo nuovo Benchmak CPU


shodan
04-04-2003, 19:27
Innanzitutto premetto che se ho postato in questa sezione è perchè mi è sembrata la più appropriata... ma naturalmente se i mod decidessero di spostare la discussione in un'altra sezione va benissimo! :)

Lo scopo di questa discussione è quella di valutare un piccolo benchmark che ho scritto in C... vorrei avere più risultati possibili per capire se è un test tutto sommato valido oppure non vale una cicca! :D
Avevo pensato di postare nella sezione "Programmazione", ma non credo che li possa interessare a molti un benchmark... qui invece è pieno di maniaci dei bench (come me d'altronde :D:D:D)!!!.
Allego anche il codice sorgente per chi volesse dargli un'occhiata.
Naturalmente sono solo agli inizi con il C, qui il test è decisamente spartano (anche il codice è estremamente semplice).

Per tutti coloro che lo volessero provare, allego l'eseguibile.

Ah quasi dimenticavo... funziona SOLO sul linux (l'ho scritto su una redhat 7.3 e l'ho compilato con il gcc).

Ciao a tutti e grazie mille! :)

Innominato
04-04-2003, 20:34
aspè mo lo provo...

Innominato
04-04-2003, 20:47
A parte che non mi visualizza manco l'eseguibile ma solo il main.c, ho provato a ricompilare con kdevelop e mi dà un sacco di errori... forse meglio se ci dai un occhio.

P.s. a no mi visualizza l'eseguibile ...

diafino
04-04-2003, 20:58
buuuu :rolleyes:

shodan
04-04-2003, 23:31
Originally posted by "Innominato"

A parte che non mi visualizza manco l'eseguibile ma solo il main.c, ho provato a ricompilare con kdevelop e mi dà un sacco di errori... forse meglio se ci dai un occhio.

P.s. a no mi visualizza l'eseguibile ...

Innanzitutto grazie per averlo provato. :)
Per gli errori non so che dirti... io lo compilo con gcc ed è tutto ok. Probabilmente gli da perchè non ho inserito tutti gli include, visto che sul mio sistema molti vengono "presi" di default.

Ma l'eseguibile parte? Che risultati hai?

Grazie e ciao! :)

shodan
04-04-2003, 23:32
Originally posted by "diafino"

buuuu :rolleyes:

Ehm... mi pare non ti sia piaciuto molto! :D:D:D

Quali erroracci hai beccato? Non si compila? Da risultati sballti? Le routine di bench sono schifose (questo sicuro :D)?

Mi spiace tempestarti di domande ma se non capisco cosa non va non posso correggerlo!!! :)

CIAO! :)

cionci
05-04-2003, 11:51
L'eseguibile non mi funziona... Esce un errore strano sul sottosistema a 16 bit...

Per compilarlo con Dev-C++ mi manca la funzione getitmeofday...

riaw
05-04-2003, 13:29
Originally posted by "shodan"

Innanzitutto premetto che se ho postato in questa sezione è perchè mi è sembrata la più appropriata... ma naturalmente se i mod decidessero di spostare la discussione in un'altra sezione va benissimo! :)

Lo scopo di questa discussione è quella di valutare un piccolo benchmark che ho scritto in C... vorrei avere più risultati possibili per capire se è un test tutto sommato valido oppure non vale una cicca! :D
Avevo pensato di postare nella sezione "Programmazione", ma non credo che li possa interessare a molti un benchmark... qui invece è pieno di maniaci dei bench (come me d'altronde :D:D:D)!!!.
Allego anche il codice sorgente per chi volesse dargli un'occhiata.
Naturalmente sono solo agli inizi con il C, qui il test è decisamente spartano (anche il codice è estremamente semplice).

Per tutti coloro che lo volessero provare, allego l'eseguibile.

Ah quasi dimenticavo... funziona SOLO sul linux (l'ho scritto su una redhat 7.3 e l'ho compilato con il gcc).

Ciao a tutti e grazie mille! :)


compilato perfettamente e perfettamente funzionante su mdk 9.0 con gcc 3.2

ecco i risultati (sorry ma nel passaggio win-->linux si sono sputtanati i ritorni a capo)

------------------------------------------------------------------------------------------|
IL TUO SISTEMA:

-------------------------------------------------------------------------------------------


ALU: - 52.470596% (10.785088 sec.)

FPU: - 31.785760% (43.695667 sec.)

MEM STR: - 69.583869% (283.445709 MB/s)

MEM RND: - 64.885944% (211.804596 MB/s)

------------------------------------------------------------------------------------------|

shodan
05-04-2003, 17:37
Grazie, grazie a tutti gli amici di hwupgrade che l'hanno provato. :)
Cionci in che ambienta l'hai compilato? Mi è parso di capire che hai provato a compilarlo sotto windows... se è così potresti provere a compilarlo con CgyWin, che in genere da risultati + che soddisfacenti. :)
Riaw grazie dei risultati! Che hardware hai? Così cerco di aumentare un po' il database del programmino... :D Ah un'altra cosa: la tabella riassuntiva ti funziona bene o mostra dei caratteri a caso? Che opzione hai usato per visulizzarla?
Io personalmente ho riscontrato un forte vantaggio per gli athlon nel calcolo floating point... vediamo se qualcuno può confermarmelo.

Grazie e ciao! :)

cionci
05-04-2003, 18:18
Se mi dice cosa fa gettimeofday te ne faccio una versione Windows..

shodan
05-04-2003, 18:22
Originally posted by "cionci"

Se mi dice cosa fa gettimeofday te ne faccio una versione Windows..

Non fa altro che ritornare il numero di secondi e microsecondi della cosidetta EPOCH (mi sembra sia l'anno 1970 ma non ricordo il giorno e l'ora). In ogni caso la uso come un timer: la eseguo prima del bench e di nuovo dopo l'esecuzione dello stesso, in modo da avere una valutazione precisa sul tempo trascorso. Se dai un'occhiatata al codice forse è più chiaro... è che come al solito mi esprimo da cane! :D

CIAO! :)

riaw
05-04-2003, 19:51
Originally posted by "shodan"

Grazie, grazie a tutti gli amici di hwupgrade che l'hanno provato. :)
Cionci in che ambienta l'hai compilato? Mi è parso di capire che hai provato a compilarlo sotto windows... se è così potresti provere a compilarlo con CgyWin, che in genere da risultati + che soddisfacenti. :)
Riaw grazie dei risultati! Che hardware hai? Così cerco di aumentare un po' il database del programmino... :D Ah un'altra cosa: la tabella riassuntiva ti funziona bene o mostra dei caratteri a caso? Che opzione hai usato per visulizzarla?
Io personalmente ho riscontrato un forte vantaggio per gli athlon nel calcolo floating point... vediamo se qualcuno può confermarmelo.

Grazie e ciao! :)

allora, c'era un leggero spallinamento di alcune righe verticali | e orizzontali _ esattamente sotto la scritta "il tuo sistema".
per visualizzare la tabella, se nn ricordo male, ho premuto "t"
per il resto la macchina è:
portatile hp omnibook xe3
p3 866 mobile.
256 pc133
30hd ibm:
10 giga winxp pro fat32, 14 giga home 256 mega swap il resto / sotto mdk 9.0
dvd 8x
chipset intel 830m, grafica integrata a memoria condivisa (l'allocazione della memoria è dinamica da 8 a 64mega).
ti serve altro?
appena trovo un floppy lo faccio girare anche sul pc muletto (k6-2 550)

ciao ciao!

riaw
05-04-2003, 19:54
approposito, mi ricordo che i test davano prestazioni più elevate se venivano fatti girare uno alla volta e prestazioni più basse se si lanciava il test completo.

domani provo meglio ;) .

Innominato
06-04-2003, 00:19
-------------------------------------------------------------------------------- -----------
| IL TUO SISTEMA: |
-------------------------------------------------------------------------------- -----------

ALU: - 99.646646% (5.679067 sec.)

FPU: - 91.731408% (15.140943 sec.)

MEM STR: - 117.046833% (476.783264 MB/s)

MEM RND: - 113.489926% (370.460632 MB/s)

-------------------------------------------------------------------------------- ----------|
Si, in effetti anche a me ha sballato i trattini, cmq io ho:
CPU XP 1700+ (1463 mhz)
RAM 256mb DDR cas 2 (133 mhz) 5-2-2
MOBO ABIT KR7A raid
tutto @default, no overclock
Red hat 8.0

cionci
06-04-2003, 10:36
Ecco qua la versione Windows...

cionci
06-04-2003, 10:40
ALU: 114.915944(4.924469 sec.)

FPU: 89.474573(15.522846 sec.)

MEM STR: 92.747927(377.803101 MB/s)

MEM RND: 82.021129(267.738281 MB/s)

XP 1800+ (11.5*133)
KT133A con ram PC133 CAS 2
Windows 2000 Pro

Innominato
06-04-2003, 11:36
ALU: -114.097161(4.959808 sec.)

FPU: -88.497517(15.694225 sec.)

MEM STR: -116.978252(476.503876 MB/s)

MEM RND: -127.268803(415.438446 MB/s)
Sta volta sempre
XP 1700+
256 MB DDR CAS 2
KR7A RAID
MA con windows xp.

kucciolone
06-04-2003, 12:06
ALU: 122.760822 (4.609777 sec)
FPU: 98.251639 (14.136150 sec)

MEM RND: 113.546391 (466.597854 Mb/Sec)
MEM RND: 110.698521 (361.348767 Mb/Sec)


Su portatile XP2000+ e 512 Mb DDR. (naturalmente non in risparimo energetico)

shodan
06-04-2003, 13:36
Uao... grazie a tutti! :)
Ho letto che c'è qualche problema con la tabella... mi sono dimenticato di dirvi che essa viene visualizzata senza problemi solo con una finestra terminale aperta a pieno schermo in modalità grafica (quindi una finestra terminale avviata da un windows manager). In questo modo i problemi dovrebbero sparire...
Ciò che invece mi da più di un grattacapo sono i caratteri grafici che uso per le barre delle prestazioni: di default ho messo l'asterisco, ma visivamente non è un granchè. Purtroppo la visualizzazione di caratteri grafici dipende in gran parte delle termcap, e non ho capito un granchè sul loro utilizzo! :D
Volevo anche avvisarvi che, avendo fatto diverse modifiche al PC, ho aggiornato il programmino mettendo un nuovo punto di riferimento. Vi prego se vi è possibile di usare questa nuova versione, perchè il vecchio riferimento (Athlon XP 1900+ ecc.) l'ho testato in condizioni probabilmente non ottimali (quindi le prestazioni sono al di sotto del dovuto).

Ecco le specifiche del nuovo riferimento:
- processore Athlon XP 1600+ @ 1716 (143*12);
- scheda madre ECS K7S6A (chipset SiS 745);
- 512 MB di memoria PC333 @ 143Mhz; timings: CAS 2 - RAS 2 - Active to Precharge 6 (più qualche altro settaggio "proprietario" della K7S6A);
Le altre periferiche credo non contino un granchè.

L'ambiente software sul quale l'ho fatto girare vede invece una RedHat 7.3 con Windows Maker come windows manager (rispetto a KDE ho notato un certo boost nei risultati dell'ALU).

Un grazie a Riaw per avermi segnalato quel comportamento anormale: sul mio sistema mi sembra che ciò non accada ma indagherò meglio! ;)

Fra non molto spero di rilasciare una nuova versione con un piccolo database dei risultati (costruito grazie alla vostra gentilezza :)) e con un test RAM anche in LETTURA (quello attuale testa la velocità in SCRITTURA). Più il la mi auguro di riuscire a programmare una versione grafica del bench (ma mooolto in la! :p).

Un saluto e un ringraziamento a tutti. :)

PS: Cionci come hai fatto a "trasportare" la funzione gettimeofday? Grazie molto per la versione windows! :)

cionci
06-04-2003, 16:26
Apri il file...c'è anche il codice...e si può ricompilare sia sotto Windows che sotto Linux con lo stesso sorgente...

AnonimoVeneziano
06-04-2003, 16:28
Mo lo provo

Ciao

Thunder82
06-04-2003, 23:53
Windows XP
Athlon xp @ 167x12 = 2000MHz
512DDR @ 333MHz cas2
Epox 8k5a2+ (kt333+vt8235)

Risultati:

ALU: 152.401416% (3.713220 sec.)
FPU: 117.611051% (11.809264 sec.)
MEM STR: 151.164627% (615.760010 MB/s)
MEM RND: 210.745454% (687.927979 MB/s)

Durante il test stavo scaricando da internet, quindi i risultati a sistema in quiete magari sono un peletto più alti...

shodan
07-04-2003, 10:03
Originally posted by "Thunder82"

Windows XP
Athlon xp @ 167x12 = 2000MHz
512DDR @ 333MHz cas2
Epox 8k5a2+ (kt333+vt8235)

Risultati:

ALU: 152.401416% (3.713220 sec.)
FPU: 117.611051% (11.809264 sec.)
MEM STR: 151.164627% (615.760010 MB/s)
MEM RND: 210.745454% (687.927979 MB/s)

Durante il test stavo scaricando da internet, quindi i risultati a sistema in quiete magari sono un peletto più alti...

Grazie mille!
Thunder credo che tu abbia usato la "vecchia" versione del bench... se non ti crea disturbo potresti rifarlo con quella nuova? I risultati assoluti non dovrebbero cambiare, ma dovrebbero essere calcolati in modo più "corretto" quelli relativi (in pratica il calcolo delle percentuali non era molto esatto perchè erano sbagliati i risultati della macchina che veniva considerata il 100%). Grazie ancora! :)
Ho notato comunque che sotto Windows i risultati sono discretamente più alti (soprattutto i risultati dell'alu e della memoria)... qualcuno ha un'idea del perchè?

Grazie e ciao! :)

Thunder82
07-04-2003, 13:25
Se fai una versione win anche del secondo bench faccio anche il secondo, xchè io non uso linux ;)
Probabilmente winXP ha una gestione migliore della memoria rispetto a linux, e anche qualche ottimizzazione qua e là per le SSE dell'athlon XP

shodan
07-04-2003, 13:33
Originally posted by "Thunder82"

Se fai una versione win anche del secondo bench faccio anche il secondo, xchè io non uso linux ;)
Probabilmente winXP ha una gestione migliore della memoria rispetto a linux, e anche qualche ottimizzazione qua e là per le SSE dell'athlon XP

Rigiro il post direttamente a Cionci: potresti ricompilare anche questa versione? So che rompo, ma mi sto attrezzando per poter compilare anche sotto windows! :p

CIAO! :)

massidifi
07-04-2003, 14:58
Windows Xp
P4 2000@2660Mhz (fsb 533Mhz)
512Mb DDR @354
Epox 4g4a+ (intel 845g)

ALU=131,340289 (4,308655 sec.)
FPU=72,634022 (19,121893 sec.)
MEM STR=212,044692 (863,751343 sec.)
MEM RND=138,116956 (450,849640 sec.)

cionci
07-04-2003, 15:18
Originally posted by "shodan"

Rigiro il post direttamente a Cionci: potresti ricompilare anche questa versione? So che rompo, ma mi sto attrezzando per poter compilare anche sotto windows! :p
Ok...ma includi le modifiche che ho fatto io sul sorgente dell'utlima versione, almeno lo porti avanti con le modifiche (PS: la funzione select va rinominata ;) Non so se hai notato che ci ho messo un underscore davanti)...

shodan
07-04-2003, 19:52
Originally posted by "cionci"


Ok...ma includi le modifiche che ho fatto io sul sorgente dell'utlima versione, almeno lo porti avanti con le modifiche (PS: la funzione select va rinominata ;) Non so se hai notato che ci ho messo un underscore davanti)...

Ecco qui il sorgente corretto. Se non ti reca disturbo e puoi ricompilarlo per windows te ne sarei grato! :)

PS: sei forte in C a quello che vedo (ti ho 'spiato' un po' anche nella sezione programmazione! ;))! Se mi serve qualche consiglio tecnico credo che potresti ritrovarti un PVT... :D
Sempre che non ti rechi disturbo... :)


CIAO! :)

Klubbingman
07-04-2003, 23:07
Per ora ho avuto questi risultati con diversi programmi aperti e configurazione non definitiva:

ALU: 116.202208(4.869959 sec.)
FPU: 91.116502(15.243122 sec.)
MEM STR: 104.468536(425.546326 MB/s)
MEM RND: 102.862024(335.768372 MB/s)

Configurazione:
AMD Athlon XP 2000+
512MB DDR333 (viaggiano però a 266)
Epox 8kha+
Windows XP Professional Service Pack 1

Appena finisco l'upgrade del pc, faccio girare di nuovo il programma e posto i risultati. ;)

cionci
08-04-2003, 00:10
Mi preoccupa questa istruzione...

int b = b+(a*(x));

cionci
08-04-2003, 00:32
Eccolo qua compilato con Dev-C++...

Perchè il testo non lo adatti allo standard 80 caratteri ?

cionci
08-04-2003, 00:35
Originally posted by "shodan"


Sempre che non ti rechi disturbo... :)

Fai pure... ;)

Klubbingman
08-04-2003, 01:06
Originally posted by "cionci"

Eccolo qua compilato con Dev-C++...

Perchè il testo non lo adatti allo standard 80 caratteri ?
Risultati con la seconda versione:

ALU: 97.235648(4.841846 sec.)
FPU: 86.404040(14.668295 sec.)
MEM STR: 83.909202(430.499542 MB/s)
MEM RND: 85.101539(391.566650 MB/s)

shodan
08-04-2003, 08:29
Originally posted by "cionci"

Eccolo qua compilato con Dev-C++...

Perchè il testo non lo adatti allo standard 80 caratteri ?

Intendi per un terminale di 80 caratteri? Mi sembrava che su un terminale a 80 caratteri andasse bene visto che nell'xterm di linux ingrandito a tutto schermo non ci sono problemi... solo poi ho pensato che su un simile terminale i caratteri sono + di 80 (circa 140 se ben ricordo)!!! :p
Oggi o domani vedo di correggerlo... ;)
Per quanto riguarda la funzione int b = b+(a*(x)) cosa c'è che ti insospettisce? In pratica la uso come bench per l'ALU... pensi non sia adeguata?

Grazie per la disponibilità cionci! :)

E grazie a tutti quelli che stanno provando il mio bieco programmino! :)

mvant
08-04-2003, 09:21
alu 110.927133 (4.244228 sec.)
fpu 99.449889 (12.744106 sec.)
mem str 105.732942 (542.467102 MB/s)
mem rnd 100.347769 (461.717163 MB/s)


xp 2200+
512MB 333Mhz cas 2 2T6T2T
Abit KD7
win 2000 prof service pack 3

;)

Marco

cionci
08-04-2003, 09:55
Originally posted by "shodan"


Per quanto riguarda la funzione int b = b+(a*(x)) cosa c'è che ti insospettisce? In pratica la uso come bench per l'ALU... pensi non sia adeguata?
Sul fatto che sia adeguata è difficile discutere... Bisognerebbe vedere cosa vuoi testare...e di conseguenza fare una statistica delle operazioni che devono comporre il benchmark...

Mi insospettisce perchè usi b quando ancora non è inizializzato...

shodan
08-04-2003, 15:29
Originally posted by "cionci"


Sul fatto che sia adeguata è difficile discutere... Bisognerebbe vedere cosa vuoi testare...e di conseguenza fare una statistica delle operazioni che devono comporre il benchmark...

Mi insospettisce perchè usi b quando ancora non è inizializzato...

Allora... la funzione da te citata mi serve come rudimentale benchmark per la ALU, in quanto queste operazioni dovrebbero essere eseguite solo moltiplicazioni e addizioni senza necessità di effettuare calcoli in virgola mobile.
La variabile b non è dichiarata precedentemente perchè deve avere validità solo all'interno del ciclo for, quindi credo non serva dichiararla in cima alla funzione (tu che dici? Forse sarebbe meglio dichiararla prima?).

Ciao e grazie! :)

cionci
08-04-2003, 15:48
Il fatto è che b lo utilizzi all'interno dell'espressione che inizializza b stesso... Il Visual C++ ad esempio si incacchia...

shodan
08-04-2003, 16:14
Originally posted by "cionci"

Il fatto è che b lo utilizzi all'interno dell'espressione che inizializza b stesso... Il Visual C++ ad esempio si incacchia...

Già... però sul libro che ho letto (un po' vecchio a dire il vero :p) è scritto che è possibilile dichiarare e definire una variabile allo stesso tempo... ciò che non è possibile è definire una variabile non dichiarata in senso assoluto. Infatti in quell'espressione b è preceduto dal tipo (int) , proprio a indicare che la dichiarazione e la definizione avvengono insieme. Dici che così il codice fa cagare? :D

CIAO! :)

checo
08-04-2003, 18:33
cionci cosa mi consigli come compilatore c++???

io sono fermo al bordlan 5-02, però ad esempio sto programma non me lo compila da errori :(

visual c++ va bene???