View Single Post
Old 23-12-2015, 18:52   #8
Mister D
Bannato
 
Iscritto dal: Jun 2011
Città: Forlì
Messaggi: 8199
Riporto subito mio stra-lungo post dall'altro thread

Quote:
Originariamente inviato da paolo.oliva2 Guarda i messaggi
Basta che vai alla base dell'SMT e capirai che non è così.

L'SMT che fa? Sfrutta le parti logiche quando non utilizzate dall'altro TH.
Quindi comunque sarebbero 2 TH.
I programmi di test IPC non sparano 100 TH ma sul singolo TH gli fanno fare operazioni INT/FP e d qui il calcolo dei TH.

Facendo un esempio banale, prendi Cinebench. Se fai il test ST, quello grosso modo sarebbe simile all'IPC, se fai il test MT con 2 TH su un core disabilitando gli altri, grosso modo sarebbe tipo IPC + SMT sul singolo core.

P.S.
non voglio difendere Zen, ma se ipotizziamo che l'SMT dovrebbe/potrebbe arrivare ad un 30% di performances in più, che Zen guadagni il 40% di IPC su Excavator sarebbe ridicolo, perchè Excavator è pur sempre un modulo, quindi formato da 2 core, quindi il modulo Excavator risulterebbe inferiore in ST di quel 40% (a parità di frequenza) ma il modulo Excavator comunque risulterebbe sempre più veloce e non di poco (Zen = ((100+40%IPC)+30%SMT) vs Excavator (modulo 2 core = 100*2).
Addirittura in MT il modulo Piledriver pareggerebbe con il core Zen + SMT, e se lato TDP 1 core Zen dovrebbe avere una circuiteria simile al modulo Piledriver, guadagno efficienza = zero.
Ciao Paolo,
guarda che non ho mai scritto che il SMT aumenta l'IPC in single thread ma bensì aumenta l'ipc di un core fisico, in multithread (aggiungo ora per essere ancora più preciso anche se basta esplicitare la sigla Simultaneus Multi Threading).
Per cui un core Zen con SMT a 2 vie è capace di processare fino a 2th simultaneamente, cioè quando una o più pipeline del core integer/fp sono in stallo (o in attesa se vi piace di più). I doppi registri servono proprio apposta a tenere i dati in memoria del primo th (quello in attesa perché cache miss o perché deve attendere un dato da un'altra operazione) e del secondo th (quello che viene messo in coda e fatto processare quando il primo è in attesa).
https://cseweb.ucsd.edu/classes/fa11...es1/11_SMT.pdf
Questa serie di slide è fatta molto bene per far capire come funziona il SMT e perché è stato utilizzato e quali sono i suoi punti negativi (pochi e di piccola entità in ST).
Il core (non modulo) di xv è capace di processare solo un thread alla volta. Il modulo di 2 thread nello stesso momento perché composto esattamente da due core integer.
Fin qui per capirci e anzi mi scuso se nello spiegarmi nei precedenti post non sono stato capace di farmi capire.

Detto ciò ho pensato che i modi per interpretare quella benedetta slide di amd sono solo due:
1) un core integer xv vs un core integer Zen con SMT disattivato.
2) un modulo xv (2 th) vs un core integer Zen con SMT attivato (2th).

Prendo per semplicità i dati di cinebench di un fx8350 da qua:
http://cbscores.com/
a 4 GHZ ST 100 MT 640 (ho usato l'arrotondamento scientifico, quindi più vicino alla decina).
Considerando che in ST va a 4,2 GHz il risultato a 4 GHz sarebbe di 95 circa in ST e infatti lo scaling del secondo core del modulo era del 80% rispetto al primo ergo 95+76=171 che per 4 darebbe 684 cosa che invece non è e che ci fa dire che il risultato all'aumentare dei core/moduli scala ancora di meno. Prendiamo cmq 95 e 640 usando come correzione 0.94 (640/684).
Nel caso 1 il confronto quindi sarebbe:
ST 95 vs 95*1.4= 133
MT 4 moduli/8 core vs 4 core/8th: (95+76)*4*0.94= 640 vs 133*1.30*4*0.94= 650
MT 2 fx8350 vs zen 8c/16th: 1280 vs 1300

Un fx composto da 2 fx8350 consumerebbe oltre 250 watt a parità di frequenza mentre la cpu zen è ipoteticamente a 95 watt anche se sicuramente non avrà la stessa frequenza quindi mettiamo pure che in oc arrivi anche a 125 watt ergo sarebbe un buonissimo risultato già così ma andiamo al secondo caso.
Caso 2 sarebbe:
ST 95+76=171 vs 171*1,4= 240 circa
MT 4m/8c vs 4c/8th: 171*4*0.94= 640 vs 240*4*0.94= 900 circa
MT 8m/16c vs 8c/16th: 1280 vs 1800

Mi pare molto meglio o no? Quindi meglio che amd abbia considerato così il vantaggio di IPC o no?
Non ho sbagliato a fare i conti e nel secondo caso potete osservare come il fattore 1,4 (incremento del +40%) comprende già il smt perché confronto il valore di un modulo (2th) con il valore ipotetico di un core zen (sempre 2 th).
Tenete conto che il confronto che ho appena fatto avviene a parità di frequenza (4 GHz) e che probabilmente una cpu zen con 8 core 16 thread difficilmente in 95 watt avrà, ergo prendete quei valori e scalateli con la frequenza che pensate potrebbe avere (per me 3,6 GHz).

EDIT: Mi sono ricordato che ho dimenticato di correggere i calcoli di un buon 10% dovuto al fatto che il valore di cinebench riferendosi ad un fx8350 si riferisce a piledriver, mentre nella slide di amd viene esplicitato il 40% rispetto ad excavator. Excavator lo abbiamo purtroppo solo nella variante apu ergo senza cache L3 però se mettiamo un 10% in più dovrebbe andare bene.
Per cui i valori sono:
Caso 1
ST 95 per il 8350 e ZEN core smt disattivo 95*1,1*1,4= 146
MT 2c/2th un modulo fx8350 95+76= 171 vs Zen core smt attivo 146*1.3=190
MT 4c/8th 640 vs 714
MT 8c/16th ZEN 1428

Caso 2
ST 171 per modulo FX8350 ZEN 171*1.1=188*1,4 = 263
MT 4c/8th 640 vs 989
MT 8c/16th 1978 punti.

Vedendo i risultati forse è più corretto applicare quel 40% in più ad un core/th di xv e poi aggiungere il 30% del smt che applicare il 40% al modulo/2th di xv. Staremo a vedere quando uscirà Zen se era giusto la prima interpretazione o la seconda

Ultima modifica di Mister D : 24-12-2015 alle 12:49. Motivo: Aggiunto in caso 1 (edit) il confronto modulo cmt vs core zen
Mister D è offline