[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