[hack] pellipoverell..
John Doe
johndoe@pctuner.net
Ven 23 Apr 2004 12:32:08 CEST
On Fri, 2004-04-23 at 09:46, LoSpippolo wrote:
> > On Thu, 2004-04-22 at 17:58, Alex.u wrote:
> > > giovedì 22 aprile 2004, alle 18:00, John Doe scrivacchia:
> > >
> > > > Basta? Domande? Precisazioni? una pagina arancione? :p
> > > No! Tante! Per ora no;) Ovvio! >8-[
> >
> > Fai fai domande, io non so più che scrivere :D
>
> io io io io io
>
> un po' di switch per make.conf per i vari processori ?
>
> anche una pagina web va' bene...
guarda, sui cflags ci sono battaglie in tutto il web. Io ti posso dare
dei consigli. Allora, innanzitutto _tendenzialmente_ i programmi
compilati in C++ son molto più sensibili ai flags. Ah, se i flags son
troppo aggressivi, lo vedi che ti da errori vari in compilazione..
Cmq, parto mettendo le mie flags: per capirle ci vuole un minimo di
conoscenza di architettura dei calcolatori... proprio poca, ma almeno un
briciolo si :p Cmq, il manuale di gcc viene incontro.. anzi, l'info di
gcc :P
CFLAGS="-march=athlon-xp -mcpu=athlon-xp -O3 -pipe
-mpreferred-stack-boundary=8 -m128bit-long-double
-maccumulate-outgoing-args -fforce-addr -fprefetch-loop-arrays
-ffast-math -mmmx -m3dnow -msse -mfpmath=sse -fPIC -funroll-loops"
allora, questi sono MOLTO aggressivi. Sopratutto -ffast-math e
-funroll-loops. Vedete anche che sono ridondanti, ovvero march=athlon-xp
dovrebbe sottointendere "-mcpu=athlon-xp -mmmx -m3dnow -msse", altri
invece tra quelli che ho specificato io sono compresi in 03... però,
dato che alcuni ebuild filtrano 03 e -march=XXXX io li frego mettendoli
doppi. Poi ovviamente se li filtrano un motivo c'è, ma io sono testone e
provo ugualmente.
Sorvolo (si potrebbe entrare nella never-ending story) su quanto sia il
performance increase rispetto a flags più tranquilli.
Cmq, fatto sta che sti flags ogni tanto danno problemi, quindi vado di
fallback su questi, che mi sento di consigliare a tutti i possessori di
athlon-xp
CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -mmmx -m3dnow
-msse -mfpmath=sse"
Una possibile variante è di usare 02, infatti si ha due vantaggi
innegabili (1: ci mette 2/3 del tempo a compilare rispetto a 03; 2: il
binario più piccolo in kB) e _non si sa_ quanto sia meno veloce di 03,
alcuni addiritura sostengono che 02 alla fine sia più veloce di 03.
Direi che se nn siete maniaci usare 02 è meglio, da meno problemi...
Per i CXXFLAGS (quelli C++) io uso questi (in ordine se ho problemi):
CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -mmmx -m3dnow
-msse -mfpmath=sse -funroll-loops -fPIC"
CXXFLAGS="-O2 -pipe -march=athlon-xp -mcpu=athlon-xp"
CXXFLAGS="-O2 -pipe -march=i686"
Se vi state chiedendo come faccio a usare o uno o l'altro: semplice, li
tengo tutti nel make.conf, e commento tutti quelli che non uso,
lasciando non commentati una sola riga per i CFLAGS e una sola per i CXX
Se volete approfondire, andate sul forum di gentoo... e da li cercate e
viene fuori una montagna di post riguardo all'argomento, anche nella
sezione italiana.
John
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome: non disponibile
Tipo: application/pgp-signature
Dimensione: 189 bytes
Descrizione: This is a digitally signed message part
URL: <http://lists.linux.it/pipermail/golem-hack/attachments/20040423/18438bf5/attachment.pgp>
Maggiori informazioni sulla lista
golem-hack