[FLUG] Re: Ottimizza tua sorella !

  • From: tomraider <paoloni@xxxxxxx>
  • To: fanolug@xxxxxxxxxxxxx
  • Date: Sat, 23 Nov 2002 23:41:31 +0100

Mailing List del Fortunae LUG
============================
On Saturday 23 November 2002 20:13, you wrote:

>
> 
> "Ottimizzare" è un concetto molto generico, ci sono milioni di modi di 
> ottimizzare un programma. In particolare, è probabile che nelle tue prove 
> siano coinvolte le famose istruzioni SIMD (mmx,sse,sse2) utili proprio in 
> situazioni tipo encoding (operazioni di somma e moltiplicazione tra
> matrici).
 E' probabile che il tuo compilatore abbia automaticamente usato
> queste istruzioni,come stanno cominciando a fare i compilatori "moderni".
> Anche se mi risulta che queste istruzioni abbiamo una sintassi leggermente
> diversa a seconda del s.o. e della CPU, Sembrerebbe che il tuo p4 abbia
> interpretato correttamente queste istruzioni, scritte inizialmente per
> Athlon. E' probabile che le ultime versioni del compilatore siano "furbe"
> in questo senso. Mi risulta, tra l'altro, che il
>   boost d
> i
>  prestazioni di queste 
> ottimizzazioni usate in "automatico" dal compilatore sia proprio
> nell'ordine 
 del 10-20% (possono raggiungere il 50% se usate da un bravo
> programmatore). Infine, è probabile che il compilatore agisca anche
> sull'ordine di esecuzione delle istruzioni, sul fatto di conoscere la cache
> L1 e L2 e la "profondità" della pipeline delle varie CPU. Ci sono molti
> parametri in gioco, come vedi! 
> 

Tutto quello che vuoi, ma e' assurdo che ottimizzando per il processore 
sbagliato sia meglio, non trovi ?
Signfiaca che quando compilo il kernel, per essere davvero sicuro di aver 
fatto il meglio, devo provare tutti i processori ?

Cmq ho fatto qualche altra prova e credo di essere giunto a conclusione che 
quella macchina ha qualcosa che non va, guarda un po' ...

Ho portato sul PC fisso (Athlon XP 1800+) gli eseguibili compilati e gia' 
testati sul portatile, risultato:

bladeenc_i686           0:34
bladeenc_athlon         0:31
bladeenc_i386           0:33

Tutti gli eseguibili erano compilati con gcc 2.96, rifaccio tutto con il gcc 
3.2 !

bladeenc_i686           0:24
bladeenc_athlon         0:24
bladeenc_i386           0:25

C'e' un particolare:

cat /proc/cpuinfo (del portatile)

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Pentium(R) 4 CPU 2.40GHz
stepping        : 4
cpu MHz         : 1792.759
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat 
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips        : 3578.26

Gli ho spiegato la cosa e mi ha detto che il suo fornitore gli ha detto che i 
P4 nei portatili usano 3 cicli su 4 che sarebbe esattamente 1800 !!!! Non ho 
parole !!!
Mai sentita un baggianata simile !
Il fatto e' che siccome il negoziante voleva fare il figo, ha messo sul 
portatile il processore piu' veloce che poteva ossia
un P4 2.4 con fsb a 533 Mhz.
In tutto questo ha tralasciato che la motherboard non e' in grado di generare 
i 533 Mhz necessari per farlo rullare ed il processore, che ha il 
moltiplicatore interno fissato a 4.5 (4.5*533=2398), cloccato a 400 va a 
1800; guarda caso 4.5 * 400 fa proprio 1800 (e non 3 cicli su 4) !
Ovviamente WinXP, che il negoziante aveva installato, diceva che il processore 
e' un P4 2.4 (e c'ha anche ragione) dimenticandosi di rivelare un particolare 
... che comunque va a 1800 Mhz !!!
Comunque adesso ha ordinato il P4 che dico io e quando arriva vediamo ... ma 
pensate che sta cosa possa ridurre cosi' tanto l'efficenza di tutta la 
macchina ???
In effetti il compilatore non ha conoscenza di questa cosa ma non credo faccia 
tutta questa differenza.
Il mio PC Athlon gira a 1800 (come il P4 del portatile) e il tempo di 
compressione e' 0:31 contro 1:36, il disco (quello da 2.5" e' notoriamente 
lento) non viene comunque utilizzato e altre cose non mi vengono in mente se 
non l'architettura del processore ovviamente diversa.

Che cosa ne pensate ?

Avete mai fatto test simili ?


Ciao, Thomas.



-- 

--
Nik: internet "frega".
--
--
Le raccomandazioni della mamma di simon "non prendere freddo, copriti... e 
prendi il palmare"

Other related posts: