|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Precisione registri FPR14-31 su PowerPC 970FX
Ultima modifica di repne scasb : 03-02-2005 alle 12:23. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2001
Città: Campagna intorno a FIRENZE. Think Different.
Messaggi: 1864
|
Purtroppo non posso aiutarti, non ho un G5, e sto preparando l'rsame di Calcolo Numerico, quindi so appena qualcosa di algritmi. Mi sembra strano che una CPU così avanzata propaghi l'errore in maniera così significativa!
Però dal poco che so, il G5 dovrebbe essere "più RISC" (passami quasta orrend affermazione) delle CPU x86. Se il tuo calcolo è strettamente ricorsivo, non potresti "dividere" il calcolo su più matrici, in modo da poter utilizzare registri più corti, e di conseguenza sfruttare il G5? Probabilmente ho detto una caXXata grossa come il Cray X1 ![]() ![]() KvL |
![]() |
![]() |
![]() |
#3 |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 12:23. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2001
Città: Campagna intorno a FIRENZE. Think Different.
Messaggi: 1864
|
I dati che devi elaborare sono di tipo seriale oppure è possibile scomporli in pacchetti più piccoli? altrimenti potresti così sfruttare il G5!
|
![]() |
![]() |
![]() |
#5 |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 12:22. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2002
Città: Singularity
Messaggi: 894
|
Non immaginavo questa differenza fra PowerPC e x86... pensavo che in genere si memorizzassero solo i 64 bit degli operandi, senza bit aggiuntivi..
Se il range dei valori possibili è limitato (come spesso accade) si potrebbe sacrificare parte dell'esponente in favore della mantissa. Almeno in questo modo interpreto il punto 3. Volendo si potrebbero ripartire gli operandi su più di un registro emulando le operazioni necessarie a precisione maggiore, ad esempio addizioni e moltiplicazioni. Viene da sé che in questo modo le prestazioni crollano inevitabilmente. Se il limite è hardware (cioè FPU con unità più piccole) non vedo altri modi per avere precisione e velocità di esecuzione allo stesso tempo...
__________________
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 |
![]() |
![]() |
![]() |
#7 |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 12:22. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jan 2000
Città: Milano
Messaggi: 1034
|
Puoi provare qui http://lists.apple.com/mailman/listinfo
ci sono delle mailing list, di cui una è sull'uso di Fortran su OSX, quindi così a occhio ci sarà sicuramente qualcuno che ha bisogno di calcoli a precisione elevata. Sinceramente mi pare strano che non ci sia la possibilità di avere una precisione superiore ai 64 bit, ma in effetti da una rapida occhiata ai manuali IBM si direbbe proprio di no, bah |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jan 2000
Città: Milano
Messaggi: 1034
|
Se no prova a chiedere a questi, che con i G5 ci hanno fatto un supercomputer:
http://209.157.64.200/focus/f-news/1044732/posts Ultima modifica di alexmaz : 24-01-2005 alle 18:20. |
![]() |
![]() |
![]() |
#10 |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 12:21. |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Jan 2000
Città: Milano
Messaggi: 1034
|
Quote:
![]() Pare anche me un curioso limite hardware! Fosse solo riferito ai 970 potrebbe ancge starci, ma essendo i 970 dei Power4 mono core con l'aggiunta del sottosistema Altivec, il limite hardware è per forza presente anche nei Power4. Prova a dare un'occhiata anche al sottosistema Altivec, ha registri a 128 bit, ma non so che tipi di operazioni permetta su questi registri. |
|
![]() |
![]() |
![]() |
#12 |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 12:20. |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: May 2003
Città: Torino
Messaggi: 1054
|
Prova quì:
http://groups.google.it/groups?hl=it...=comp.unix.aix http://groups.google.it/groups?hl=it...p.unix.solaris http://groups.google.it/groups?hl=it....linux.powerpc Ciao Repne e ben venuta da queste parti Ti consiglio vivamente di postare in quei tre forum, dove io personalmente ho avuto modo di conoscere sviluppatori IBM e SUN con competenze per me extraterrestri che più volte mi hanno tirato fuori dai guai quando neanche il supporto tecnico IBM e SUN sapeva più cosa inventarsi. Proverò a darti qualche spunto nella speranza di poterti essere di aiuto visto che è la prima volta che ho l'0nore di vederti alle prese con un processore serie PowerPC 970 Personalmente supporto a livello sistemistico migliaia di sviluppatori e nessuno fino ad ora mi ha mai fatto notare nulla del genere, da quì il mio profondo rispetto per i processori di classe Powerpc e Spac Matematicamente non sono in grado di spiegartelo ma secondo me la spiegazione al problema dovresti cercarla nella quantità di istruzioni che questo processore è in grado di compiere per ciclo di clock rispetto ad un processore X86 e di conseguenza il margine di errore rispetto al tuo algoritmo testato su X86 potrebbe aumentare. Altro dettaglio ma secondo me da tenere MOLTO in considerazione è la differenza architetturale tra un PowerPC 970FX e una Power4 Che a detta di qualcuno il 970FX dovrebbe essere esattamente uno dei 4 singoli CORE di un Power4 senza la CACHE, ma senza togliere nulla a mamma Apple questo matematicamente ed economicamente non è possibile. Quindi non escluderei un margine di errore ritenuto inrilevante su i Powr 970FX, Ricordati dei 486
__________________
Cerco in acquisto processore Pentium 2030M - AW8063801120500 / AW8063801208800 |
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: Jan 2000
Città: Milano
Messaggi: 1034
|
Quote:
Annuncio di IBM: http://www.ibm.com/news/it/2004/02/162.html Articolo breve: http://www.realworldtech.com/page.cf...WT101502203725 in fondo alla prima pagina trovi esattamente quello che ho detto io qualche posto sopra. Articolo lungo (troppo ![]() http://arstechnica.com/cpu/02q2/ppc970/ppc970-1.html Il problema di repne scasb non ha cmq nulla a che vedere con questo: nei processori x86 di classe P6 e NetBurst (quindi dal Pentium Pro in poi) i registri della FPU sono "lunghi" 80 bit e permettono un tipo di dati chiamato Double Extended Precision con 15 bit di esponente e 64 bit di precisione, quindi una precisione a 64 bit reale, contro i 53 della double precision usando il registro come se fosse di soli 64 bit. Tutto questo semplicemente nè il Power4 nè il 970FX lo fanno, perchè i registri della FPU (delle) FPU sono a 64 bit. Che poi esista un modo per ottenere lo stesso risultato o le prestazioni risultanti alla fine siano simili perchè la fpu dei processori x86 non è poi così efficiente, questo non so dirlo ![]() Cmq, per repne scasb, questi articoli potrebbero interessarti, parlano delle FPU di P4 in comparazione con G4e (stesso "limite" di 64 bit sui registri FPU del 970FX) e poi della FPU del 970FX, il primo affronta anche gli 80 bit x87, sinceramente non ho letto tutto vista l'ora ![]() http://arstechnica.com/articles/paed...4andg4e2.ars/1 http://arstechnica.com/cpu/03q1/ppc9...970-5.html#fpu Ciao ![]() |
|
![]() |
![]() |
![]() |
#15 |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 12:20. |
![]() |
![]() |
![]() |
#16 |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 12:19. |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Non credo che troverai il modo di uscirtene fuori: ti sei appena scontrata con i limiti intrinseci dell'architettura Power/PowerPC, come di tanti altri processori (ma non sto a dirlo a te: lo sai già.
![]() Questo è uno dei casi in cui la vecchia FPU x87, pur con tutti i suoi limiti, non trova eguali nelle architetture attuali (Itanium a parte, come giustamente riporti), visto che non solo può lavorare internamente con una precisione superiore ai 64 bit (totali), ma ha pure il vantaggio di poter conservare in memoria dati con questa precisione (il tipo Extended, a 80 bit. Ma anche questo lo sai già. ![]() Ci sono alcune architetture che implementano i long double a 128 bit, ma non è il caso né dei PPC né degli x87. Se il tuo obiettivo rimane quello di utilizzare comunque l'architettura PPC, non ti resta che scriverti delle routine (o meglio macro) ad hoc per i G5: se ti bastano 64 bit per la mantissa, per semplificare il tutto potresti usare un registro per l'esponente e l'altro per la mantissa, altrimenti c'è da considerare anche la "piaga" del un/packing di esponente e/o mantissa dei dati. Facci sapere qualcosa: l'argomento è molto interessante. EDIT Come non detto: alcune cose le hai già dette... ![]()
__________________
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 : 25-01-2005 alle 09:40. |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Sep 2001
Città: Campagna intorno a FIRENZE. Think Different.
Messaggi: 1864
|
Volete dirmi che un PPC è meno performante in calcoli complessi? allora dove hanno montato 1100 Xserve si sono bevuti il cervelletto?
Capisco che sia una rottura riscrivere il tutto, ma la soluzione di cdimauro è intelligente, quella dei due registri... Cmq facci sapere perchè anche io sono ultra-interessato! PS: peccato che a Fondamenti di informatica e a calcolo numerico insegnino SOLAMENTE le x86 pure, senza estensioni che nel corso degli anni hanno reso queste CPU al top del mercato! (mainstream) |
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Jan 2000
Città: Milano
Messaggi: 1034
|
Quote:
Partendo dal presupposto che io e la matematica siamo nemici ![]() programmare in assembly i moderni processori non è sempre sinonimo di performance; data la complessità dei processori, con pipeline profonde, tecnologia super scalari "spinte" ecc, spesso i compilatori producono codice più efficiente, che poi può ulteriormente essere migliorato a mano in alcune sue parti. Quindi valuta anche questo aspetto, sempre che tu non lo abbia gia fatto ![]() |
|
![]() |
![]() |
![]() |
#20 |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 12:19. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:45.