il paradosso di absinthe (che egocentrico che sono :)
Moderatore: Staff
Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- absinthe
- Iper Master

- Messaggi: 2354
- Iscritto il: dom 15 mag 2005, 0:00
- Nome Cognome: Matteo Nunziati
- Slackware: 12.1 - defunct
- Kernel: 2.6.32-5-amd64
- Desktop: gnome
- Distribuzione: debian squeeze
- Località: Prato
- Contatta:
il paradosso di absinthe (che egocentrico che sono :)
dunque dunque,
ho bisogno di un chiarimento perchè l'altra sera mi sono incartato...
tutti sanno (lo so pure io!) che se uno vuole ottimizzare un pacchetto per la propria macchina è bene che se lo ricompili usando il proprio tipo di processore come target. fin qui tutto ok.
la cosa atroce che ho scoperto è che in realtà per migliorare ancora di più l'ottimizzazione occorrerebbe ricompilare prima tutta la toolchain..
orbene se questo è vero: per ricompilare la toolchain devo avere una toolchain. ad esempio in slack mi pare che questa sia ottimizzata per 486.
ora la toolchain non è altro che una serie di pacchetti a sua volta... indi per averla davvero ottimizzata la dovrei compilare con una toolchain ricompilata e ottimizzata a sua volta...
cioè:
per ottimizzare davvero un pacchetto avrei bisogno di una toolchain ottimizzata compilata con una toolchain ottimizzata compilata con...
ovvero:
"per compilare una toolchain ottimizzata devo già avere tale toolchain"
vi prego di chiarirmi dove sta la fregatura altrimenti pretendo il mezzo busto (fate voi quale: va bena anche la parte di sotto...)
ciaux,
M.
PS: non è che per caso gli "effetti parassiti" di una ottimizzazione realizzata con toolchains non ottimizzate vanno via via scomparendo?, cioè se compilo una toolchain con una toolchain non ottimizzata il pacchetto prodotto con tale toolchain ottimizzata se ne frega della prima toolchain?
PPS: non è che sta storia della ricompilazione della toolchain è una bufala?
ho bisogno di un chiarimento perchè l'altra sera mi sono incartato...
tutti sanno (lo so pure io!) che se uno vuole ottimizzare un pacchetto per la propria macchina è bene che se lo ricompili usando il proprio tipo di processore come target. fin qui tutto ok.
la cosa atroce che ho scoperto è che in realtà per migliorare ancora di più l'ottimizzazione occorrerebbe ricompilare prima tutta la toolchain..
orbene se questo è vero: per ricompilare la toolchain devo avere una toolchain. ad esempio in slack mi pare che questa sia ottimizzata per 486.
ora la toolchain non è altro che una serie di pacchetti a sua volta... indi per averla davvero ottimizzata la dovrei compilare con una toolchain ricompilata e ottimizzata a sua volta...
cioè:
per ottimizzare davvero un pacchetto avrei bisogno di una toolchain ottimizzata compilata con una toolchain ottimizzata compilata con...
ovvero:
"per compilare una toolchain ottimizzata devo già avere tale toolchain"
vi prego di chiarirmi dove sta la fregatura altrimenti pretendo il mezzo busto (fate voi quale: va bena anche la parte di sotto...)
ciaux,
M.
PS: non è che per caso gli "effetti parassiti" di una ottimizzazione realizzata con toolchains non ottimizzate vanno via via scomparendo?, cioè se compilo una toolchain con una toolchain non ottimizzata il pacchetto prodotto con tale toolchain ottimizzata se ne frega della prima toolchain?
PPS: non è che sta storia della ricompilazione della toolchain è una bufala?
- l1q1d
- Master

- Messaggi: 1862
- Iscritto il: lun 21 feb 2005, 0:00
- Località: In uno spazio n-dimesionale
- Contatta:
Considerando che se la teoria che tu auspichi fosse giusta nn ci sarebbe ottimizzazione allora per esclusione della prima ipotesi rimane solo la seconda opzione ovvero:
La toolchain si ottimizza tramite i parametri passati dall'utente per cui dopo essere stata compilata su una macchina ottimizzata questa aggiorata con la nuova toolchain sarà ottimizzata.
Sembra quasi filosofia per cui aspetto il commento di Samiel
La toolchain si ottimizza tramite i parametri passati dall'utente per cui dopo essere stata compilata su una macchina ottimizzata questa aggiorata con la nuova toolchain sarà ottimizzata.
Sembra quasi filosofia per cui aspetto il commento di Samiel
- StormyMonday
- Linux 2.x

- Messaggi: 395
- Iscritto il: dom 8 mag 2005, 0:00
- Slackware: Current
- Kernel: 2.6.27.7
- Desktop: xfce
- absinthe
- Iper Master

- Messaggi: 2354
- Iscritto il: dom 15 mag 2005, 0:00
- Nome Cognome: Matteo Nunziati
- Slackware: 12.1 - defunct
- Kernel: 2.6.32-5-amd64
- Desktop: gnome
- Distribuzione: debian squeeze
- Località: Prato
- Contatta:
per la cronaca...
io uso i pacchetti di default di slack per i486
)))
è che riflettendo su sta storia dell'ottimizzazione mi era venuto in mente che forse nella storiella di ottenere la performance spettacolare/strabiliante/perfetta qualcosa che non tornava poteva esserci.
non so come funziona al suo interno un assembler o un compiler (intendo in termini quantitativi, qualitativamente il processo lo conosco) perciò non so se dico una cavolata o no !
M.
io uso i pacchetti di default di slack per i486
è che riflettendo su sta storia dell'ottimizzazione mi era venuto in mente che forse nella storiella di ottenere la performance spettacolare/strabiliante/perfetta qualcosa che non tornava poteva esserci.
non so come funziona al suo interno un assembler o un compiler (intendo in termini quantitativi, qualitativamente il processo lo conosco) perciò non so se dico una cavolata o no !
M.
-
gerardo_sl
- Linux 0.x

