|
|
|
![]() |
|
Strumenti |
![]() |
#81 |
Senior Member
Iscritto dal: Jul 2003
Messaggi: 26788
|
|
![]() |
![]() |
![]() |
#82 |
Senior Member
Iscritto dal: Jun 2003
Città: vivo in Sicilia (tra la prov. di AG e Palermo)
Messaggi: 956
|
Ripensandoci, quello delle ottimizzazioni del compilatore potrebbe anche essere un problema (entro certi limiti). Un compilatore che supportasse le SSE per i K8 potrebbe forse, ove applicabile, spezzare automaticamente una operazione su dati a 128bit in due con vettori a 64bit (lo farebbe comunque il processore da sè, ma non so se questo potrebbe influire sullo scheduling delle pipepline - es: l'operazione spezzata rimane vincolata alla pipeline di origine, mentre due separate dall'origine potrebbero occupare le due unità, non ne ho idea), e in questo modo software già compilati non sfrutterebbero le migliorie architetturali dei k10.
E' vero che una cpu deve far girare bene il software senza richiederne la ricompilazione, ma è anche vero che le variazioni nell'architettura devono essere supportate dal compilatore, altrimenti è come se non ci fossero (comunque, questo non varia la natura di "handicap" se la ricompilazione dovesse essere necessaria per sfruttare appieno le potenzialità dei k10). Sarebbe forse interessante vedere cosa accadrebbe facendo riconoscere a un bench il processore amd come se fosse un intel, ma bisognerebbe patcharlo, oppure usare un emulatore x86 modificato per fornire una stringa identificativa modificata e poi dirottare l'esecuzione verso il processore vero (o usare un meccanismo equivalente per intercettare e alterare il riconoscimento della cpu)... insomma sarebbe complicato, in alcuni casi forse non troppo lecito, e comunque il gioco temo che non varrebbe la candela... |
![]() |
![]() |
![]() |
#83 | |
Senior Member
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
|
Quote:
Per tradurre qualsiasi indirizzo virtuale (il kernel può usare anche quelli fisici e se ne frega del bug) deve avere una entry di page table. Se non si trova nella cache L1 (divisa per dati e istruzioni come la cache normale), va alla L2 (stavolta unificata). Se non si trova nella L2, supponendo che non abbia una cache L3 anche per i TLB (come probabile, ma non ho informazioni in merito), allora fa un normale accesso in RAM che comprende anche uno snoop nelle varie caches (ed eventualmente in quelle di altri processori per sistemi MP). Se anche in cache normale non c'è, allora va in RAM. Con il BUG, si deve applicare il workaround che disabilita il caching della page table in cache normale: se non c'è nella L1 TLB e nella L2 TLB, va direttamente in RAM perchè essendo il caching in cache normale delle page table disabilitato, non c'è modo di trovare i dati in cache... L'altro bug abbiamo già chiarito... ![]() Per quanto riguarda la questione dei 2.4GHz... IMHO per CPU inferiori a 2.4GHz, il workaround garantisce il non blocco anche ad alti carichi, invece per frequenze superiori o uguali a 2.4GHz anche con il workaround si verificano i blocchi... Oppure è solo una questione di TDP...
__________________
0 A.D. React OS La vita è troppo bella per rovinarsela per i piccoli problemi quotidiani... IL MIO PROFILO SOUNDCLOUD! ![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#84 | |
Senior Member
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
|
Quote:
![]() ![]() Per build non definitive sono daccordo che il processo di compilazione deve essere il più veloce possibile (quindi probabilmente ci sarà solo una versione, magari non ottimizzata), ma la release dovrebbe avere tutti i codepath, IMHO... ![]()
__________________
0 A.D. React OS La vita è troppo bella per rovinarsela per i piccoli problemi quotidiani... IL MIO PROFILO SOUNDCLOUD! ![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#85 | |
Senior Member
Iscritto dal: Mar 2004
Città: Caponago
Messaggi: 2835
|
Quote:
|
|
![]() |
![]() |
![]() |
#86 |
Senior Member
Iscritto dal: Mar 2004
Città: Caponago
Messaggi: 2835
|
Francamente, non darei troppo troppo peso ai test SPEC: da un lato sono orientati prevalentemente alla valutazione delle prestazioni pure (ovvero, cercano di raggiungere il picco teorico massimo di operazioni di cui la cpu è capace sulla carta), e quindi non si può traslare con semplicità il risultato negli scenari d'uso reali (almeno per quanto riguarda spec_int e spec_fpu); dall'altro, proprio per ricercare il picco delle prestazioni, si concede una notevole libertà nelle ottimizzazioni di compilazione, che vengono scelte di conseguenza. Nei programmi d'uso "reale", invece, questo non ha senso, perchè lo stesso codice deve girare decentemente su tutte le macchine compatibili, quindi si cercherà un'ottimizzazione "media" o "standard" e/o ci si baserà principalmente su una macchina target scelta come riferimento di mercato. Diciamo che possiamo aspettarci, in molti casi, del codice che sia ottimizzato prevalentemente per intel e giri pressochè uguale su amd: siccome l'implementazione corrente dei k10 sui vettori a 128 bit è equivalente a quella intel, le ottimizzazioni "di base" dovrebbero andare più che bene (al resto ci pensa la logica out-of-order). Quindi, se ci saranno miglioramenti, aspettiamoci che provengano dalla correzione dei bug ![]() Ma infatti il mio discorso non è che siano più affidibali... nel senso: è chiaro che nel scenario comune, questi test siano inutili, tuttavia sono semplicemente applicazioni comuni che vengono ricompilate, non viene fatto nulla di trascendentale; ciò esplica il fatto che cambiando solo il compiler i risultati siano estremamente differenti. Se si fa il conto che la potenza in FP del K10 è il doppio del K8 come risorse, non avrebbe senso che esso vada solo mediamente un 10 o 20 % in più rispetto al vecchio processore... infatti cambiando compiler, lo scenario cambia drasticamente. Ciò non vuol dire che ci sia un errore da parte dei programmatori (tuttavia, essendo le istruzioni fra Intel e Amd differenti, è chiaro che l'utilizzo di diversi compiler porti ad una differente ottimizzazione) (e cmq se i programmato usassero vari compiler potrebbero migliorare le prestazioni per processore e famiglia), ma vuol dire semplicemente che, per i compiler più comuni, Amd ha sbagliato approcio. Ripeto, non voglio assolutamente dire che per le applicazioni comuni bisogna prendere in considerazione Spec. Anzi, non serve a nulla, Spec però ci fa vedere come cambiare compiler cambi le cose (e poi, se uno vuole, può anche decompilare, e compilare con un compilatore appropriato, per esempio sotto linu un per PathClass o PGI, e i risultati in FP cambiano...). In aggiunta, i compilatori hanno opzioni di compilazione al proprio interno, quindi non dovrebbe esserci nessuna ottimizzazione in questo senso per una famiglia o l'altra, ma a loro volta ci sono COMPILATORI (con opzioni all'interno) che sono più affini ad alcuni o ad altri processori.. i PGI ed i PathClass sotto linux hanno al proprio interno delle opzioni di compilazione, ma vanno a nozze con i phenom. Ultima modifica di Crystal1988 : 27-11-2007 alle 16:18. |
![]() |
![]() |
![]() |
#87 | |
Senior Member
Iscritto dal: Mar 2004
Città: Caponago
Messaggi: 2835
|
Quote:
|
|
![]() |
![]() |
![]() |
#88 | |
Senior Member
Iscritto dal: Mar 2004
Città: Caponago
Messaggi: 2835
|
Quote:
In fin dei conti, credo che giri tutto intorno al fatto che Intel è MOOOOOLTO più presente sul mercato... quindi è chiaro che si utilizzino i compiler magari più adatti ad Intel... inoltre, sarebbe forse una rottura utilizzare più compiler.. un conto è compilare con opzioni... un altro conto è utilizzare più compiler. Rimane il fatto che questa cosa penalizza AMD (e lei si penalizza da sola) Ultima modifica di Crystal1988 : 27-11-2007 alle 16:27. |
|
![]() |
![]() |
![]() |
#89 | |
Senior Member
Iscritto dal: Jan 2003
Messaggi: 10395
|
Quote:
http://www.anandtech.com/IT/showdoc.aspx?i=3162 Il problema principale è che nei test sintetici il Barcelona è sullo stesso livello del Core2 (per clock) nei calcoli FP, a volte vincendo, a volte perdendo (a parità di clock) e meno prestante sugli interi (anche se sembra avere un 10% per clock rispetto al K8). In genere K10 in ambito interi paga soprattutto la minore quantità di cache e la latenza della cache L3 che può penalizzare in caso di branch misprediction. In Ambito FP K10 sembra essere sullo stesso piano del Core2, in questo caso paga invece la differenza di clock con la concorrenza. In ambito multisocket invece si vede il problema di scalabilità di Intel e viceversa il vantaggio delle connessioni HTT degli Opteron. In un ambito desktop, purtroppo, molti dei vantaggi visti in ambito server si perdono, tuttavia: 1) K10 sembra scalare meglio le prestazioni all'aumentare della frequenza rispetto ai Core2 2) Sicuramente una volta corretti i bug, le prestazioni ne risentiranno in maniera positiva Quindi il discorso è che se AMD riuscirà a coreggere i bachi e a salire in frequenza fino ai promessi 3 GHz e oltre, avrà in mano un prodotto competitivo, magari non un "C2 killer", ma sicuramente valido, anche in ambito desktop. Al momento attuale, tuttavia, a di fuori del segmento server non sembra esserci molta storia dal punto di vista delle prestazioni assolute.
__________________
PC Specialist Recoil 17 - 13900HX - 32 GB DDR5 5200 - Geforce RTX 4080 Mobile 12Gb 175W - 1 SSD Corsair Core XT MP600 2 TB NVMe - 1SSD Solidigm P41+ 2TB NVMe |
|
![]() |
![]() |
![]() |
#90 |
Senior Member
Iscritto dal: Jul 2006
Messaggi: 521
|
Stavo pensando, ma si possono organizzare visite guidate alla redazione di HWU?
Forse ci fanno la riduzione comitiva... Vedo già delle scene alla Futurama: "...ecco i nostri umpa lumpa che eseguono test estenuanti in cicli di 24 ore senza pausa..." Certo che questo articolo ha dato grande soddisfazione, anche nei commenti c'è dell'interessante. |
![]() |
![]() |
![]() |
#91 | |
Senior Member
Iscritto dal: Mar 2004
Città: Caponago
Messaggi: 2835
|
Quote:
Tuttavia, come si è visto per LINPACK, hanno utilizzato un compilatore per K10... ok che il LINPACK è da sempre improntato per INTEL... tuttavia non mi dispiacerebbe vedere OGNI benchmark ricompilato, così anche solo per osservare i cambiamenti... visto che cmq sia... è vero ciò che dici per i mix... ma è anche vero che gli stessi identici benchmark di spec, SE NON RICOMPIALTI danno differenze mica da sottovalutare.. quindi rimango dell'idea che influenzino non poco le prestazioni... (senza nulla togliere ai mix). Per l'INTEGER credo che i bug, soprattutto il secondo (ma anche il primo) aumenti non poco la latenza delle cache.... visto che per la scrittura su cache bisogna sempre riscrivere tutto. Cmq sia c'è anche scritto che per alcuni programmi non sono riusciti neppure a compilare... questo a mio parere la dice lunga per quanto riguarda i K10... ci voglio nuovi e differenti compiler per sfruttarli bene. Ultima modifica di Crystal1988 : 27-11-2007 alle 17:04. |
|
![]() |
![]() |
![]() |
#92 |
Senior Member
Iscritto dal: Mar 2004
Città: Caponago
Messaggi: 2835
|
Cmq sia osservando quella recensione.. dal punto di vista server e workstation gli Opteron sono messi non male, facendo il conto che dispongono anch'essi dei famosi bug (non credo proprio sia uno step B3).. sono messi bene... anche se cmq rimangono preferibili gli Xeon
Ultima modifica di Crystal1988 : 27-11-2007 alle 17:08. |
![]() |
![]() |
![]() |
#93 | ||
Senior Member
Iscritto dal: Mar 2004
Città: Eporedia
Messaggi: 13454
|
Quote:
Quote:
Grazie a xeal, bjt2 e Leone per il solito e gradito contributo tecnico. ![]() Un pò di luce sull'argomento, al di fuori dei soliti toni da forum. ![]()
__________________
AMD Ryzen 1700 - Asrock B450 GAMING-ITX/AC - G-Skill RipjawsV 2X8GB 2660mhz - Sapphire Pulse RX 570 ITX - Crucial MX500 m.2 - Corsair Vengeance 500W - Sharkoon Shark Zone C10 Mini ITX Ultima modifica di Free Gordon : 27-11-2007 alle 17:07. |
||
![]() |
![]() |
![]() |
#94 |
Senior Member
Iscritto dal: Nov 2007
Città: -\\.//-
Messaggi: 825
|
mah... io quoto il primo intervento: ki usa 4 gpu???Secondo me con due 8800 gtx o gt in sli sei apposto per i prossimi mille anni!!! senza fare lo sborone con 4 schede ke neanke usi -.- per i gioki ke ci sono tutt'ora!
|
![]() |
![]() |
![]() |
#95 |
Senior Member
Iscritto dal: Nov 2007
Città: Rimini
Messaggi: 3800
|
certo ke i chipset della serie 7 sono favolosi. La AMD si dà da fare. Anke perke direi ke 4 skede grafike sn un po esagerate. Ne basterebbero soltanto 2 x ki vuole avere delle performance buone su una ris 1280x1024. Cmq meglio aspettare un nuovo chip della ATI e nn + la SB600.
|
![]() |
![]() |
![]() |
#96 |
Senior Member
Iscritto dal: Jun 2003
Città: vivo in Sicilia (tra la prov. di AG e Palermo)
Messaggi: 956
|
@ bjt2
Allora è come pensavo: in pratica il bug (o meglio, il workaround) rende più probabile un accesso frequente alla ram per caricare la page table. Di per sè non è una penalizzazione critica (non quanto l'altro bug), però potrebbe influenzare negativamente l'ottimizzazione dei load/store, che si basa, se ho ben compreso questa caratteristica, su un approccio conservativo che prevede proprio il calcolo dell'indirizzo effettivo. Cioè, il processore ordina gli accessi in ram, privilegiando le letture, e per farlo calcola gli indirizzi effettivi prima di un burst di accessi mixati opportunamente; ma questo vuol dire che il processore calcolerà più indirizzi prima di ogni accesso, o meglio, calcolerà tutti quelli che gli servono, in base all'algoritmo implementato, e per farlo in fretta avrà bisogno di avere le page table in cache -> più indirizzi verranno calcolati contemporaneamente e, in conseguenza al (workaround per il) bug, può aumentare la frequenza degli accessi in ram a caccia dei dati mancanti, oppure (o comunque) un solo indirizzo mancante può rallentare il riordino e l'esecuzione del burst e le operazioni da esso dipendenti (specialmente dai load). Certo, non incide come il secondo, però in alcune circostanze può essere come non avere affatto l'ottimizzazione sugli accessi (o peggio, subire una penalizzazione maggiore che non avendola). P.S. Era venuto anche a me il dubbio che il vero problema fossero le rese e/o il tdp, e che il bug (comunque presente, ma influente più sulle prestazioni che sulla stabilità) fosse una "scusa" per rinviare i modelli superiori. In ogni caso, speriamo che risolvano e in fretta, perchè i k10 avrebbero dovuto essere a posto giù da un pezzo... |
![]() |
![]() |
![]() |
#97 | |||
Senior Member
Iscritto dal: Jun 2003
Città: vivo in Sicilia (tra la prov. di AG e Palermo)
Messaggi: 956
|
@Crystal1988
Quote:
Quote:
![]() L'ideale, da questo punto di vista, sarebbe avere un compiler modulare, con un front-end che si occupi di costruire l'eseguibile, creare i selettori in base al riconoscimento della cpu, eventualmente produrre i codepath generici, e linkare i moduli prodotti dai diversi back-end, cioè i compilatori scelti per produrre il codice specifico (che potrebbe limitarsi alle parti relativa a fpu/sse, ma in questo schema forse sarebbe più semplice produrre tutto il codice, con le conseguenze prevedibili sulle dimensioni del programma), che dovrebbero comportarsi come dei plug-in, cioè assolvere a particolari richieste e produrre moduli da linkare che rispondano alle convenzioni del front-end (e quindi, senza standardizzazione e supporto dai singoli compilatori, non si va da nessuna parte). Inoltre, il compilatore dovrebbe sapere cosa fare con le istruzioni non supportate (e qui viene il brutto: per fare un esempio stupido, gli Intel Compiler non supporteranno mai le 3DNow ![]() Quote:
Certo, se le istruzioni scelte a compile-time sono le più lente per una cpu, miracoli non se ne possono fare, però considera che i compilatori che "baravano" di più (nel senso che producevano volutamente codice ottimo, il migliore in circolazione, per cpu intel e mooolto meno valido per cpu amd - fino al punto di ignorare del tutto il supporto alle sse) sono gli Intel, che però costano molto e non sono diffusissimi; in generale, i compilatori più usati a livello commerciale produrranno codice con ottimizzazioni mediamente valide per tutte le cpu (ormai amd è abbastanza diffusa, specialmente in ambito server, per cui dubito che ci siano in circolazione molti compilatori che la "snobbano" ), quindi la singola cpu deve cavarsela con quelle (e in questo concordo in toto con leoneazzurro). Ma io temo di più ottimizzazioni per k8 anche valide, prodotte da compilatori non aggiornati per il supporto ai k10 (quindi quelli usati per i vari bench disponibili ad oggi), e fatte girare su k10 senza sfruttarne le potenzialità in più rispetto ai k8: come dicevo in un post precedente, ormai l'implementazione delle sse (supportate) nei k10 è grossomodo equivalente a quella degli intel, quindi se un certo mix di istruzioni sse (supportate da amd) va bene per intel allora deve andar bene anche per amd. Avevo fatto l'esempio banale di istruzioni su vettori a 128bit spezzate in coppie di istruzioni su vettori a 64bit dal compilatore, in modo da essere già pronte per lo schema di esecuzione di un k8, che se eseguite allo stesso modo su un k10 non sfrutterebbero il raddoppio (teorico, massimo) delle prestazioni dell'unità sse. In questo senso, ricompilare con un compiler che sa che i k10 eseguono le istruzioni complete può aiutare, ma se così fosse indicherebbe un errore di valutazione da parte dei progettisti di amd (e anche un errore banale, per questo lo è l'esempio, cioè mi aspetto che questo non succeda), perchè vorrebbe dire che un k10 non è in grado di riconoscere e accorpare istruzioni uguali su vettori più piccoli, presumibilmente frutto di una compilazione/scelta operata a vantaggio di un k8. Insomma, i risultati di spec con ricompilazione sono notevoli, ma auguriamoci che arrivino benefici maggiori dalla risoluzione dei bug. D'altra parte, se i problemi venissero risolti bene, scalabilità in primis, e il marketing di amd avesse successo, allora qualche produttore potrebbe pensare di creare una nuova versione semplicemente aggiornando il compilatore e ricompilando, spacciandola per una release che sfrutta le innovazioni dei k10; però avrebbe più senso se ci fossero vantaggi anche per le cpu intel, quindi è più probabile che avvenga in concomitanza con l'introduzione del supporto alle sse4 - sempre che i compilatori vengano aggiornati, e questo dipenderà da quanto amd dimostrerà di saper scalare e le prestazioni, risolvendo i bug, e la frequenza, affinando il processo produttivo. |
|||
![]() |
![]() |
![]() |
#98 |
Senior Member
Iscritto dal: Jun 2003
Città: vivo in Sicilia (tra la prov. di AG e Palermo)
Messaggi: 956
|
@ Free Gordon
Ma figurati, siamo qui per questo ![]() In fondo, abbiamo tutti imparato qualcosa sul forum, ci siamo tolti dei dubbi o fatti venire delle idee, arrivando ad un livello di comprensione che solo con la discussione si può raggiungere. Il forum serve a questo, il trucco è saper filtrare i thread e i commenti validi (e magari ogni tanto concedersi qualche battutina e qualche battibecco, ma senza esagerare) ![]() |
![]() |
![]() |
![]() |
#99 |
Senior Member
Iscritto dal: Jul 2006
Messaggi: 521
|
In effetti per la prima volta ho letto con piacere 10 pagine di commenti.
|
![]() |
![]() |
![]() |
#100 |
Senior Member
Iscritto dal: Nov 2004
Città: Napoli <--> Imola
Messaggi: 638
|
AMD + ATI siamo sempre sotto a INTEL + GEFORCE
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:48.