[Linux-Biella] DOMANDA: COMPILAZIONE
Paul TT
paultt a bilug.linux.it
Sab 29 Nov 2008 10:55:22 CET
Roberto Zanetto wrote:
> Piero Triverio ha scritto:
>
>> On Thu, 27 Nov 2008 11:41:19 +0100
>> Roberto Zanetto <zanetto a iol.it> wrote:
>>
>>
>>
>>> Secondo una rivista dell'IEEE il compilatore Intel Linux svernicia il
>>> compilatore GNU C per applicazioni cad, grafica vettoriale, calcolo
>>> fisico (videogiochi), calcolo scientifico.... quindi qualcosa da zappare
>>> c'e'! Non e' che voglio zappare l'aria
>>>
>>>
>> Si, e' vero, il compilatore Intel genera codice piu' ottimizzato rispetto a GCC, cosi'
>> come altri compilatori commerciali come PGI, Pathscale, etc etc.
>> Questo perche' GCC ha un altro obiettivo primario, quello di compilare di tutto e su molte
>> architetture, oltre che di essere libero.
>>
>> Come hai detto tu, la differenza si nota nelle applicazioni scientifiche, di grafica,
>> etc, molto meno su quelle di uso quotidiano, che sono piu' limitate da altri fattori (I/O
>> disco, memoria). Difficile che ricompilando il kernel con questi compilatori (ammesso di
>> riuscirci) si ottengano grandi miglioramenti...
>> Tieni anche presente che le parti critiche di alcune applicazioni (es. audio/video
>> decoding) sono gia' state ottimizzate e sfruttano automaticamente eventuali istruzioni
>> dedicate offerte dai processori.
>>
>>
>>
>>
> Ho gia' sentito piu' volte questo concetto: non ti preoccupare che
> intanto le applicazioni sono state fatte da Peter Norton anziche' da mia
> nonna quindi sfruttano ecc.
>
quelle di peter norton sfruttano il tuo pisello e le mie balle (le fanno
girare), al max
> A me non risulta; ho i dati di un benchmark per Core 2 su win xp con
> codec divX 6.6 e 6.7 la versione compilata per utilizzare sse4 e' piu'
> veloce del 30% nelle operazioni di encoding video.
> Ho fatto delle ricerche con google (come dite voi) e risulta che ad
> esempio i codecs linux non siano ottimizzati per sse4; il compilatore
>
sai cos'e' un codec? non credo.
(tra l'altro il codec divx fa cagare)
sse4 no, ma fino a ssse3 mencoder ci arriva, x264 anche 4, invece direi.
ma divx per encoding non costava, tra l'altro?
> gcc dalla versione 4.3 le utilizza, pero' non so come, cioe' penso
> debbano essere abilitate in qualche modo, cioe', come tutti i
> compilatori seri, avra' vari livelli di ottimizzazione presumo.
>
non e' certo compito del compilatore usare quelle istruzioni.
> Poi come fanno le applicazioni a utilizzare direttamente registri
> speciali della cpu se una delle tante sbandierate caratteristiche
> architetturali di Linux e' lo user space che, sacrificando le
> prestazioni, dovrebbe dare benefici in termini di stabilita' rispetto a
> win? Tertium non datur: allora e' win!
>
sacrificando che? ma dove? togliti dalla testa l'idea che una macchina
stabile e' una macchina che non puo' far nulla o va piano, quello _e'_
winzoz.
se non fa niente e' stabile (o quasi ;P)
> Tornando al problema: allora per ottimizzare il tutto rispetto a un
> processore dovrei compilare il kernel per quel processore, compilare le
> librerie utilizzate dal programma che mi interessa e compilare il programma.
>
si'.
> Domanda: supponendo che riesca a capire come si compila ottimizzando per
> un certa cpu un programma, come si fa a compilare una libreria?
>
apt-get source libmerda
cd libmerda-0.1.2.3
dpkg-buildpackage -b
;P
cmq non sempre il codice ottimizzato va piu' veloce di quello no.
adesso, non chiedermi il perche', ma e' cosi'
oppure chiedi a gugol
;P
--
"Beautiful breasts are like ripe fruits,
inviting the observer to pick them and nibble them."
Maggiori informazioni sulla lista
Linux