- Messaggi: 55
- Iscritto il: mer 16 mar 2005, 0:00
Dovresti determinare l'intorno d'errore della CPU.vi prego di chiarirmi dove sta la fregatura altrimenti pretendo il mezzo busto (fate voi quale: va bena anche la parte di sotto...)
Intuitivamente: la successione delle compilazioni potrebbe restituire una curva che tenda
assintoticamente a tale valore, quindi, da un certo punto in poi, il procedimento perderebbe significato.
Praticamente: tra i vari parametri ti consiglio di mettere anche il punto di fusione del processore.
Conseguenze:
1)Gentoo diventerebbe osbsoleta.
2)"Diario di un hacker" non farebbe ridere più nessuno.
- absinthe
- Iper Master

- Messaggi: 2354
- Iscritto il: dom 15 mag 2005, 0:00
- Nome Cognome: Matteo Nunziati
- Slackware: 12.1 - defunct
- Kernel: 2.6.32-5-amd64
- Desktop: gnome
- Distribuzione: debian squeeze
- Località: Prato
- Contatta:
ah. eccoci!!! dunque era una bufala! semplicemente va un pò + veloce a compilare...useless ha scritto:è sbagliato pensare che una toolchain compilata ottimizzata x una certa architettura produca binari + ottimizzati di un'altra compilata senza ottimizzazione. al max li può produrre + velocemente, ma i prodotti sono esattamente identici.
thanx!
M.
PS: diario di un hacker che roba è?
- useless
- Staff

- Messaggi: 3896
- Iscritto il: dom 12 ott 2003, 0:00
- Località: A place where the streets have no name
- Contatta:
vi faccio un esempio pratico, sperando che chiarisca le idee:
mettiamo che un compilatore si trovi a dover compilare
supponiamo che gcc, quando produce codice "generico" (= x 486 col compilatore di default slackware) traduca l'istruzione precedente con:
supponiamo ora che, sugli athlon xp, l'azzeramento di un registro sia + rapido facendo uno xor +ttosto che una mov (xor richiede 3 cicli di clock, mov 5, ad esempio). in questo caso, attivando le ottimizzazioni x athlon xp, gcc produrrà il seguente codice:
questo è il tipo di ottimizzazioni che vengono fatte. il codice generato è solo funzione dell'architettura target e delle ottimizzazioni selezionate. se il compilatore è stato ottimizzato, allora quando lui dovrà azzerare una variabile farà una xor +ttosto che una mov, ma il prodotto è lo stesso.
mettiamo che un compilatore si trovi a dover compilare
Codice: Seleziona tutto
i = 0;Codice: Seleziona tutto
mov ax, 0
mov [si], axCodice: Seleziona tutto
xor ax, ax
mov [si], axSemplice no?useless ha scritto:vi faccio un esempio pratico, sperando che chiarisca le idee:
mettiamo che un compilatore si trovi a dover compilaresupponiamo che gcc, quando produce codice "generico" (= x 486 col compilatore di default slackware) traduca l'istruzione precedente con:Codice: Seleziona tutto
i = 0;supponiamo ora che, sugli athlon xp, l'azzeramento di un registro sia + rapido facendo uno xor +ttosto che una mov (xor richiede 3 cicli di clock, mov 5, ad esempio). in questo caso, attivando le ottimizzazioni x athlon xp, gcc produrrà il seguente codice:Codice: Seleziona tutto
mov ax, 0 mov [si], axquesto è il tipo di ottimizzazioni che vengono fatte. il codice generato è solo funzione dell'architettura target e delle ottimizzazioni selezionate. se il compilatore è stato ottimizzato, allora quando lui dovrà azzerare una variabile farà una xor +ttosto che una mov, ma il prodotto è lo stesso.Codice: Seleziona tutto
xor ax, ax mov [si], ax

- absinthe
- Iper Master

- Messaggi: 2354
- Iscritto il: dom 15 mag 2005, 0:00
- Nome Cognome: Matteo Nunziati
- Slackware: 12.1 - defunct
- Kernel: 2.6.32-5-amd64
- Desktop: gnome
- Distribuzione: debian squeeze
- Località: Prato
- Contatta:
si effettivamente passa al codice macchina del target... chi se ne frega di come è stato compilato lui... ok... tutto chiaro!useless ha scritto: questo è il tipo di ottimizzazioni che vengono fatte. il codice generato è solo funzione dell'architettura target e delle ottimizzazioni selezionate. se il compilatore è stato ottimizzato, allora quando lui dovrà azzerare una variabile farà una xor +ttosto che una mov, ma il prodotto è lo stesso.
me lo avevano detto che l'assembly mi faceva bene (un pò come gli spinaci) però non ho seguito il consiglio di studiarlo :P
M.
Bufala anche questa!!! Eh sì, gli spinaci non hanno tutte le proprietà che le mamme ci hanno detto...absinthe ha scritto: me lo avevano detto che l'assembly mi faceva bene (un pò come gli spinaci) però non ho seguito il consiglio di studiarlo :P
M.
vedi http://www.attivissimo.net/antibufala/s ... pinaci.htm
