:ciaociao:
Provo a darvi una mano.
Le rop's sono 48 (almeno per collegamento)
1 GPC è collegato a 64 bit da 16 rop's e 512kb l2.
Un canale da 32 bit, richiede 8 rop's collegate a 256kb per 1gb.
Lo SMM di nvidia è composto da 4 warp, ogni warp, ha il suo scheduler e due dispacht che si occupano sopratutto di load store ed sfu.
Ogni scheduler invia 32 cuda, 8 LDS ed 8 SFU.
Le SFU, operazioni trascendentali, sono 8 per 4 warp, necessitano di 4 cicli di clock e sfornano un pixel ogni due SFU per un totale di 4 pixel.
10 SMM possono sfornare 40 pixel, purtroppo il rasterizzatore non è esteso a 20 pixel ma a 16 come maxwell, di conseguenza i 40 pixel vengono processati, memorizzati ma non possono essere tutti elaborati, solo 32 alla volta.
Le rop's di Nvidia non sono come quelle di AMD (questo è complesso da spiegare) ma sono per interi da 8 bit e riempimento dello z-buffer (le unità preposte a svolgere il color ops sono in grado di svolgere anche il color ops).
Le Rop's AMD sono ottimizzate per il blending ed operazioni MSAA per questo generalmente sono in minor quantità, ma necessitano di una banda molto ampia per poter lavorare bene, tanto che la 7970 è uscita a 384bit per non limitare il lavoro delle rop's.
Nvidia riempie lo z-buffer alla massima velocità (AMD avrebbe bisogno di due cicli ma è da MSAA.), ed i dati dello z-buffer sono utilizzati per calcolare la distanza degli oggetti dall'osservatore e quindi, per le operazioni di rimozione dei poligoni nascosti.
Quindi nvidia ha bisogno di tante rop's per fare ciò, ma bastano alcuni texel per pixel per vedere il fillrate pressochè dimezzarsi.
Solo con i sintetici come beyond che calcolano il fill rate pure a 8 bit, puoi calcolarti i valori teorici stimati per clock/rop's.
Per concludere, se devi campionare un MSAA8x, AMD batterebbe una Nvidia con il doppio delle rop's, spesso anche di altre fasce.