|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#161 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:06. |
|
|
|
|
|
#162 | ||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||||
|
|
|
|
|
#163 | ||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys Ultima modifica di cdimauro : 01-02-2005 alle 10:54. |
||
|
|
|
|
|
#164 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:05. |
|
|
|
|
|
#165 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:05. |
|
|
|
|
|
#166 | ||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Comunque un eventuale "freno a mano" per l'esecuzione di codice a 32 bit mi sembra strano. Dico ciò perché penso che il principale interesse di un ingegnere che progetta un microprocessore dovrebbe essere quello di semplificarne il design, ma soprattutto di non complicarsi la vita aggiugendogli altri circuiti. Infatti se le differenze fossero volute, significherebbe che gli ingegneri avrebbero aggiunto dei controlli e limitato alcune sezioni del processore in base alla modalità d'esecuzione: si tratta sicuramente di modifiche non banali. Per questo dicevo che sarebbe interessante chiarire la vicenda, magari facendo altri test. Se alcune differenze dovessero saltare fuori, probabilmente saranno dovute a dei fattori contingenti piuttosto che al "malvagio" disegno di qualche perverso ingegnere... Tutto ciò IMHO, chiaramente.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||
|
|
|
|
|
#167 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:04. |
|
|
|
|
|
#168 | |
|
Senior Member
Iscritto dal: Nov 2002
Città: Singularity
Messaggi: 894
|
Quote:
Comunque mi ricordo che ne parlavi nell'altro thread, è una caratteristica molto interessante.
__________________
echo 'main(k){float r,i,j,x,y=-15;while(puts(""),y++<16)for(x=-39;x++<40;putchar(" .:-;!/>"[k&7])) for(k=0,r=x/20,i=y/8;j=r*r-i*i+.1, i=2*r*i+.6,j*j+i*i<11&&k++<111;r=j);}'&>jul.c;gcc -o jul jul.c;./jul |Only Connect| "To understand is to perceive patterns" Isaiah Berlin "People often speak of their faith, but act according to their instincts." Nietzsche - Bayesian Empirimancer - wizardry |
|
|
|
|
|
|
#169 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
In particolare i clienti trovano MOLTO comodo poter modificare, ad esempio, una fattura (anche radicalmente E' evidente che tutto ciò facilita notevolmente la creazione di "buchi" per quanto riguarda gli ID, da cui deriva la necessità di utilizzare ID a 64 bit anziché a 32 bit. Un tempo si faceva di tutto per cercare di non usare valori a 64 bit, riutilizzando gli ID, appunto, oppure andando a cercare qualche buco (magari lasciato da un'operazione di cancellazione vera e propria): si spostava la complessità sulle spalle del programmatore (croce e delizia. Croce, SOPRATTUTTO La capacità dei dispositivi di massa e la potenza di elaborazione a disposizione, che permette di manipolare quantità a 64 bit senza subire forti penalizzazioni, ha cambiato radicalmente il modo di lavorare sia dei database sia dei programmatori che ci sviluppano delle applicazioni.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
|
#170 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
PS. Ricordo ancora, ad esempio, le istruzioni per l'estrazione di campi bit presenti nelle primissime revisioni dei 486, ma sparite del tutto in quelle successive...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
|
#171 | ||
|
Senior Member
Iscritto dal: Aug 2004
Città: Caserta (CE)
Messaggi: 2252
|
Quote:
Quote:
A me invece questa sembra una delle più belle discussioni che si possano trovare sull'argomento! Forse una delle più belle su questo forum! Grazie! |
||
|
|
|
|
|
#172 | |
|
Senior Member
Iscritto dal: Nov 2003
Messaggi: 24170
|
Quote:
__________________
AMD Ryzen 9600x|Thermalright Peerless Assassin 120 Mini W|MSI MAG B850M MORTAR WIFI|2x16GB ORICO Raceline Champion 6000MHz CL30|1 M.2 NVMe SK hynix Platinum P41 1TB (OS Win11)|1 M.2 NVMe Lexar EQ790 2TB (Games)|1 M.2 NVMe Silicon Power A60 2TB (Varie)|PowerColor【RX 9060 XT Hellhound Spectral White】16GB|MSI Optix MAG241C [144Hz] + AOC G2260VWQ6 [Freesync Ready]|Enermax Revolution D.F. 650W 80+ gold|Case Antec CX700|Fans By Noctua e Thermalright |
|
|
|
|
|
|
#173 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Le condizioni sono: - che il codice (dal push degli argomenti alla fine della routine) stia interamente nella cache L1; - che non si verifichi nessuna interruzione (nemmeno un page fault o eccezione) dal codice che esegue il push dei parametri fino alla prima istruzione (esclusa) della routine; - che non si verifichi nessuna interruzione ESTERNA (i page fault e le eccezioni generate dal processore sono ammessi) dalla prima istruzione delle routine all'ultima. Mi sembrano condizioni "ragionevoli" e che, IMHO, stanno ampiamente "nella media". Codice:
; Mode: PM_32 ; Ottimizzazione: Nessuna ; Codice per salvattaggio dei registri mov eax,[arg1_low] mov edx,[arg1_hi] mov ebx,[arg2_low] mov ecx,[arg2_hi] mov esi,eax mov edi,edx sub esi,ebx sbb edi,ecx add ebx,eax adc ecx,edx mul ecx mov eax,ecx mov eax,edi mul ebx add ecx,eax mov eax,esi mul ebx add edx,ecx mov [result_low],eax mov [result_hi],edx ; Codice di ripristino dei registri ----------------------------------------- ; Mode: PM_64 ; Ottimizzazione: Nessuna ; Codice per salvattaggio dei registri mov rax,[arg1] mov rbx,[arg2] lea rcx,[rax+rbx] sub rax,rbx mul rcx mov [result],rax ; Codice di ripristino dei registri Per quanto riguarda l'altro esempio (quello con i pushad e la chiamata a routine), posso fornire un'altra dimostrazione simile, aggiungendo un'altra condizione abbastanza "ragionevole" e "nella media".
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
|
#174 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:02. |
|
|
|
|
|
#175 | |
|
Senior Member
Iscritto dal: Nov 2002
Città: Singularity
Messaggi: 894
|
Quote:
I punti 1), 2) e 3) garantiscono che la somma dei tempi di esecuzione delle singole istruzioni corrisponde al tempo di esecuzione della routine. Incidenza degli accessi in memoria:i punti 2), 3) garantiscono che i dati si trovano in cache. Assunzione (sicuramente verificata nell'Athlon64): due accessi a 32 bit sono più lenti di un singolo accesso a 64 bit, dalla cache. Resta solo da valutare, calcolatrice alla mano Non è una dimostrazione formale ma una traccia di come affronterei il problema
__________________
echo 'main(k){float r,i,j,x,y=-15;while(puts(""),y++<16)for(x=-39;x++<40;putchar(" .:-;!/>"[k&7])) for(k=0,r=x/20,i=y/8;j=r*r-i*i+.1, i=2*r*i+.6,j*j+i*i<11&&k++<111;r=j);}'&>jul.c;gcc -o jul jul.c;./jul |Only Connect| "To understand is to perceive patterns" Isaiah Berlin "People often speak of their faith, but act according to their instincts." Nietzsche - Bayesian Empirimancer - wizardry |
|
|
|
|
|
|
#176 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:00. |
|
|
|
|
|
#177 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 587
|
quante risorse vuole?
Speriamo che non ci vogliano un mouse con quattro palle, un processore da 1000000 Mhz, 100000000 Mb di RAM DDR1000 per farlo "girare" decentemente....
ed un hd a 200000 rpm per caricarlo senza doversi addormentare sulla tastiera per l'attesa... |
|
|
|
|
|
#178 |
|
Senior Member
Iscritto dal: Sep 2003
Città: Catania
Messaggi: 1519
|
Gabido: ti serve 'solo' un Athlon64 (o uno Xeon con le estensioni a 64bit). Per favore le buffonate altrove, che gia' in questo thread se ne sono visti troppi di clown ... e visto l'eccelso livello di discussione (*inchin* *inchin* *nsd* *nsd*) cerchiamo di non rovinare questo fantastico thread !
|
|
|
|
|
|
#179 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Puoi riuscire a dimostrare che quel particolare pezzo di codice a 64 bit e' sempre piu' veloce a livello teorico, ma poi lo metti in condizioni reali, ne misuri le prestazioni e ti accorgi che nella realta' pratica difficilmente riuscirai a notare differenze prestazionali. E' ovvio, che se qualcuno e' in malafede, puo' semplicemente buttare il codice in un inner loop e cercare di dimostrare anche che gli asini volano, ma il mio discorso e' sempre stato il seguente: in condizioni di esecuzione normale, e' difficile che si possano apprezzare differenze perche' di solito quel codice e' memory bound. In altre parole, se l'ambiente in cui quelle istruzioni sono eseguite contiene molte altre istruzioni e molti altri accessi ai dati, e' molto probabile che i dati per quelle istruzioni non saranno in cache e la CPU si trovera' ad attendere l'arrivo dei dati su cui operare per la maggior parte del suo tempo, rendendo del tutto vano il risparmo di istruzioni. Questa e' la situazione tipica, un inner loop non e' la situazione tipica. Spero di essere stato piu' chiaro ora, e a chi pensa di parlare una lingua diversa dalla mia, consiglio di imparare prima l'italiano
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#180 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
In questo contesto, che e' il piu' probabile, le due versioni saranno molto probabilmente perfettamente equivalenti, e non certo una sicuramente piu' veloce dell'altra. Ho poi aggiunto che in generale (e non solo nel caso particolare) non ha senso parlare di funzioni sicuramente piu' veloci di altre perche' va prima analizzato l'ambiente nel quale vengono eseguite.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:19.



















