View Full Version : Core 2 Duo e Ottimizzazioni per GCC :p
linuxianoxcaso
05-06-2007, 19:34
Ciao a todos :O
presto mi prenderò un Core 2 Duo
e come al solito mio sto cercando i flags di ottimizzazione per Gcc più adatti :p
però cercando su internet ho visto una marea di cose e non ci capisco nulla :stordita:
ad esempio nella variabile CFLAGS
ho visto in varie parti che per X86 viene consigliata
-march=nocona oppure -march=pentium-m oppure -march=prescott
e per quanto riguarda altri flags non capisco se gcc abbia il supporto o meno delle SSE4 oppure no :p ( insieme a "-mmmx -msse -msse2 -msse3" )
anchio avevo molti problemini quando usavo gentoo sul mio core duo però non core 2 duo.
mi ricordo che le flag nocona sono quelle per i prescott (pentium4) e per usare di questi le flags emt64, per cui compileresti codice a 64bit e se sei su una distro a 32-bit no good.
e da alcuni test con queste flag si ottenevano generalmente dei binari più ottimizzati (anche se io li prenderei con le pinze ;) )
sul mio ho sempre usato le flags pentium-m visto che, anche se è tecnologia core di 1 generazione alla fine sono due core dothan (pentium-m) con alcune ottimizzazioni tipo SSE3.
però ora non sono aggiornato e ho visto che nel kernel è comparsa l'opzione core 2 duo nella parte relativa alla CPU, magari hanno aggiunto anche questa opzioni in GCC.
secondo me la miglior cosa da fare, giudicando l'argomento, è quella di andare nel wiki di gentoo.
http://gentoo-wiki.com/Safe_Cflags
qua ci sono le flags che il wiki consigli per gentoo, anche se sarebbe meglio o chiedere nella parte del forum relativa a gentoo o aspettare che un gentooista passi di qui.
io non le avevo seguite queste impostazioni.
informati bene, specialmente se devi installarti una gentoo, prima preparati bene mentalmente tutto il make.conf o sono cxxxx se ti dimentichi qualcosa,
io ad esempio mi ero dimenticato la flag zeroconf nel make.conf e ho dovuto ricompilarmi tutto il kde che portage diceva solo per una flag
anche se gentoo rimarra sempre la N1 e appena mi prendo un fisso solo lei potrà finirci dentro :O :cool:
linuxianoxcaso
05-06-2007, 19:59
anchio avevo molti problemini quando usavo gentoo sul mio core duo però non core 2 duo.
mi ricordo che le flag nocona sono quelle per i prescott (pentium4) e per usare di questi le flags emt64, per cui compileresti codice a 64bit e se sei su una distro a 32-bit no good.
e da alcuni test con queste flag si ottenevano generalmente dei binari più ottimizzati (anche se io li prenderei con le pinze ;) )
sul mio ho sempre usato le flags pentium-m visto che, anche se è tecnologia core di 1 generazione alla fine sono due core dothan (pentium-m) con alcune ottimizzazioni tipo SSE3.
però ora non sono aggiornato e ho visto che nel kernel è comparsa l'opzione core 2 duo nella parte relativa alla CPU, magari hanno aggiunto anche questa opzioni in GCC.
secondo me la miglior cosa da fare, giudicando l'argomento, è quella di andare nel wiki di gentoo.
http://gentoo-wiki.com/Safe_Cflags
qua ci sono le flags che il wiki consigli per gentoo, anche se sarebbe meglio o chiedere nella parte del forum relativa a gentoo o aspettare che un gentooista passi di qui.
io non le avevo seguite queste impostazioni.
informati bene, specialmente se devi installarti una gentoo, prima preparati bene mentalmente tutto il make.conf o sono cxxxx se ti dimentichi qualcosa,
io ad esempio mi ero dimenticato la flag zeroconf nel make.conf e ho dovuto ricompilarmi tutto il kde che portage diceva solo per una flag
anche se gentoo rimarra sempre la N1 e appena mi prendo un fisso solo lei potrà finirci dentro :O :cool:
io sono un Archista e di solito mi ricompilo OO.o Glibc Kernel e i programmi che uso da CVS/SVN/GIT :p
sono andato sul wiki di gentoo :p
però ad esempio non nomina per nulla le sse3 come con altri processori quindi ero un po perplesso :p
comunque ora mi faccio una ricerchina sul forum it di gentoo :p
VegetaSSJ5
05-06-2007, 20:04
compilare e usare una distro con pacchetti precompilati mi sembra un controsenso...
Se vuoi un ambiente x86 devi usare -march=pentium-m - mmmx -msse -msse2 -msse3, in ambiente x86-64 si consiglia l'uso di -march=nocona - mmmx -msse -msse2 -msse3 ma l'ottimizzazione non è il massimo in questo caso. :)
Con la prossima versione di gcc gli sviluppatori hanno previsto la presenza di nuove flag di ottimizzazione per i Core Duo (i Core Solo possono utilizzare quelle per i Pentium M), Core 2 Duo e Core 2 Quad. :p
PS: non sono al corrente del supporto da parte di gcc delle istruzioni SSSE3 e SSE4 (che non sono presenti nei Core 2 Duo/Quad). :boh:
linuxianoxcaso
05-06-2007, 20:19
compilare e usare una distro con pacchetti precompilati mi sembra un controsenso...
che ti devo dire , mi diverto con poco io http://img517.imageshack.us/img517/5980/47550715460334e613e6a69ep7.gif (https://addons.mozilla.org/firefox/1174)
linuxianoxcaso
05-06-2007, 20:21
Se vuoi un ambiente x86 devi usare -march=pentium-m - mmmx -msse -msse2 -msse3, in ambiente x86-64 si consiglia l'uso di -march=nocona - mmmx -msse -msse2 -msse3 ma l'ottimizzazione non è il massimo in questo caso. :)
Con la prossima versione di gcc gli sviluppatori hanno previsto la presenza di nuove flag di ottimizzazione per i Core Duo (i Core Solo possono utilizzare quelle per i Pentium M), Core 2 Duo e Core 2 Quad. :p
PS: non sono al corrente del supporto da parte di gcc delle istruzioni SSSE3 e SSE4 (che non sono presenti nei Core 2 Duo/Quad). :boh:
Grazie :D
I quad (che poi sarà il procio che prenderò) sono sicuro che supporti le SSE4 ma non so le SSSE3 :p
allora speriamo che rilascino presto la nuova versione di GCC :D
AnonimoVeneziano
05-06-2007, 20:27
I core 2 duo attuali supportano SSE3 , ma non supportano SSE4
Ciao
PS: posto il cat /proc/cpuinfo per mostrare tutte le estensioni disponibili, dal cat sembra che le SSE3 non ci siano, ma il realtà ci sono
melchior:/home/melchior# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz
stepping : 6
cpu MHz : 1333.000
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
bogomips : 4000.00
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz
stepping : 6
cpu MHz : 1333.000
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
bogomips : 3994.72
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
melchior:/home/melchior#
linuxianoxcaso
05-06-2007, 20:39
I core 2 duo attuali supportano SSE3 , ma non supportano SSE4
Ciao
PS: posto il cat /proc/cpuinfo per mostrare tutte le estensioni disponibili, dal cat sembra che le SSE3 non ci siano, ma il realtà ci sono
pni mi sembra sia quella che indica che supporta SSE3
comunque ho controllato, mi sono confuso il quad supporta le SSSE3 ma non le SSE4 :p
zephyr83
05-06-2007, 20:47
Se vuoi un ambiente x86 devi usare -march=pentium-m - mmmx -msse -msse2 -msse3, in ambiente x86-64 si consiglia l'uso di -march=nocona - mmmx -msse -msse2 -msse3 ma l'ottimizzazione non è il massimo in questo caso. :)
Con la prossima versione di gcc gli sviluppatori hanno previsto la presenza di nuove flag di ottimizzazione per i Core Duo (i Core Solo possono utilizzare quelle per i Pentium M), Core 2 Duo e Core 2 Quad. :p
PS: non sono al corrente del supporto da parte di gcc delle istruzioni SSSE3 e SSE4 (che non sono presenti nei Core 2 Duo/Quad). :boh:
ma aggiungere -mmmx -msse -msse2 non è inutile? quando in march si mette il "tipo" di processore, tipo -prescott queste flag sn tute già incluse. Ri propongo di nuovo questo link http://gentoo-wiki.com/Safe_Cflags
ma aggiungere -mmmx -msse -msse2 non è inutile? quando in march si mette il "tipo" di processore, tipo -prescott queste flag sn tute già incluse. Ri propongo di nuovo questo link http://gentoo-wiki.com/Safe_Cflags
Si sono inutili, ma non hanno mai fatto male se si rispettano quelle disponibili. ;)
manowar84
05-06-2007, 21:17
le ss3 ci sono!
cmq tocca aspettare il gcc 4.3 per aggiungere march=core2 ! :D
linuxianoxcaso
05-06-2007, 21:19
ma aggiungere -mmmx -msse -msse2 non è inutile? quando in march si mette il "tipo" di processore, tipo -prescott queste flag sn tute già incluse. Ri propongo di nuovo questo link http://gentoo-wiki.com/Safe_Cflags
ho già visto li ;)
solo che in giro ho visto che erano consigliate altri flag e per sicurezza ho chiesto ;)
zephyr83
05-06-2007, 22:18
Ma tutte queste ricompilazioni su "misura" servono davvero a qualcosa? Ci sn dsitro tipo slackware precompilate per 486 che volano rispetto a distro 686. Ho provato più volte a installare gentoo ottimizata per il mio sistema ma bene o male va come frugalware (precompilato per 686). Magari installando un sistema dalla base (tipo gentoo) può anche servire (anche se tutti sti vantaggi nn li ho riscontrati....però in compenso perdo un giorno INTERO a ricompialare tutto) ma i singoli pacchetti mi sembra alquanto inutile! Magari qualche programma specifico, tipo di grafica o video (nn a livello amatoriale) che sfrutta determinate istruzioni può servire ma in generale mi sembra totalmente inutile.
linuxianoxcaso
06-06-2007, 08:34
Ma tutte queste ricompilazioni su "misura" servono davvero a qualcosa? Ci sn dsitro tipo slackware precompilate per 486 che volano rispetto a distro 686. Ho provato più volte a installare gentoo ottimizata per il mio sistema ma bene o male va come frugalware (precompilato per 686). Magari installando un sistema dalla base (tipo gentoo) può anche servire (anche se tutti sti vantaggi nn li ho riscontrati....però in compenso perdo un giorno INTERO a ricompialare tutto) ma i singoli pacchetti mi sembra alquanto inutile! Magari qualche programma specifico, tipo di grafica o video (nn a livello amatoriale) che sfrutta determinate istruzioni può servire ma in generale mi sembra totalmente inutile.
beh io ho provato a ricompilare The Gimp (2.3) , OO.o , aMule e altri ... e sinceramente io la differenza la sento :p
invece ad esempio ricompilando amsn ( e relative Tk/Tcl ) non cambia poi molto ... dipende pure dai programmi :p
e poi di solito mi ricompilo programmi che comunque uso abbastanza spesso o che prendo da svn e mi faccio il pacchetto :p
e anche se guadagno un 10% in prestazioni, cercare di mettere flag più adatti al processore male non fa ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.