[Linux-Biella] DOMANDA: COMPILAZIONE

Roberto Zanetto zanetto a iol.it
Dom 30 Nov 2008 17:20:56 CET


Paul TT ha scritto:
> 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
>
>   
Domanda: il compilatore ottimizza per il processore che trova nella 
macchina oppure per il processore settato nel kernel oppure per una 
architettura generica i386 come lo sono i pacchetti che si scaricano?



Maggiori informazioni sulla lista Linux